内容简介:本文介绍 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 Domain
和 Service CIDR
默认为 cluster.local
和 10.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
验证可以采用本文刚开始部分提到的方法。
参考资料
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- ASP.NET Core模块化前后端分离快速开发框架介绍之3、数据访问模块介绍
- 简编漫画介绍WebAssembly
- CGroup 介绍
- CGroup 介绍
- vue初步介绍
- Microbit MicroPython 介绍
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Docker——容器与容器云
浙江大学SEL实验室 / 人民邮电出版社 / 2015-9-1 / 89.00元
本书从实践者的角度,在讲解Docker高级实践技巧的同时,深入到源代码层次,为读者梳理出Docker容器技术和基于Docker的容器云技术(如Kubernetes)的实现方法和设计思路,帮助读者理解如何在实际场景中利用Docker解决问题并启发新的思考。全书包括两部分,第一部分深入解读Docker容器技术,包括Docker入门、架构总览、Docker容器核心原理解读,以及Docker高级实践技巧;......一起来看看 《Docker——容器与容器云》 这本书的介绍吧!