文章目录
前言
CoreDNS 是一个DNS服务器。它是用Go编写的。由于其灵活性,它可以在多种环境中使用。目前K8s主要使用CoreDNS对为集群提供域名解析服务。
解析流程
- 容器nginx需要访问百度,ping一下百度域名baidu.com。
- 该请求会先被kube-dns(Coredns服务)捕获。
- 域名解析转发到coredns集群,根据负载均衡会分配到某个coredns pod。
- coredns pod再通过api-server转到k8s集群服务。
- 最后k8s集群从etcd数据库中获取到域名解析结果。
- etcd把结果原路返回到k8s,依次类推,Nginx获取到baidu对应的IP地址。
- 解析结果会保存到域名缓存,下次访问会更加快速。
安装Coredns
coredns的安装部署需要使用yaml文件,可通过以下2个途径获取:
https://github.com/coredns/deployment/blob/master/kubernetes/coredns.yaml.sed
/root/kubernetes/cluster/addons/dns/coredns/coredns.yaml.base