有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

使用说明

原生节点的自动伸缩功能由容器平台自研实现,普通节点的自动伸缩功能依赖云产品 弹性伸缩 AS
原生节点池未开启自动伸缩:
初始化节点数量取决于设置的节点数(字段名:replicas)。
用户可以手动调整期望节点数,节点数上限受限于后台默认值 500 和容器子网 IP 数。
原生节点池开启自动伸缩:
初始化节点数量取决于设置的节点数(字段名:replicas)。
需要设置节点数量范围(字段名:minReplicas/maxReplicas),CA 调节当前节点池的节点数量受限于该范围。
不支持用户手动调节期望实例数。

为节点开启自动伸缩功能

参数说明

功能项
字段名/值
描述
自动伸缩
字段名:spec.scaling
默认勾选开启,开启后 CA 组件对该类节点池进行自动伸缩。
节点数量范围
字段名:spec.scaling.maxReplicas/minReplicas
字段值:自定义
节点池内的节点数量受限于该范围内的最小值/最大值,若节点池开启了自动伸缩,原生节点数量将在设定的范围内自动调节。
扩容策略
字段名:spec.scaling.createPolicy
字段值:
ZonePriority(首选可用区优先)
ZoneEquality(多可用区打散)
首选可用区优先:弹性伸缩会在您首选的可用区优先执行扩缩容。若首选可用区无法扩缩容,才会在其他可用区进行扩缩容。
多可用区打散:在伸缩组指定的多可用区(即指定多个子网)之间尽最大努力均匀分配节点实例。只有配置了多个子网时该策略才能生效。

通过控制台操作

方式1:通过节点池创建页开启或关闭自动伸缩

1. 登录 容器服务控制台,在集群中新建节点池。操作详情见 新建原生节点
2. 新建页面,勾选开启自动伸缩。如下图所示:




方式2:通过节点池详情页开启或关闭自动伸缩

1. 登录 容器服务控制台,选择左侧导航栏中的集群
2. 在集群列表页中,单击集群 ID,进入该集群详情页。
3. 选择左侧菜单栏中的节点管理 > Worker 节点,在节点池中单击节点池 ID,进入节点池详情页。
4. 在节点池详情页中,单击运维信息右侧的编辑。如下图所示:


5. 勾选开启弹性伸缩。如下图所示:



6. 单击确定

通过 YAML 操作

请根据参数介绍,在节点池 YAML 中填写scaling字段。
apiVersion: node.tke.cloud.tencent.com/v1beta1
kind: MachineSet
spec:
type: Native
displayName: mstest
replicas: 2
autoRepair: true
deletePolicy: Random
healthCheckPolicyName: test-all
instanceTypes:
- C3.LARGE8
subnetIDs:
- subnet-xxxxxxxx
- subnet-yyyyyyyy
scaling:
createPolicy: ZonePriority
minReplicas: 10
maxReplicas: 100
template:
spec:
displayName: mtest
runtimeRootDir: /var/lib/containerd
unschedulable: false
......


查看扩缩容记录

1. 登录 容器服务控制台,选择左侧导航栏中的集群
2. 在集群列表页中,单击集群 ID,进入该集群详情页。
3. 选择左侧菜单栏中的节点管理 > Worker 节点,在节点池中单击节点池 ID,进入节点池详情页。
4. 在运维记录页中,您可以查看节点扩缩容记录。如下图所示:



扩容原理介绍

本节将针对多机型、多子网条件下,举例说明原生节点的扩容原理。

场景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。