使用说明
原生节点池未开启自动伸缩:
初始化节点数量取决于设置的节点数(字段名:replicas)。
用户可以手动调整期望节点数,节点数上限受限于后台默认值 500 和容器子网 IP 数。
原生节点池开启自动伸缩:
初始化节点数量取决于设置的节点数(字段名:replicas)。
需要设置节点数量范围(字段名:minReplicas/maxReplicas),CA 调节当前节点池的节点数量受限于该范围。
不支持用户手动调节期望实例数。
说明:
同一时间,控制台节点池弹性伸缩只能由一个角色控制,若已启用弹性伸缩,则不能手动调整实例数量;若要手动调整实例数量,则先关闭弹性伸缩。
为节点开启自动伸缩功能
参数说明
功能项 | 字段名/值 | 描述 |
自动伸缩 | 字段名:spec.scaling | 默认勾选开启,开启后 CA 组件对该类节点池进行自动伸缩。 |
节点数量范围 | 字段名:spec.scaling.maxReplicas/minReplicas 字段值:自定义 | 节点池内的节点数量受限于该范围内的最小值/最大值,若节点池开启了自动伸缩,原生节点数量将在设定的范围内自动调节。 |
扩容策略 | 字段名:spec.scaling.createPolicy 字段值: ZonePriority(首选可用区优先) ZoneEquality(多可用区打散) | 首选可用区优先:弹性伸缩会在您首选的可用区优先执行扩缩容。若首选可用区无法扩缩容,才会在其他可用区进行扩缩容。 多可用区打散:在伸缩组指定的多可用区(即指定多个子网)之间尽最大努力均匀分配节点实例。只有配置了多个子网时该策略才能生效。 |
通过控制台操作
方式1:通过节点池创建页开启或关闭自动伸缩
2. 在新建页面,勾选开启自动伸缩。如下图所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/9d7f37f7e794220bc89469c4e714c547.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/9d7f37f7e794220bc89469c4e714c547.png)
方式2:通过节点池详情页开启或关闭自动伸缩
1. 登录 容器服务控制台,选择左侧导航栏中的集群。
2. 在集群列表页中,单击集群 ID,进入该集群详情页。
3. 选择左侧菜单栏中的节点管理 > Worker 节点,在节点池中单击节点池 ID,进入节点池详情页。
4. 在节点池详情页中,单击运维信息右侧的编辑。如下图所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/431298deac2d04a7e11f384a8565826f.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/431298deac2d04a7e11f384a8565826f.png)
5. 勾选开启弹性伸缩。如下图所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/14b5694ecb03fc4f0e9927978daa859c.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/14b5694ecb03fc4f0e9927978daa859c.png)
6. 单击确定。
通过 YAML 操作
请根据参数介绍,在节点池 YAML 中填写
scaling
字段。apiVersion: node.tke.cloud.tencent.com/v1beta1kind: MachineSetspec:type: NativedisplayName: mstestreplicas: 2autoRepair: truedeletePolicy: RandomhealthCheckPolicyName: test-allinstanceTypes:- C3.LARGE8subnetIDs:- subnet-xxxxxxxx- subnet-yyyyyyyyscaling:createPolicy: ZonePriorityminReplicas: 10maxReplicas: 100template:spec:displayName: mtestruntimeRootDir: /var/lib/containerdunschedulable: false......
查看扩缩容记录
1. 登录 容器服务控制台,选择左侧导航栏中的集群。
2. 在集群列表页中,单击集群 ID,进入该集群详情页。
3. 选择左侧菜单栏中的节点管理 > Worker 节点,在节点池中单击节点池 ID,进入节点池详情页。
4. 在运维记录页中,您可以查看节点扩缩容记录。如下图所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/2434c69ac3a880d2e7cb75a8afc66d43.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/2434c69ac3a880d2e7cb75a8afc66d43.png)
扩容原理介绍
本节将针对多机型、多子网条件下,举例说明原生节点的扩容原理。
场景1:开启弹性伸缩,扩容策略为“首选可用区优先”
算法:
1. 根据子网排列顺序,确定首选可用区。
2. 从多个机型中选择当前库存最多的一款机型扩容,每扩容一台机器后实时判断一次库存,确保机器尽量在首选可用区中扩容成功。
示例:
假设节点池设置了机型A/B(A库存5台,B库存3台),子网1/2/3(3个子网在不同可用区,子网1为首选),机型和子网的排列顺序在算法判断时有效,此时 CA 触发节点池扩容10台机器。后台判断流程如下:
2.1 根据子网顺序确定首选可用区所在子网为“子网1”。
2.2 判断所有机型的实时库存情况,扩容1台节点,以此循环。
2.3 扩容8台节点后,此时没有资源可在子网1所中继续扩容,执行2.1步骤切换首选可用区为子网2。
场景2:开启弹性伸缩,扩容策略为“多可用区打散”
算法:
1. 根据节点池中存量节点在可用区的分布情况,确定每个可用区预计扩容的数量,使扩容后每个可用区分布的节点数量尽量一致。
2. 确定可用区后,从多个机型中选择当前库存最多的一款机型扩容,每扩容一台机器后实时判断一次库存,确保机器尽量在当前可用区中扩容成功。
示例:假设节点池设置了机型A/B(A库存5台,B库存3台),子网1/2/3(3个子网在不同可用区,子网1为首选),机型和子网的排列顺序在算法判断时有效,节点池中存在5台节点且部署在可用区1中,此时 CA 触发节点池扩容10台机器。后台判断流程如下:
2.1 根据存量节点的部署情况,预计要在可用区2和3中各扩容5台机器。
2.2 根据子网顺序确定当前操作的可用区子网,即“子网2”。
2.2.1 判断所有机型的实时库存情况,扩容1台节点,以此循环。
2.2.2 可用区2扩容完毕后,执行2.2步骤切换当前待扩容的可用区子网为“子网3”。
场景3:关闭弹性伸缩,手动调高节点池数量
此时扩容策略默认为“多可用区打散”,原理同场景2。