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

节点伸缩

分享
更新时间: 2020/04/30 GMT+08:00

本章节介绍CCE中集群节点进行扩缩容的步骤。

前提条件

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

操作步骤

  1. CCE控制台中,单击左侧导航栏的“弹性伸缩”,在“节点伸缩”页签中,查看界面提示,确认已安装autoscaler插件且处于正常状态。
  2. 安装autoscaler插件后,单击“创建节点伸缩策略”
  3. 在打开的“创建节点伸缩策略”页面中,参照表1设置策略参数。

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

    参数

    参数说明

    策略名称

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

    关联节点池

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

    执行规则

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

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

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

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

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

        该百分比应大于autoscaler插件中配置的缩容百分比。

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

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

  4. 设置完成后,单击“立即创建”将自动跳转到“节点伸缩”页面,在页面下方的列表中可以看到刚刚创建的策略。

    图4 节点伸缩策略

管理节点伸缩策略

节点伸缩策略创建完成后,可对创建的策略进行删除、编辑、停用、启用、克隆等操作。

删除节点伸缩策略

  1. 登录CCE控制台,在左侧导航栏中单击“弹性伸缩”,在“节点伸缩”页签中,单击要删除的策略后方“操作”栏中的“删除”
  2. 在弹出的“删除节点策略”窗口中,确认是否删除。
  3. 确认后,在输入框中输入 DELETE
  4. 单击“确认”按钮即完成删除操作。

编辑节点伸缩策略

  1. 登录CCE控制台,在左侧导航栏中单击“弹性伸缩”,在“节点伸缩”页签中,单击要更新的策略后方“操作”栏中的“编辑”
  2. 在打开的“创建节点伸缩策略”页面中,参照表1更新策略参数。
  3. 完成设置后,单击“确定”按钮完成编辑操作。

克隆节点伸缩策略

  1. 登录CCE控制台,在左侧导航栏中单击“弹性伸缩”,在“节点伸缩”页签中,单击要克隆的策略后方“操作”栏中的“更多 > 克隆”
  2. 在打开的“创建节点伸缩策略”页面中,可以看到部分参数已经克隆过来,请按照业务需求补充或修改其他策略参数。
  3. 单击“立即创建”按钮完成策略克隆,在“节点伸缩”页签下的策略列表中可以看到新克隆的策略。

停用/启用节点伸缩策略

  1. 登录CCE控制台,在左侧导航栏中单击“弹性伸缩”,在“工作负载伸缩”页签中,单击策略后方“操作”栏中的“更多 > 停用”,若策略为停用状态时,则单击“更多 > 启用”
  2. 在弹出的“停用节点策略”“启用节点策略”窗口中,确认是否进行停用或启用操作。
  3. 单击“确定”完成操作,在节点伸缩的列表中可以看到该策略的状态。

查看节点伸缩策略

您可以查看节点伸缩策略的关联节点池、执行规则和伸缩历史,参照界面中的提示有针对性的解决异常问题。

  1. 登录CCE控制台,在左侧导航栏中单击“弹性伸缩”,在“节点伸缩”页签中,单击要查看的策略前方的
  2. 在展开的区域中,可以看到该策略的关联节点池、执行规则和伸缩历史页签,若策略异常,请参照界面中的报错提示进行定位处理。

    您还可以在节点池管理中关闭或开启弹性扩缩容,登录CCE控制台,在左侧导航栏中单击“资源管理 > 节点池管理”,单击要操作的节点池右上角的“编辑”,在弹出的“编辑节点池”窗口中的可以看到“弹性扩缩容”按钮,并可设置节点数上下限和弹性缩容冷却时间。

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

提交反馈 取消

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

智能客服提问云社区提问