最近更新时间:2024-09-10 16:07:52
本文主要介绍KCE中CoreDNS默认配置,以及针对集群实际用量情况的配置建议。
KCE中CoreDNS默认以Deployment类型,三副本方式部署。按照默认调度配置,独立部署集群中将调度到master节点,托管集群中将调度到node节点,且调度到不同节点上。
可通过如下方式查询CoreDNS服务状态:
[root@vm10-0-10-95 ~]# kubectl get deploy -n kube-system | grep coredns
coredns 3/3 3 3 300d
创建于2023/11/29之后的集群需注意:
对于独立部署集群,如果给master打上自定义污点,需要同步为CoreDNS配置污点容忍,否则可能导致CoreDNS重建时无法调度;
对于托管集群,如果给node打上自定义污点,请通过增加节点或为CoreDNS配置污点容忍,确保CoreDNS可调度。
KCE中CoreDNS默认资源配置如下,其中内存用量主要受集群内pod和service数量影响,cpu用量受qps影响。此外使用不同插件的资源用量可能不同,建议您在运行过程中观察内存、cpu用量及qps能力。
resources:
limits:
memory: "2Gi"
requests:
cpu: "100m"
memory: "70Mi"
KCE中CoreDNS默认副本数为3,且配置了 podAntiAffinity
使副本分布在不同节点。针对集群实际用量,您可参考以下建议调整CoreDNS副本数:
1. 在标准配置下,CoreDNS每个实例每秒可以处理超过10000次查询。根据业务需求,您可以按照副本数与QPS之间1:10000的比例来调整。例如当QPS为35000时,CoreDNS副本数应该调整为4。
2. 如果无法预估QPS,建议您监控CoreDNS在高峰时段的CPU使用情况。如果观察到CPU使用率在业务高峰期间超过一核资源,那么增加副本数量将有助于缓解查询压力。
3. 作为一种保守的策略,您也可以按照副本数与集群节点数之间1:8的比例进行调整。例如当集群节点数为20,CoreDNS副本数应该调整为3。
建议CoreDNS副本数不超过10,当节点数量超过100时,推荐使用NodeLocal DNSCache,KCE中可参考使用NodeLocal DNSCache。
纯净模式