kubernetes二进制部署coredns(12)

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服务发现
kubernetes二进制部署coredns(12)

配置文件我都放到了百度网盘了,需要可以直接下载

链接:https://pan.baidu.com/s/1pC97t6rRgB0HaKHWQ_yk5Q
提取码:dc4o

首先我们启动了pod进入之后看一下没有dns的效果是啥样的
kubernetes二进制部署coredns(12)
发现不了百度的域名在pod当中

我们测试一下网络是否正常

kubernetes二进制部署coredns(12)
到外网是没有问题的


说明我的上面的10.0.0.2这个dns没有生效

这个是在之前配置集群的时候定义好的,dns使用这个ip地址,所以这里就用这个

kubernetes二进制部署coredns(12)
这两个忽略就好

这样会生成一个coredns的yaml

看一下配置

kubernetes二进制部署coredns(12)
接下来启动一下

kubernetes二进制部署coredns(12)
启动了在测试一下

kubernetes二进制部署coredns(12)
看到了吧,这次在pod中可以访问百度了

如果我们要自定义dns,可以创建一个
ConfigMap 建立了一个 DNS 配置,它具有一个单独的存根域和两个上游域名服务器
kubernetes二进制部署coredns(12)

然后把这个configmap挂载到pod中

如果当前的1个dns怕出现问题可以修改副本数量

kubectl edit deployment coredns -n kube-system

kubernetes二进制部署coredns(12)
kubernetes二进制部署coredns(12)

好了今天的dns就讲解到这里,后续有问题欢迎私信留言

相关推荐