使用onectl管理弹性伸缩节点池

注册集群弹性伸缩节点池用于管理一组线上节点资源,您可以通过该节点池为您的数据中心本地集群扩容云上的ECS节点。本文介绍如何使用onectl管理注册集群的弹性伸缩节点池。

前提条件

配置节点添加脚本

执行以下命令,配置节点添加脚本。

关于脚本的编写,请参见使用自定义节点添加脚本

onectl nodepool config --script-url ****

预期输出:

Set node init script successfully, script url: ****.

开启节点池自动弹性伸缩

执行以下命令,开启节点池的自动弹性伸缩。

onectl nodepool auto-scale enable

预期输出:

Cluster **** (id: ****), auto scaling enabled.

创建弹性伸缩节点池

前提条件

  • 检查确认节点池创建的前提条件。

  • 如果已经配置节点池的自动弹性伸缩,在节点池创建完成后,cluster-autoscaler组件会以Deployment形式自动部署在注册集群中。因此,在创建节点池之前,如需使用自动弹性伸缩功能,需要先配置cluster-autoscaler组件的权限。

操作步骤

  1. 执行以下命令,检查创建节点池的前提条件是否满足。

    onectl nodepool check

    预期输出:

    Node pool check passed.
  2. 执行以下命令,进行自动弹性伸缩权限配置。

    onectl ram-user grant --addon cluster-autoscaler

    预期输出:

    Ram policy ack-one-registered-cluster-policy-cluster-autoscaler granted to ram user **** successfully.
  3. 执行以下命令,创建节点池。

    onectl nodepool create --name test-nodepool --key-pair-name **** --instance-types ecs.g6.xlarge,ecs.hfc6.xlarge --vswitches ****

    参数

    是否必选

    说明

    name

    节点池名称。

    key-pair-name

    是,且仅支持二选一。

    免密登录节点的密钥对名称。

    login-password

    节点登录密码。

    instance-types

    节点实例规格。

    vswitches

    虚拟交换机列表。

您可以执行onectl nodepool create -h查看更多节点池创建的参数配置信息。

查看节点池列表

执行以下命令,查看注册集群的所有节点池。

onectl nodepool list --cluster-id ****

其中,cluster-id为注册集群的ID,默认为当前集群。

手动扩容节点池

执行以下命令,手动扩容节点池。

onectl nodepool scale --node-count 3 --node-pool-id **** --cluster-id **** 

参数

是否必选

说明

node-count

期望的节点数量,默认为0。

node-pool-id

待扩容的节点池ID。

cluster-id

节点池所属的注册集群ID,默认为当前集群。

预期输出:

Cluster ****, node pool **** (id: ****) scaled to node count 3.

关闭节点池自动弹性伸缩

执行以下命令,关闭节点池的自动弹性伸缩。

onectl nodepool auto-scale disable

预期输出:

Cluster **** (id: ****), auto scaling disabled.

删除节点池

执行以下命令,删除节点池。

onectl nodepool delete --node-pool-id **** --cluster-id **** --force

参数

是否必选

说明

node-pool-id

待删除的节点池ID。

cluster-id

节点池所属的注册集群ID,默认为当前集群。

force

是否强制删除。当节点池的节点数量大于0时,可以强制删除节点池并释放所有节点资源。