You need to enable JavaScript to run this app.
导航

UpdateNodePoolConfig

最近更新时间2024.01.23 19:56:30

首次发布时间2022.06.27 21:21:39

更新指定集群下的节点池配置。

请求参数

调用该 API 时的请求参数如下,除此之外还需传入公共请求参数。公共请求参数说明,请参见 公共参数

参数名称类型是否必选示例值说明
ActionStringUpdateNodePoolConfig公共参数,本接口值:UpdateNodePoolConfig。
VersionString2022-05-12公共参数,本接口值:2022-05-12。
ClientTokenStringBC028527-33B9-4990-A633-84E9F9******用于保证请求幂等性的字符串。该字符串由调用方传入,需保证不同请求之间唯一。ClientToken 对大小写敏感,且最大值不超过 64 个 ASCII 字符。

ClusterId

String

cc5silumrsfeq****

节点池所在集群的 ID。
可以调用 ListClusters 接口,获取集群 ID。

注意

集群必须处于{Running,[*]}{Updating,[Progressing]}状态。可调用 ListClusters 接口获取集群当前的状态。

Id

String

pc51i0m6rsfen****

节点池 ID。
可以调用 ListNodePools 接口,获取节点池 ID。

注意

节点池必须处于{Running,[*]}状态。可调用 ListNodePools 接口获取节点池当前的状态。

Name

String

test-nodepool

节点池名称。

  • 同一个集群下,节点池名称必须唯一。
  • 支持大小写英文字母、汉字、数字、短划线(-),长度限制为 2~64 个字符。

注意

不能使用默认节点池保留名:vke-default-nodepool

KubernetesConfigObject KubernetesConfigRequest节点池 Kubernetes 的配置。
NodeConfigObject NodeConfigForUpdate节点池中云服务器实例配置。

AutoScaling

Object NodePoolAutoScaling

节点池伸缩策略。

说明

默认节点池vke-default-nodepool不支持修改节点池伸缩策略。

NodeConfigForUpdate

参数名参数类型是否必选示例值说明

InstanceTypeIds

Array of String

["ecs.g2i.large"]

节点对应的 ECS 实例规格 ID 列表。传入参数值,表示更新节点池的原有规格。更新规格后,支持按照新的规格扩容,存量老规格的节点不受影响。
调用 ListSupportedResourceTypes 接口查询集群所支持的资源类型和范围。

注意

  • 当前仅支持传入一个数组元素。
  • 更新节点池规格时 GPU 型规格只能更换为 GPU 型规格,非 GPU 型规格只能更换为非 GPU 型规格。
  • 不支持更换为云服务器(ECS)已停止售卖的规格。详细说明,请参见 ECS 的 【停售公告】

SubnetIds

Array of String

["subnet-3rf6vwbgkg****"]

节点网络所属的子网 ID 列表。

可以调用 私有网络 API 获取子网 ID。

注意

  • 必须与集群处于同一个私有网络内。
  • 若传入该参数,则必须传入全量的子网 ID 列表,且只能在节点池原有子网 ID 基础上新增子网 ID,不能减少。
  • 单个节点池最多支持关联 8 个子网 ID。

SystemVolume

Object SystemVolume

节点的系统盘配置。
调用云服务器的 DescribeInstanceTypes 接口获取云服务器实例规格族与云盘规格的匹配关系。

DataVolumes

Array of DataVolume

节点的数据盘配置。
调用云服务的 DescribeInstanceTypes 接口获取云服务器实例规格族与云盘规格的匹配关系。

AdditionalContainerStorageEnabled

Boolean

false

配置节点的第一块数据盘并格式化挂载作为容器镜像和日志的存储目录,取值范围:

  • false:关闭
  • true:开启

InitializeScript

String

ZWNobyAidG******

创建并初始化节点后执行的自定义脚本。
支持 Shell 格式且需要对脚本内容进行 Base64 编码后传入。

说明

Base64 编码后长度不超过 1 KB。

SecurityObject NodeSecurityForUpdate节点安全配置。

Period

Integer

12

云服务器实例购买时长。取值如下,单位为月:
123456789122436
仅当节点池的InstanceChargeType=PrePaid时才可以修改。

AutoRenew

Boolean

true

云服务器实例到期后是否自动续费,取值如下:

  • true:自动续费
  • false:不自动续费
    仅当节点池的InstanceChargeType=PrePaid时才可以修改。

AutoRenewPeriod

Integer

1

云服务器实例每次自动续费时长。取值如下,单位为月:
123612
仅当节点池的InstanceChargeType=PrePaid时才可以修改,且仅当AutoRenew=true时生效。

NamePrefix

String

name-prefix

节点名称前缀。取值为空字符串时表示不启用节点命名前缀。前缀校验规则如下:

  • 支持英文大小写字母、数字和中划线(-)。
  • 只能以英文字母开头,英文字母或数字结尾。
  • 不能连续使用中划线(-)。
  • 长度限制为 2~51 个字符。

Tags

Array of Tag

节点对应 ECS 实例绑定的标签信息,用于搜索、管理 ECS 实例。

  • Tags 中各个 Key 不可重复。
  • 资源已有相同 Tags.Key 的情况下,重复绑定 Tags.Key 不会报错,会更新为最新的 Tags.Value
  • 单个资源最多支持绑定 20 个 ECS 实例标签。
  • Tags 中的 KeyValue 不允许在最前或最后输入空格。

HpcClusterIds

Array of String

["hpcCluster-yc2jlqcg7kb5oy******"]

高性能计算集群 ID。

  • GPU 计算型 规格修改为 高性能计算 GPU 型 规格的节点池时,需要指定高性能计算集群ID。在 云服务器控制台实例与镜像 > 高性能计算集群 页面获取 ID。

    注意

    • 当前仅支持传入一个高性能计算集群 ID。更多介绍,请参见 高性能计算集群概述
    • 请确保指定的高性能计算集群与 SubnetIds 中指定的子网同属一个可用区。
  • 高性能计算 GPU 型 规格修改为 GPU 计算型 规格的节点池时,需要传入空数组将已有的高性能计算集群 ID 置空。

ImageId

String

image-kdvapv****

节点对应的 ECS 实例使用的镜像 ID。
不同的镜像类型对应的镜像 ID 也不同,详细说明,请参见 镜像 ID 配置说明

NodeSecurityForUpdate

参数名参数类型是否必选示例值说明

SecurityGroupIds

Array of String

["sg-2byy13cnsczy****"]

节点网络所在的安全组 ID 列表。

调用私有网络的 DescribeSecurityGroups 接口,获取安全组 ID。单次最多填写 100 个安全组 ID。

注意

  • 必须与集群处于同一个私有网络内。
  • 取值为空时,默认使用 集群节点默认安全组(命名格式为<集群ID>-common)。默认安全组相关说明,请参见 安全组设置
  • 单个节点池最多支持关联 5 个安全组(含集群节点默认安全组)。

SecurityStrategies

Array of String

["Hids"]

节点的安全策略,取值:

  • 取值为空:表示节点不开启安全加固。
  • Hids:主机安全加固。
LoginObject NodeLogin节点的访问方式配置。

支持密码方式或密钥对方式。同时传入时,优先使用密钥对。

请求示例

POST /?Action=UpdateNodePoolConfig&Version=2022-05-12 HTTP/1.1
Content-Type:application/json
{
    "ClusterId": "cc5silumrsfeq****",
    "Id": "pc51i0m6rsfen****",
    "AutoScaling": {
        "DesiredReplicas": 1,
        "SubnetPolicy": "Priority"
    },
    "ClientToken": "BC028527-33B9-4990-A633-84E9F9******"
}

返回参数

返回示例

HTTP/1.1 200 OK
Content-Type:application/json
{
    "ResponseMetadata": {
        "RequestId": "021635330810134****",
        "Action": "UpdateNodePoolConfig",
        "Version": "2022-05-12",
        "Service": "vke",
        "Region": "cn-beijing"
    },
    "Result": {}
}

错误码

本接口错误码如下表所示,公共错误码请参见 公共错误码

HTTP状态码错误码错误信息描述
400OperationDenied.ClusterStatusThe action has been denied due to wrong cluster status {{statusPhase}} and [{{statusConditions}}].指定集群的当前状态不支持该操作。请确认该接口依赖的集群状态后重试。
400OperationDenied.NodePoolStatusThe action has been forbidden due to wrong node pool status {{statusPhase}} and [{{statusConditions}}].指定节点池的当前状态不支持该操作。请确认该接口依赖的节点池状态后重试。
400ClusterVpcMismatch.{{parameter}}The specified {{resourceType}} {{resourceId}} is not in the VPC of cluster.指定的子网、安全组或高性能计算集群与集群属于不同私有网络,请确保其与集群处于同一个私有网络内。
400Mismatch.ReplicasThe specified DesiredReplicas, MinReplicas and MaxReplicas are mismatched.指定节点的最小节点数、最大节点数、期望节点数逻辑不匹配。请确认参数后重试。
400QuotaExceeded.NodeThe number of nodes in the cluster has reached the limit.您当前集群所要创建的节点数量超出系统限额。您可以选择其他地域,也可以 提交工单 申请提高配额。
400LimitExceeded.NodeInClusterThe number of nodes exceeds the cluster defined pods config limit.Flannel 容器网络类型下,节点池设置的期望节点数超出了集群支持的最大节点数。容器服务各资源限制,请参见 使用限制

支持的最大节点数取决于 PodsConfig.FlannelConfig.PodCidrsMaxPodsPerNode。集群创建完成后不支持修改,请合理规划集群设置。

400

UpdateNotAllowed.{{parameter}}

The update to the specified parameter {{parameter}} is not allowed due to {{resourceType}}.

节点池不支持更新:

  • 当节点池为默认节点池时,NameAutoScalingNodeConfig 的部分属性不支持更新。
  • 当节点池为包年包月节点池时,AutoScaling.Enabled 属性不支持更新。
  • 当节点池为按量计费节点池时,NodeConfig.PeriodNodeConfig.AutoRenewNodeConfig.AutoRenewPeriod 等属性不支持更新。
400QuotaExceeded.{{ResourceType}}The quota of {{ResourceType}} has reached the limit.指定资源的配额达到上限,如 EIP、ECS、ECS Tag、EBS 等。请提升相关资源配额,或删除无用资源,预留出配额后重试。
400NotSupported.{{parameter}}The specified {{resourceType}} {{resourceContent}} is not supported.指定参数不支持,如 InstanceType、ImageId 等。请确认参数后重试。
400LimitExceeded.MaximumVolumesYou have reached the limit of the number of volumes that you can create.云盘数量超过了单台云服务器实例所能挂载的云盘数量。云服务器使用限制,请参见 约束限制
400LimitExceeded.DataVolumeSizeYou have reached the limit of the size of data volume that you can create.数据盘容量超过上限。云服务器使用限制,请参见 约束限制
400LimitExceeded.SystemVolumeSizeYou have reached the limit of the size of system volume that you can create.系统盘容量超过上限。云服务器使用限制,请参见 约束限制
400InstanceTypeMismatch.VolumeTypeThe specified VolumeType {{volumeType}} and InstanceType {{instanceType}} are mismatched.指定的实例规格族和云盘规格不匹配。请调用云服务的 DescribeInstanceTypes 接口获取云服务器实例规格与云盘规格的匹配关系,然后更新参数并重试。
400ZoneMismatch.InstanceTypeThe specified InstanceType {{instanceType}} and subnet zones are mismatched.子网所在的可用区不支持该实例规格。请调用云服务的 DescribeAvailableResource 接口获取各可用区支持的实例规格情况,然后更新参数并重试。
400OutOfRange.DataVolumesThere is no data volume for additional container storage enabling.启用了配置节点的第一块数据盘作为容器镜像和日志的存储目录(即AdditionalContainerStorageEnabled=true),但是 DataVolume 参数中并没有指定任何数据盘。请指定参数值后重试。
400ZoneMismatch.SubnetThe specified Subnet {{subnetId}} is not in the cluster defined zones.指定的子网所属的可用区不在集群支持的可用区内。请使用匹配集群可用区的子网。
400ZoneMismatch.HpcClusterThe specified HpcCluster {{hpcClusterID}} and subnet zones are mismatched.指定的高性能计算集群可用区与节点子网可用区不匹配。请确保两者可用区一致后重试。
400Insufficient.BalanceYour account has run out of balance.当前火山引擎账户余额不足。请充值账户后重试。
400InstanceTypeMismatch.ImageIdThe specified ImageId {{imageId}} and InstanceType {{instanceType}} are mismatched.指定的镜像 ID(ImageId)与 ECS 实例规格(InstanceTypeIds)不匹配。请根据参数说明,配置准确的参数值后重试。
400ClusterVersionMismatch.ImageIdThe specified ImageId {{imageId}} and KubernetesVersion {{kubernetesVersion}} are mismatched.指定的镜像 ID(ImageId)与 集群 Kubernetes 版本不匹配。请根据参数说明,配置准确的参数值后重试。
409Conflict.NameThe specified name conflicts with existing {{resourceType}}.指定地域存在同名节点池,请更新节点池名称后重试。