文档首页 > > 用户指南> 弹性伸缩> 集群/节点弹性伸缩>

创建节点伸缩策略

创建节点伸缩策略

分享
更新时间:2021/03/31 GMT+08:00

CCE的自动伸缩能力是通过节点自动伸缩组件autoscaler实现的,可以按需弹出节点实例,支持多可用区、多实例规格、多种伸缩模式,满足不同的节点伸缩场景。

前提条件

使用节点伸缩功能前,需要安装autoscaler插件,插件版本要求1.13.8及以上。

缩容说明

节点伸缩策略中不能直接设置缩容策略,你可以在安装autoscaler插件时进行设置。

节点缩容仅支持资源分配率缩容机制,当集群下CPU和内存分配率低于您设置的门限(在安装/编辑autoscaler插件时设置)时将对节点池下节点启动缩容(该功能可以关闭),如图1

图1 自动缩容设置

操作步骤

  1. CCE控制台中,单击左侧导航栏的“弹性伸缩”,在“节点伸缩”页签下,单击“创建节点伸缩策略”按钮。
  2. 进入创建节点伸缩策略页面,在“插件检测”步骤中:

    • 若插件名称后方显示,请单击插件后方的“现在安装”按钮,根据业务需求配置插件参数后单击“立即安装”,等待插件安装完成。
    • 若插件名称后方显示,则说明插件已安装成功。

  3. 确认插件已安装成功后,单击“下一步:策略配置”

    如果插件已提前安装成功,单击“创建节点伸缩策略”按钮后,在“插件检测”步骤中经过短暂检测后将直接进入“策略配置”步骤。

  4. 在打开的“创建节点伸缩策略”页面中,参照表1设置策略参数。

    表1 节点伸缩策略参数配置

    参数

    参数说明

    策略名称

    新建策略的名称,请自定义。

    关联节点池

    请单击“添加节点池”后选择要操作的节点池。您可以关联多个节点池,以使用相同的伸缩策略。

    执行规则

    单击“添加规则”,在弹出的添加规则窗口中设置如下参数:

    规则名称:请输入规则名称,可自定义。

    规则类型:可选择“指标触发”“周期触发”,两种类型区别如下:

    • 指标触发:
      • 触发条件:请选择“CPU分配率”“内存分配率”,输入百分比的值。该百分比应大于autoscaler插件中配置的缩容百分比。
        说明:

        分配率 = 节点池容器组(Pod)资源申请量 / 节点池Pod可用资源量 (Node Allocatable) 。

      • 执行动作:与上述“触发条件”相对应,达到触发条件值后所要执行的动作。如图2中所示,当内存分配率超过40%时将增加5个节点。
        图2 指标触发-执行动作
    • 周期触发:
      • 触发时间:可选择每天、每周、每月或每年的具体时间点,如图3所示,则为每天15:00触发。
        图3 周期触发时间
      • 执行动作:与上述“触发时间”相对应,达到触发时间值后所要执行的动作。如图4中所示,即每天15:00时将执行增加5个节点的动作。
        图4 定时触发-执行动作

    您可以单击“添加规则”,设置多条节点伸缩策略。您最多可以添加1条CPU使用率指标规则、1条内存使用率指标规则,且规则总数小于等于10条。

  5. 设置完成后,单击“创建”,在“完成”步骤中若显示“创建节点伸缩策略***任务提交成功”,可单击“返回节点策略”
  6. “节点伸缩”页签下,可以看到刚创建的节点伸缩策略。

    图5 节点伸缩策略

Yaml样例

节点伸缩策略Yaml样例如下:

apiVersion: autoscaling.cce.io/v1alpha1
kind: HorizontalNodeAutoscaler
metadata:
  creationTimestamp: "2020-02-13T12:47:49Z"
  generation: 1
  name: xxxx
  namespace: kube-system
  resourceVersion: "11433270"
  selfLink: /apis/autoscaling.cce.io/v1alpha1/namespaces/kube-system/horizontalnodeautoscalers/xxxx
  uid: c2bd1e1d-60aa-47b5-938c-6bf3fadbe91f
spec:
  disable: false
  rules:
  - action:
      type: ScaleUp
      unit: Node
      value: 1
    cronTrigger:
      schedule: 47 20 * * *
    disable: false
    ruleName: cronrule
    type: Cron
  - action:
      type: ScaleUp
      unit: Node
      value: 2
    disable: false
    metricTrigger:
      metricName: Cpu
      metricOperation: '>'
      metricValue: "40"
      unit: Percent
    ruleName: metricrule
    type: Metric
  targetNodepoolIds:
  - 7d48eca7-3419-11ea-bc29-0255ac1001a8
表2 关键参数说明

参数

参数类型

描述

spec.disable

Bool

伸缩策略开关,会对策略中的所有规则生效

spec.rules

Array

伸缩策略中的所有规则

spec.rules[x].ruleName

String

规则名称

spec.rules[x].type

String

规则类型,当前支持“Cron”和“Metric”两种类型

spec.rules[x].disable

Bool

规则开关,当前仅支持“false”

spec.rules[x].action.type

String

规则操作类型,当前仅支持“ScaleUp”

spec.rules[x].action.unit

String

规则操作单位,当前仅支持“Node”

spec.rules[x].action.value

Integer

规则操作数值

spec.rules[x].cronTrigger

/

可选,仅在周期规则中有效

spec.rules[x].cronTrigger.schedule

String

周期规则的cron表达式

spec.rules[x].metricTrigger

/

可选,仅在指标规则中有效

spec.rules[x].metricTrigger.metricName

String

指标规则对应的指标,当前支持“Cpu”和“Memory”两种类型

spec.rules[x].metricTrigger.metricOperation

String

指标规则的比较符,当前仅支持“>”

spec.rules[x].metricTrigger.metricValue

String

指标规则的阈值,支持1-100之间的所有整数,需以字符串表示

spec.rules[x].metricTrigger.Unit

String

指标规则阈值的单位,当前仅支持“%”

spec.targetNodepoolIds

Array

伸缩策略关联的所有节点池

spec.targetNodepoolIds[x]

String

伸缩策略关联节点池的uid

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区论坛频道来与我们联系探讨

智能客服提问云社区提问