
# 调整CoreDNS部署状态
CCE集群默认安装CoreDNS插件，CoreDNS应用默认情况下与您的业务容器运行在同样的集群节点上，部署时的注意事项如下：
- [合理调整CoreDNS副本数]
- [合理分配CoreDNS所在位置]
- [使用自定义参数完成CoreDNS隔离部署]
- [基于HPA自动扩容CoreDNS]
 #### 合理调整CoreDNS副本数
建议您在任何情况下设置CoreDNS副本数应至少为2，且副本数维持在一个合适的水位以承载整个集群的解析。CCE集群安装CoreDNS插件的默认实例数为2。
- CoreDNS使用资源的规格与解析能力相关，修改CoreDNS副本数量、CPU/内存的大小会对影响解析性能，请经过评估后再做修改。
- CoreDNS插件默认配置了podAntiAffinity（Pod反亲和），当一个节点已有一个CoreDNS Pod时无法再添加新的Pod，即一个节点上只能运行一个CoreDNS Pod。如果您配置的CoreDNS副本数量大于集群节点数量，会导致多出的Pod无法调度。建议Pod的副本数量不大于节点的数量。
 
 #### 合理分配CoreDNS所在位置
- CoreDNS插件默认配置了podAntiAffinity（Pod反亲和），各个CoreDNS副本会强制部署在不同节点上。建议您将CoreDNS副本打散在不同可用区的节点上，避免单可用区故障。
- CoreDNS所运行的集群节点应避免CPU、内存用满的情况，否则会影响域名解析的QPS和响应延迟。建议您使用插件自定义参数完成[CoreDNS隔离部署]。
 
 #### 使用自定义参数完成CoreDNS隔离部署
建议CoreDNS插件与资源使用率高的负载隔离部署，防止因业务波动导致CoreDNS性能下降或不可用。您可以通过自定义参数完成CoreDNS独占节点部署。
![](https://support.huaweicloud.com/bestpractice-cce/public_sys-resources/note_3.0-zh-cn.png)
节点数应大于CoreDNS副本数，避免单个节点上运行多个CoreDNS副本。
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，进入集群，单击左侧导航栏的"节点管理"。
2. 切换至"节点"页签，选择CoreDNS需要独占的节点，单击"标签与污点管理"。 
   添加以下标签：
   - 标签键：node-role.kubernetes.io/coredns
   
   - 标签值：true
   
   
   添加以下污点：
   - 污点键：node-role.kubernetes.io/coredns
   
   - 污点值：true
   
   - 污点效果：NoSchedule
   
   
   图1添加标签与污点   
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001880828614.png "点击放大")
   
   
3. 单击左侧导航栏的"插件中心"，选择"CoreDNS域名解析"插件，单击编辑。
4. 在"节点亲和"中，选择"自定义亲和策略"，并添加上述节点标签。 
   在"容忍策略"中添加对上述污点的容忍。
   图2添加容忍策略   
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001926787925.png "点击放大")
   
   
5. 单击"确定"。
 
 #### 基于HPA自动扩容CoreDNS
由于HPA会频繁触发CoreDNS副本缩容，建议不要使用容器水平扩缩容（HPA）。如果您的场景下必须依赖于HPA，建议您通过"CCE容器弹性引擎"插件配置HPA自动扩容策略，流程如下：
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，进入集群，单击左侧导航栏的"插件中心"，在右侧找到CCE容器弹性引擎，单击"安装"。
2. 配置插件规格后单击"安装"，插件详细说明请参考[CCE容器弹性引擎](https://support.huaweicloud.com/usermanual-cce/cce_10_0240.html)。
3. 在CCE控制台单击左侧导航栏的"工作负载"，命名空间选择"kube-system"，找到CoreDNS实例，单击操作栏中的"弹性伸缩"。 
   在"HPA策略"中，您可以根据业务需求，通过CPU利用率、内存利用率等指标自定义HPA策略以自动扩容CoreDNS。
   图3创建弹性伸缩策略   
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001910982777.png "点击放大")
   
   
4. 单击"创建"，当最新状态为"已启动"时，代表HPA自动扩容CoreDNS策略生效。
 
