CoreDNS介绍

栏目: 服务器 · 发布时间: 7年前

内容简介:本文介绍 CoreDNS 相关配置以及验证方法,实验环境为 Kubernetes 1.11,搭建方法参考开始之前先吐槽一下busybox中的看起来像是DNS没有响应,慢着,使用带nslookup的alphine试一下。

本文介绍 CoreDNS 相关配置以及验证方法,实验环境为 Kubernetes 1.11,搭建方法参考 kubeadm安装kubernetes V1.11.1 集群

busybox 的槽点

开始之前先吐槽一下busybox中的 nslookup 命令。这个命令应该是实现的不是很完全,导致我在测试DNS的成功,得到了错误的信息。先来看一下

[root@devops-101 ~]# kubectl run busybox1 --rm -it --image=docker.io/busybox /bin/sh
If you don't see a command prompt, try pressing enter.
/ # nslookup kubernetes.default
Server:     172.17.0.10
Address:    172.17.0.10:53

** server can't find kubernetes.default: NXDOMAIN

*** Can't find kubernetes.default: No answer

看起来像是DNS没有响应,慢着,使用带nslookup的alphine试一下。

[root@devops-101 ~]# kubectl run dig --rm -it --image=docker.io/azukiapp/dig /bin/sh
If you don't see a command prompt, try pressing enter.
/ # dig @172.17.0.10 kubernetes.default.svc.cluster.local +noall +answer

; <<>> DiG 9.10.3-P3 <<>> @172.17.0.10 kubernetes.default.svc.cluster.local +noall +answer
; (1 server found)
;; global options: +cmd
kubernetes.default.svc.cluster.local. 5 IN A    172.17.0.1
/ # nslookup kubernetes.default
Server:     172.17.0.10
Address:    172.17.0.10#53

Name:   kubernetes.default.svc.cluster.local
Address: 172.17.0.1

/ # nslookup www.baidu.com
Server:     172.17.0.10
Address:    172.17.0.10#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 220.181.112.244
Name:   www.a.shifen.com
Address: 220.181.111.188

/ # nslookup kubernetes.default
Server:     172.17.0.10
Address:    172.17.0.10#53

Name:   kubernetes.default.svc.cluster.local
Address: 172.17.0.1

好好的啊!就是这个原因,busybox坑了我好几天。

CoreDNS

CoreDNS在Kubernetes1.11版本已经做为GA功能释放,成为Kubernetes默认的DNS服务替代了Ku be-DNS,目前是kubeadm、kube-up、minikube和kops安装 工具 的默认选项。

Stubdomain and upstreamnameserver in kube-dns translates to the proxy in CoreDNS. The federation in kube-dns has an equivalent federation in CoreDNS.

配置文件

使用kubeadm安装CoreDNS,会使用ConfigMap做为配置文件。这份配置文件,会默认使用宿主机的DNS服务器地址。

[root@devops-101 ~]# kubectl -n kube-system get configmap coredns -oyaml
apiVersion: v1
data:
  Corefile: |
    .:53 {
        errors
        health
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           pods insecure
           upstream
           fallthrough in-addr.arpa ip6.arpa
        }
        prometheus :9153
        proxy . /etc/resolv.conf
        cache 30
        reload
    }
kind: ConfigMap
metadata:
  creationTimestamp: 2018-08-20T07:01:55Z
  name: coredns
  namespace: kube-system
  resourceVersion: "193"
  selfLink: /api/v1/namespaces/kube-system/configmaps/coredns
  uid: ec72baa4-a446-11e8-ac92-080027b7c4e9

配置文件各项目的含义

名称|含义

---|---

errors|错误会被记录到标准输出

health|可以通过http://localhost:8080/health查看健康状况

kubernetes|根据服务的IP响应DNS查询请求,kubeadm的 Cluster DomainService CIDR 默认为 cluster.local10.95.0.0/12 ,可以通过 --service-dns-domain--service-cidr 参数配置。

prometheus|可以通过http://localhost:9153/metrics获取prometheus格式的监控数据

proxy|本地无法解析后,向上级地址进行查询,默认使用宿主机的 /etc/resolv.conf 配置

cache|缓存时间

检查COreDNS运行状况

检查Pod状态

[root@devops-101 ~]# kubectl -n kube-system get pods -o wide
NAME                                 READY     STATUS    RESTARTS   AGE       IP              NODE
coredns-78fcdf6894-52gp9             1/1       Running   4          4h        172.16.0.11     devops-101
coredns-78fcdf6894-mkvqn             1/1       Running   4          4h        172.16.0.10     devops-101
etcd-devops-101                      1/1       Running   4          3h        192.168.0.101   devops-101

检查部署

[root@devops-101 ~]# kubectl -n kube-system get deployments
NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
coredns   2         2         2            2           4h

验证可以采用本文刚开始部分提到的方法。

CoreDNS介绍

参考资料

  1. nslookup not working with flannel as network: nameserver 10.96.0.10
  2. 使用 kubeadm 搭建 kubernetes1.10 集群
  3. CoreDNS for Kubernetes Service Discovery, Take 2
  4. Migration from kube-dns to CoreDNS
  5. Deploying Kubernetes with CoreDNS using kubeadm
  6. dns service discovery fails on 1.11 with coredns (new default)

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Types and Programming Languages

Types and Programming Languages

Benjamin C. Pierce / The MIT Press / 2002-2-1 / USD 95.00

A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of typ......一起来看看 《Types and Programming Languages》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具