tencent cloud

文档反馈

原生节点扩缩容

最后更新时间:2024-06-27 11:10:20

    使用说明

    原生节点的自动伸缩功能由容器平台自研实现,普通节点的自动伸缩功能依赖云产品 弹性伸缩 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. 勾选开启自动伸缩,单击确定即开启自动伸缩。
    
    
    

    通过 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。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持