Kubernetes 集群DNS选择:CoreDNS vs Kube-DNS

在二进制部署 Kubernetes 集群时,最后一步是部署 DNS,有两个选项:CoreDNS 和 Kube-DNS,二者主要有什么区别,如何选择呢?

CoreDNS 和 Kube-DNS 作为 Kubernetes 集群的 DNS 服务提供者,在做用和完成的工作上是完全相同的。二者在实现上有一些不同,这导致了在资源消耗和性能上的差异。主要有:

  • CoreDNS 每个实例只有一个容器,而 Kube-DNS 有三个
  • Kube-DNS 使用 dnsmasq 进行缓存,这是一个 C 线程。Core-DNS 使用 Go 开发,goroutine 实现了更高效并发。
  • CoreDNS 默认使用 negative caching(不理解这个负缓存)。Kube-DNS 没有。

这些不同在一些方面对性能产生影响。每个实例里更多的容器数量增加了基础内存需求,也增大了性能开销(因为请求/应答要在容器之间来回传递)。对于kube-dns,dnsmasq 可能经过了 C语言的高度优化,但它毕竟是单线程的,智能利用CPU的一个核。CoreDNS 使用了 negative caching,用于处理外部名称搜索。

从 Kubernets 1.11 开始,CoreDNS 达到了 GA,kubeadm 使用它来默认安装 Kubernetes。容器镜像使用 coredns 而服务名是 kube-dns,这是为了保证应用从 Kube-DNS 迁移到 coredns 时的后向兼容性。

参考资料:

  • https://stackoverflow.com/questions/52761135/kubernetes-kube-dns-vs-coredns
  • https://coredns.io/2018/11/27/cluster-dns-coredns-vs-kube-dns/
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值