• CoreDNS kubernetes 安装使用


     kubernetes 以前是skydns 后面变为 dnsmasq,coredns 也是一个不错的工具
    1. 准备环境
    安装 kubernetes
    配置 kubelet  的cluster-dns
    2. 下载coredns kubernetes 模板
    地址:https://github.com/coredns/deployment/tree/master/kubernetes
     
    3. 配置生成 coredns  配置信息
    参考github 文档
    ./deploy.sh 10.3.0.0/24 | kubectl apply -f -
    kubectl delete --namespace=kube-system deployment kube-dns
     参考配置:
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: coredns
      namespace: kube-system
    data:
      Corefile: |
        .:53 {
            errors
            log stdout
            health
            kubernetes cluster.local 10.254.0.0/16
            proxy . /etc/resolv.conf
            cache 30
        }
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: coredns
      namespace: kube-system
      labels:
        k8s-app: coredns
        kubernetes.io/cluster-service: "true"
        kubernetes.io/name: "CoreDNS"
    spec:
      replicas: 1
      selector:
        matchLabels:
          k8s-app: coredns
      template:
        metadata:
          labels:
            k8s-app: coredns
          annotations:
            scheduler.alpha.kubernetes.io/critical-pod: ''
            scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'
        spec:
          containers:
          - name: coredns
            image: coredns/coredns:latest
            imagePullPolicy: Always
            args: [ "-conf", "/etc/coredns/Corefile" ]
            volumeMounts:
            - name: config-volume
              mountPath: /etc/coredns
            ports:
            - containerPort: 53
              name: dns
              protocol: UDP
            - containerPort: 53
              name: dns-tcp
              protocol: TCP
            livenessProbe:
              httpGet:
                path: /health
                port: 8080
                scheme: HTTP
              initialDelaySeconds: 60
              timeoutSeconds: 5
              successThreshold: 1
              failureThreshold: 5
          dnsPolicy: Default
          volumes:
            - name: config-volume
              configMap:
                name: coredns
                items:
                - key: Corefile
                  path: Corefile
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: kube-dns
      namespace: kube-system
      labels:
        k8s-app: coredns
        kubernetes.io/cluster-service: "true"
        kubernetes.io/name: "CoreDNS"
    spec:
      selector:
        k8s-app: coredns
      clusterIP: 10.254.0.3
      ports:
      - name: dns
        port: 53
        protocol: UDP
      - name: dns-tcp
        port: 53
        protocol: TCP
     
     
    4. 创建Deployment
    kubectl apply -f dns.yaml
     
     
    5. 总结
    使用起来还是比较简单的,就一个容器镜像,同时扩展还是比较强大的
     
    6. 测试
    测试pod :
    
    apiVersion: v1
    kind: Pod
    metadata:
      name: busybox
      namespace: default
    spec:
      containers:
      - image: busybox
        command:
          - sleep
          - "3600"
        imagePullPolicy: IfNotPresent
        name: busybox
      restartPolicy: Always
      
     测试命令 nslookup
     
    7. 参考文档
    https://github.com/coredns/deployment/tree/master/kubernetes
    https://coredns.io/
    https://coredns.io/2017/05/08/custom-dns-entries-for-kubernetes/
  • 相关阅读:
    large_IPYi_09ef000018c21215
    large_IPYi_09ef000018c21215
    large_IPYi_09ef000018c21215
    关于我
    关于我
    SOAP-1概述
    从零开始搭建自己的.NET Core Api框架-1目录
    Asp.Net Core 轻松学系列-5利用 Swagger 自动生成接口文档
    Asp.Net Core 轻松学系列-4玩转配置文件
    Asp.Net Core 轻松学系列-3项目目录和文件作用介绍
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/7623927.html
Copyright © 2020-2023  润新知