K8s搭建-CoreDns
CoreDNS简介
CoreDNS 其实就是一个 DNS 服务,而 DNS 作为一种常见的服务发现手段,所以很多开源项目以及工程师都会使用 CoreDNS 为集群提供服务发现的功能,Kubernetes 就在集群中使用 CoreDNS 解决服务发现的问题。
如果想要在分布式系统实现服务发现的功能,CoreDNS 其实是一个非常好的选择,CoreDNS作为一个已经进入CNCF并且在Kubernetes中作为DNS服务使用的应用,其本身的稳定性和可用性已经得到了证明,同时它基于插件实现的方式非常轻量并且易于使用,插件链的使用也使得第三方插件的定义变得非常的方便。
Coredns 架构
整个 CoreDNS 服务都建立在一个使用 Go 编写的 HTTP/2 Web 服务器 Caddy 。
Coredns 项目下载
下载地址1:
wget https://github.com/coredns/deployment/archive/master.zip
unzip master.zip
下载地址2:
git clone https://github.com/coredns/deployment.git
安装部署
确认是否存在已运行dns服务
1 | kubectl get pods -o wide -n=kube-system |
删除命令
1 | kubectl delete --namespace=kube-system deployment ****-dns |
生成安装配置文件
1 | cd /workspace/deployment/kubernetes |
验证配置文件核心配置
1 | cat coredns.yaml |
执行安装
1 | kubectl create -f coredns.yaml |
验证安装
1 | kubectl get svc -o wide -n=kube-system |
查看coredns详细
设置master和节点DNS
使用命令查看kubelet配置的位置
1 | systemctl status kubelet -l |
修改/var/lib/kubelet/config.yaml
文件的内容
1 | clusterDNS: |
重启
1 | systemctl daemon-reload |
验证DNS
1、创建一个curl
1 | kubectl run -it --image=registry.cn-shenzhen.aliyuncs.com/zhouqi-kubernetes/busyboxplus:v1 curl --rm |
这个地方如果要验证各节点,可以伸缩多个,会运行在不同的节点中
对节点的验证,只需要进入容器使用nslookup kubernetes
命令,就可以显示下图