美文网首页
kubernetes(k8s)coredns1.5.0部署

kubernetes(k8s)coredns1.5.0部署

作者: 祁恩达 | 来源:发表于2019-05-14 12:03 被阅读0次

    简介

    About CoreDNS
    CoreDNS is a flexible, extensible DNS server that can serve as the Kubernetes cluster DNS. Like Kubernetes, the CoreDNS project is hosted by the CNCF.
    You can use CoreDNS instead of kube-dns in your cluster by replacing kube-dns in an existing deployment, or by using tools like kubeadm that will deploy and upgrade the cluster for you.

    一、修改部署文件环境变量

    在官网下载https://github.com/coredns/deployment/tree/master/kubernetes 配置文件主要是deploy.sh和coredns.yam.sed,由于不是从kube-dns转到coredns,所以要注释掉kubectl相关操作,修改REVERSE_CIDRS、DNS_DOMAIN、CLUSTER_DNS_IP等变量为实际值,具体命令./deploy.sh -s -r 10.254.0.0/16 -i 10.254.0.10 -d clouster.local > coredns.yaml11

    [root@master01 ~]# mkdir /coredns
    [root@master01 ~]# cd /coredns
    [root@master01 coredns]# ls
    coredns.yaml.sed  deploy.sh
    [root@master01 coredns]# ./deploy.sh -h
    usage: ./deploy.sh [ -r REVERSE-CIDR ] [ -i DNS-IP ] [ -d CLUSTER-DOMAIN ] [ -t YAML-TEMPLATE ]
        -r : Define a reverse zone for the given CIDR. You may specifcy this option more
             than once to add multiple reverse zones. If no reverse CIDRs are defined,
             then the default is to handle all reverse zones (i.e. in-addr.arpa and ip6.arpa)
        -i : Specify the cluster DNS IP address. If not specificed, the IP address of
             the existing "kube-dns" service is used, if present.
        -s : Skips the translation of kube-dns configmap to the corresponding CoreDNS Corefile configuration.
    [root@master01 coredns]#  ./deploy.sh -s -r 10.254.0.0/16 -i 10.254.0.10 -d cluster.local > coredns.yaml
    [root@master01 coredns]# ls
    coredns.yaml    coredns.yaml.sed  deploy.sh
    

    修改前后对比

    [root@master01 coredns]# diff coredns.yaml coredns.yaml.sed
    58c58,59
    <         kubernetes cluster.local  10.254.0.0/16 {
    ---
    >         ready
    >         kubernetes CLUSTER_DOMAIN REVERSE_CIDRS {
    60d60
    <           upstream
    62c62
    <         }
    ---
    >         }FEDERATIONS
    64c64
    <         forward . /etc/resolv.conf
    ---
    >         forward . UPSTREAMNAMESERVER
    69c69
    <     }
    ---
    >     }STUBDOMAINS
    144,145c144,145
    <             path: /health
    <             port: 8080
    ---
    >             path: /ready
    >             port: 8181
    171c171
    <   clusterIP: 10.254.0.10
    ---
    >   clusterIP: CLUSTER_DNS_IP
    

    二、部署coredns

    [root@master01 coredns]# kubectl apply -f coredns.yaml
    serviceaccount/coredns created
    clusterrole.rbac.authorization.k8s.io/system:coredns created
    clusterrolebinding.rbac.authorization.k8s.io/system:coredns created
    configmap/coredns created
    deployment.apps/coredns created
    service/kube-dns created
    

    三、修改kubelet dns服务参数并重启kubelet服务

    [root@node01 ~]# tail /k8s/kubernetes/cfg/kubelet
    --v=4 \
    --hostname-override=10.8.13.84 \
    --kubeconfig=/k8s/kubernetes/cfg/kubelet.kubeconfig \
    --bootstrap-kubeconfig=/k8s/kubernetes/cfg/bootstrap.kubeconfig \
    --config=/k8s/kubernetes/cfg/kubelet.config \
    --cert-dir=/k8s/kubernetes/ssl \
    --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0"
    --cluster-dns=10.254.0.10 \
    --cluster-domain=cluster.local. \
    --resolv-conf=/etc/resolv.conf "
    
    [root@node01 ~]# systemctl restart kubelet.service 
    [root@node01 ~]# systemctl status kubelet.service 
    ● kubelet.service - Kubernetes Kubelet
       Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
       Active: active (running) since Tue 2019-05-14 10:30:15 CST; 1h 31min ago
     Main PID: 20105 (kubelet)
       Memory: 45.2M
       CGroup: /system.slice/kubelet.service
               └─20105 /k8s/kubernetes/bin/kubelet --logtostderr=true --v=4 --hostname-override=10.8.13.84 --kubeconfig=/k8s/kubernetes/cfg/kubelet.kubeconfig --bootstrap-kubeconfig=/k8s/kubernetes/cfg/bootstrap.kubeconfig --config=/k8s/kubernetes/cfg/kubelet.config --ce...
    
    May 14 12:01:33 hwzx-test-cmpnode01 kubelet[20105]: I0514 12:01:33.867343   20105 kubelet.go:2189] Container runtime status: Runtime Conditions: RuntimeReady=true reason: message:, NetworkReady=true reason: message:
    May 14 12:01:34 hwzx-test-cmpnode01 kubelet[20105]: I0514 12:01:34.799186   20105 prober.go:165] HTTP-Probe Host: http://10.254.88.2, Port: 8080, Path: /health
    May 14 12:01:34 hwzx-test-cmpnode01 kubelet[20105]: I0514 12:01:34.799336   20105 prober.go:168] HTTP-Probe Headers: map[]
    May 14 12:01:34 hwzx-test-cmpnode01 kubelet[20105]: I0514 12:01:34.801305   20105 http.go:99] Probe succeeded for http://10.254.88.2:8080/health, Response: {200 OK 200 HTTP/1.1 1 1 map[Content-Length:[2] Content-Type:[text/plain; charset=utf-8] Dat...0xc000d54e00 <nil>}
    May 14 12:01:34 hwzx-test-cmpnode01 kubelet[20105]: I0514 12:01:34.801428   20105 prober.go:118] Liveness probe for "coredns-7477c554c9-nsj5w_kube-system(0cef3fc3-75fb-11e9-a5ac-0050569059b4):coredns" succeeded
    May 14 12:01:35 hwzx-test-cmpnode01 kubelet[20105]: I0514 12:01:35.414625   20105 prober.go:165] HTTP-Probe Host: http://10.254.88.2, Port: 8080, Path: /health
    May 14 12:01:35 hwzx-test-cmpnode01 kubelet[20105]: I0514 12:01:35.414704   20105 prober.go:168] HTTP-Probe Headers: map[]
    May 14 12:01:35 hwzx-test-cmpnode01 kubelet[20105]: I0514 12:01:35.416291   20105 http.go:99] Probe succeeded for http://10.254.88.2:8080/health, Response: {200 OK 200 HTTP/1.1 1 1 map[Date:[Tue, 14 May 2019 04:01:35 GMT] Content-Length:[2] Content...0xc000d7bc00 <nil>}
    May 14 12:01:35 hwzx-test-cmpnode01 kubelet[20105]: I0514 12:01:35.416390   20105 prober.go:118] Readiness probe for "coredns-7477c554c9-nsj5w_kube-system(0cef3fc3-75fb-11e9-a5ac-0050569059b4):coredns" succeeded
    May 14 12:01:35 hwzx-test-cmpnode01 kubelet[20105]: I0514 12:01:35.522515   20105 kubelet.go:1995] SyncLoop (housekeeping)
    Hint: Some lines were ellipsized, use -l to show in full.
    

    四、使用dnstools测试效果

    注意:拿SVC服务来测试

    [root@master01 coredns]# kubectl run -it --rm --restart=Never --image=infoblox/dnstools:latest dnstools
    If you don't see a command prompt, try pressing enter.
    dnstools# nslookup kubernetes
    Server:     10.254.0.10
    Address:    10.254.0.10#53
    
    Name:   kubernetes.default.svc.cluster.local
    Address: 10.254.0.1
    
    dnstools# nslookup nginx
    Server:     10.254.0.10
    Address:    10.254.0.10#53
    
    Name:   nginx.default.svc.cluster.local
    Address: 10.254.224.237
    

    相关文章

      网友评论

          本文标题:kubernetes(k8s)coredns1.5.0部署

          本文链接:https://www.haomeiwen.com/subject/hjyjaqtx.html