CoreDNS是一个Go语言实现的链式插件DNS服务端,是CNCF成员,是一个高性能、易扩展的DNS服务端。可以很方便的部署在k8s集群中,用来代替kube-dns
具体的区别可以参考官方文档或者:https://zhuanlan.zhihu.com/p/80141656?from_voters_page=true
原理:
kubedns: kubedns 基于 SkyDNS 库,通过 apiserver 监听 Service 和 Endpoints 的变更事件同时也同步到本地 Cache,实现了一个实时的 Kubernetes 集群内 Service 和 Pod 的 DNS服务发现
配置文件我都放到了百度网盘了,需要可以直接下载
链接:https://pan.baidu.com/s/1pC97t6rRgB0HaKHWQ_yk5Q
提取码:dc4o
首先我们启动了pod进入之后看一下没有dns的效果是啥样的
发现不了百度的域名在pod当中
我们测试一下网络是否正常
到外网是没有问题的
说明我的上面的10.0.0.2这个dns没有生效
这个是在之前配置集群的时候定义好的,dns使用这个ip地址,所以这里就用这个
这两个忽略就好
这样会生成一个coredns的yaml
看一下配置
接下来启动一下
启动了在测试一下
看到了吧,这次在pod中可以访问百度了
如果我们要自定义dns,可以创建一个
ConfigMap 建立了一个 DNS 配置,它具有一个单独的存根域和两个上游域名服务器
然后把这个configmap挂载到pod中
如果当前的1个dns怕出现问题可以修改副本数量
kubectl edit deployment coredns -n kube-system
好了今天的dns就讲解到这里,后续有问题欢迎私信留言
原文地址:https://blog.51cto.com/xiaorenwutest/2485580