本文主要是对kubernetes 1.2和1.3的DNS Service的内部实现分别进行研究,得出其内部实现框架和交互逻辑,并对它们的实现进行了比较。
Kubernetes 1.2 DNS Service
部署
kubernetes 1.2中DNS Server的部署请参考:https://xuxinkun.github.io/2016/07/22/kubernetes-dns/
内部架构及技术细节
画图画的好累,不想写太多字了,其实想说的都在图里。
说明:
- 线路1:kubernetes cluster中的DNS请求被SkyDNS接受,SkyDNS配置了Backend为etcd/cluster,从etcd/cluster中读取数据,然后封装数据返回完成DNS query请求。
- Kube2Sky通过watch kube-api-server对service & endpoint的数据来进行更新etcd中/v2/key/skydns/…中的数据。