k8s中dns选择

k8s中dns选择

skydns, kube-dns, coredns

skydns
etcd:DNS存储
kube2sky:将Kubernetes Master中的service(服务)注册到etcd。
skyDNS:提供DNS域名解析服务。
healthz:提供对skydns服务的健康检查。
http://blog.51cto.com/ylw6006/2067923

kube-dns 
从 Kubernetes v1.3 版本开始,使用 [cluster add-on 插件管理器回自动启动内置的 DNS。
Kubernetes DNS pod 中包括 3 个容器:
kubedns:kubedns 进程监视 Kubernetes master 中的 Service 和 Endpoint 的变化,并维护内存查找结构来服务DNS请求。
dnsmasq:dnsmasq 容器添加 DNS 缓存以提高性能。
sidecar:sidecar 容器在执行双重健康检查(针对 dnsmasq 和 kubedns)时提供单个健康检查端点(监听在10054端口)。
DNS pod 具有静态 IP 并作为 Kubernetes 服务暴露出来。该静态 IP 分配后,kubelet 会将使用 --cluster-dns = 标志配置的 DNS 传递给每个容器。
DNS 名称也需要域名。本地域可以使用标志 --cluster-domain = 在 kubelet 中配置。
Kubernetes集群DNS服务器基于 SkyDNS 库。它支持正向查找(A 记录),服务查找(SRV 记录)和反向 IP 地址查找(PTR 记录)
kube-dns
https://jimmysong.io/posts/configuring-kubernetes-kube-dns/


CoreDNS
CoreDNS项目是SkyDNS2的作者,Miek Gieben采用更模块化,可扩展的框架构建,将此DNS服务器作为Kube-DNS的替代品。CoreDNS作为CNCF中的托管的一个项目,在Kuberentes1.9版本中,使用kubeadm方式安装的集群可以通过以下命令直接安装CoreDNS。
kubeadm init --feature-gates=CoreDNS=true。
coredns
https://www.cnblogs.com/breezey/p/9074383.html
http://blog.51cto.com/ylw6006/2108426

你可能感兴趣的:(docker)