前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Kubernetes集群中扩展CoreDNS

在Kubernetes集群中扩展CoreDNS

作者头像
CNCF
发布2019-12-05 13:08:16
2.1K0
发布2019-12-05 13:08:16
举报
文章被收录于专栏:CNCFCNCFCNCF

用于调整Kubernetes集群中的CoreDNS资源/需求的指南

Chris O'Haver

我正在分享在Kubernetes(1.12)中使用CoreDNS(1.2.5)运行的一些测试结果,以便为将CoreDNS调整到您的集群提供一些参考点。除了在默认配置中测试CoreDNS之外,我还测试了CoreDNS并启用了可选的autopath插件。autopath插件是一种优化,有助于透明地缓解由于Kubernetes臭名昭着的ndots:5问题而导致的Pod性能损失。这些测试在启用autopath时量化了内存/性能交易。

本文中的指南和公式基于GCE中的一组集群测试,您的环境可能会有所不同。这篇博文是完整结果的摘录,你可以点击文末<<阅读原文>>进入网页了解更多细节。

内存和Pod

在大规模Kubernetes集群中,CoreDNS的内存使用率主要受集群中Pod和服务数量的影响。

使用默认的CoreDNS设置

要估计CoreDNS实例所需的内存量(使用默认设置),可以使用以下公式:

MB required (default settings) = (Number of Pods + Services) / 1000 + 54

使用autopath插件

autopath插件是一个可选的优化,可以提高群集外部名称查询的性能(例如infoblox.com)。启用autopath插件需要CoreDNS使用更多的内存来存储有关Pod的信息。启用autopath插件还会对Kubernetes API产生额外的负担,因为它必须监视对Pod的所有更改。

要估计CoreDNS实例所需的内存量(使用autopath插件),可以使用以下公式:

MB required (w/ autopath) = (Number of Pods + Services) / 250 + 56

CPU和QPS

在使用CoreDNS的集群上使用kubernetes/perf-tests/dns工具测试了最大QPS。使用的两种类型的查询是内部查询(例如kubernetes)和外部查询(例如infoblox.com)。

使用默认的CoreDNS设置

GCE n1-standard-2节点上的单个CoreDNS实例(默认设置):

1 从服务器的角度来看,它处理33667 QPS,延迟为2.404毫秒,但从客户端的角度来看,每个单一名称查找实际上包含5个串行查找。

使用autopath插件

CoreDNS中的autopath插件是一个减轻ClusterFirst搜索列表惩罚的选项。启用后,它会减少客户端在查找外部名称时进行的DNS查询次数。

在GCE n1-standard-2节点上单个CoreDNS实例(启用了autopath插件):

请注意,此处的外部查询数量大大改善。这是由于autopath插件优化。

启用autopath时,外部查询的服务器透视延迟略有上升(+8%)。这是因为它正在检查服务器端的每个搜索域的额外工作。但由于它可以在一次往返而不是五次回答,因此整体客户视角表现得到了很大改善。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档