CCE节点池内的节点变更规格后会有哪些影响?
问题背景
在ECS侧变更CCE节点池内节点的规格,前往CCE控制台同步云服务器状态,导致节点规格与节点池中设置的规格不一致。
问题影响
- 节点变更规格后,由于CPU、内存、网卡配额(可用IP地址)等节点参数发生变化,可能会导致该节点所在的节点池弹性伸缩行为与预期不符。
例如,节点进行规格变更后,增加CPU和内存(从2U4G变更4U8G)。
- 节点池扩容时,将根据节点池的节点模板信息计算资源,而ECS侧变更规格导致节点的规格与节点池设定的规格不一致,导致当前集群的CPU和内存使用量计算存在偏差,使扩容时节点池的资源总数可以部分超出CPU/内存的扩容上限。
- 节点池缩容时,如果缩容已变更规格的节点,将导致实际缩容的CPU/内存数(4U8G)大于预期缩容的CPU/内存数(2U4G),使得被缩容的CPU/内存资源过多。
- 在CCE Turbo集群中,如果节点池内节点发生规格变更,会导致节点支持的网卡数量发生变化,而节点可运行的最大Pod数量由“节点网卡数量”和节点池配置中的“最大实例数”中的最小值决定。详情请参见节点可创建的最大Pod数量说明。可能会导致该节点上可运行的Pod与预期不符。
- 情况一:调大规格导致节点网卡数增加,出现“节点网卡数量”大于节点池配置中的“最大实例数”的情况,节点实际仅能根据两者间的最小值进行调度,该节点上的Pod数量无法大于节点池配置中的“最大实例数”,可能导致资源浪费。
如果您同时调大节点池配置中的“最大实例数”,而节点池中仍存在小规格节点,则可能导致情况二中部分Pod因网卡不足无法运行的问题。建议包含不同规格节点的节点池配置的“最大实例数”不超过最小规格节点的网卡数。如果考虑资源无法有效利用的问题,您可以在调大“最大实例数”后,参考解决方案中的步骤在节点池中添加足够的大规格节点,然后逐渐将节点池中的小规格节点全部缩容,最终使“节点网卡数量”与节点池配置中的“最大实例数”保持统一。
- 情况二:调小规格导致节点网卡数减少,出现“节点网卡数量”小于节点池配置中的“最大实例数”的情况,kubelet将Pod调度至该节点时,如果节点网卡已被分配完,Pod将无法正常运行。
- 情况一:调大规格导致节点网卡数增加,出现“节点网卡数量”大于节点池配置中的“最大实例数”的情况,节点实际仅能根据两者间的最小值进行调度,该节点上的Pod数量无法大于节点池配置中的“最大实例数”,可能导致资源浪费。
解决方案
不建议您变更节点池中节点的规格,您可以使用更新节点池功能为节点池添加其他规格的节点,然后等待业务调度至新节点后,将原节点缩容。
- 登录CCE控制台,进入集群,在左侧选择“节点管理”。
- 找到目标节点池,单击“更新”。
- 在“节点规格”中勾选新的规格,单击“下一步 规格确认”,然后提交更新。
- 节点池配置更新后,单击节点池名称后的“扩缩容”。
- 在弹出的“节点池扩缩容”窗口中,选择需要扩容的节点规格并增加扩容节点数,然后单击“确定”。
- 切换至“节点”页签,找到目标节点单击“更多 > 节点排水”,安全驱逐节点上的业务Pod。
- 等业务Pod调度到新节点后,单击节点池名称后的“扩缩容”,选择需要缩容的节点规格并设置缩容节点数,然后单击“确定”。