调用ModifyClusterNodePool更新节点配置。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求语法

PUT /clusters/ClusterId/nodepools/NodepoolId HTTP/1.1 
Content-Type:application/json
{
  "auto_scaling" : {
    "eip_bandwidth" : Long,
    "eip_internet_charge_type" : "String",
    "enable" : Boolean,
    "is_bond_eip" : Boolean,
    "max_instances" : Long,
    "min_instances" : Long,
    "type" : "String"
  },
  "kubernetes_config" : {
    "cms_enabled" : Boolean,
    "cpu_policy" : "String",
    "labels" : [ {
      "key" : "String",
      "value" : "String"
    } ],
    "runtime" : "String",
    "runtime_version" : "String",
    "taints" : [ {
      "key" : "String",
      "value" : "String",
      "effect" : "String"
    } ],
    "user_data" : "String"
  },
  "nodepool_info" : {
    "name" : "String",
    "resource_group_id" : "String"
  },
  "scaling_group" : {
    "data_disks" : [ {
      "category" : "String",
      "size" : Long,
      "encrypted" : "String",
      "auto_snapshot_policy_id" : "String"
    } ],
    "instance_charge_type" : "String",
    "period" : Long,
    "period_unit" : "String",
    "auto_renew" : Boolean,
    "auto_renew_period" : Long,
    "platform" : "String",
    "image_id" : "String",
    "spot_strategy" : "String",
    "spot_price_limit" : [ {
      "instance_type" : "String",
      "price_limit" : "String"
    } ],
    "instance_types" : [ "String" ],
    "key_pair" : "String",
    "login_password" : "String",
    "rds_instances" : [ "String" ],
    "scaling_policy" : "String",
    "system_disk_category" : "String",
    "system_disk_size" : Long,
    "tags" : [ {
      "key" : "String",
      "value" : "String"
    } ],
    "vswitch_ids" : [ "String" ],
    "multi_az_policy" : "String",
    "on_demand_base_capacity" : Long,
    "on_demand_percentage_above_base_capacity" : Long,
    "spot_instance_pools" : Long,
    "spot_instance_remedy" : Boolean,
    "compensate_with_on_demand" : Boolean
  },
  "tee_config" : {
    "tee_enable" : Boolean
  },
  "management" : {
    "enable" : Boolean,
    "auto_repair" : Boolean,
    "upgrade_config" : {
      "auto_upgrade" : Boolean,
      "surge" : Long,
      "surge_percentage" : Long,
      "max_unavailable" : Long
    }
  },
  "update_nodes" : Boolean
}

请求参数

表 1. 请求Path参数
参数名称 类型 是否必选 示例 说明
ClusterId String c23421cfa74454bc8b37163fd19af****

集群ID。

NodepoolId String p31da1b38983f4511b490fc62108a****

节点池ID。

表 2. 请求Body参数
参数名称 类型 是否必选 示例 说明
auto_scaling Object

自动伸缩配置。

eip_bandwidth Long 5

EIP带宽峰值。

eip_internet_charge_type String PayByBandwidth

EIP计费类型,取值:

  • PayByBandwidth:按固定带宽计费。
  • PayByTraffic:按使用流量计费。

默认值:PayByBandwidth

enable Boolean true

是否启用自动伸缩,取值:

  • true:开启节点池自动伸缩功能。
  • false:不开启自动伸缩,当取值为false时,auto_scaling内的其他配置参数将不生效。

默认值:false

is_bond_eip Boolean true

是否绑定EIP,取值:

  • true:绑定EIP。
  • false:不绑定EIP。

默认值:false

max_instances Long 10

最大实例数。

min_instances Long 2

最小实例数。

type String cpu

自动伸缩类型,按照自动伸缩实例类型划分。取值:

  • cpu:普通实例型。
  • gpu:GPU实例型。
  • gpushare:GPU共享型。
  • spot:抢占式实例型。

默认值:cpu

kubernetes_config Object

集群相关配置。

cms_enabled Boolean true

是否在ECS节点上安装云监控,安装后可以在云监控控制台查看所创建ECS实例的监控信息,推荐开启。取值:

  • true:在ECS节点上安装云监控。
  • false:不在ECS节点上安装云监控。

默认值:false

cpu_policy String none

节点CPU管理策略。当集群版本在1.12.6及以上时支持以下两种策略:

  • static:允许为节点上具有某些资源特征Pod增强其CPU亲和性和独占性。
  • none:表示启用现有的默认CPU亲和性方案。

默认值:none

labels Array of tag

节点标签,为Kubernetes集群节点添加标签。标签定义规则:

  • 标签由区分大小写的键值对组成,您最多可以设置20个标签。
  • 标签键不可以重复,最长为64个字符;标签值可以为空,最长为128个字符。标签键和标签值都不能以aliyunacs:https://http://开头。更多信息,请参见Labels and Selectors
runtime String docker

容器运行时名称。

runtime_version String 19.03.5

容器运行时版本。

taints Array of taint

节点污点配置。

user_data String IyEvdXNyL2Jpbi9iYXNoCmVjaG8gIkhlbGxvIEFDSyEi

节点池自定义数据。更多信息,请参见生成实例自定义数据

nodepool_info Object

节点池配置。

name String default-nodepool

节点池名称。

命名规则:由数字、汉字、英文字符或短划线(-)组成,长度范围1~63个字符,且不能以短划线(-)开头。

resource_group_id String rg-acfmyvw3wjm****

资源组ID。

scaling_group Object

扩容组配置。

data_disks Array of data_disk

节点数据盘配置,取值范围[0,10]。最多支持添加10块数据盘。

instance_charge_type String PostPaid

节点池节点付费类型,取值:

  • PrePaid:预付费
  • PostPaid:按量付费

默认值:PostPaid

period Long 1

节点包年包月时长,当instance_charge_type取值为PrePaid时才生效且为必选值。

PeriodUnit=Month时,取值范围:{1, 2 , 3, 6, 12, 24, 36, 48, 60}。

period_unit String Month

节点付费周期,当instance_charge_type取值为PrePaid时时候需要指定周期。

目前只支持以月为计时单位。

默认值:Month

auto_renew Boolean true

节点是否开启自动续费,当instance_charge_type取值为PrePaid时才生效。取值:

  • true:自动续费。
  • false:不自动续费。

默认值:true

auto_renew_period Long 1

节点自动续费周期。当instance_charge_type取值为PrePaid时才生效,且为必选值。

PeriodUnit=Month时,取值范围:{1, 2 , 3, 6, 12}。

platform String AliyunLinux

操作系统平台。取值:

  • AliyunLinux
  • CentOS
  • Windows
  • WindowsCore
image_id String aliyun_2_1903_x64_20G_alibase_20200904.vhd

自定义镜像ID。可通过DescribeKubernetesVersionMetadata查询系统支持的镜像,默认使用系统最新镜像。

spot_strategy String SpotWithPriceLimit

抢占式实例类型,取值:

  • NoSpot:非抢占式实例。
  • SpotWithPriceLimit:设置抢占实例价格上限。
  • SpotAsPriceGo:系统自动出价,跟随当前市场实际价格。

更多信息,请参见抢占式实例

spot_price_limit Array

抢占实例市场价格区间配置。

instance_type String ecs.c6.large

抢占式实例规格。

price_limit String 0.39

单台实例上限价格,单位:元/小时。

instance_types Array of String ecs.c6.large

实例规格。更多信息,请参见实例规格族

key_pair String pro-nodepool

密钥对名称,和login_password二选一。当节点池为托管版节点池时,只支持key_pair

login_password String Hello1234

SSH登录密码,和key_pair二选一。密码规则为8~30个字符,且至少同时包含三项(大小写字母、数字和特殊符号)。

rds_instances Array of String rds-xxx

RDS实例ID。如果指定了RDS实例列表,集群节点ECS会自动加入RDS访问白名单。

scaling_policy String release

伸缩组模式,取值:

  • release:标准模式,根据申请资源值的使用量,通过创建、释放ECS的方式进行伸缩。
  • recycle:极速模式,通过创建、停机、启动的方式进行伸缩,提高再次伸缩的速度(停机时计算资源不收费,只收取存储费用,本地盘机型除外)。
system_disk_category String cloud_efficiency

节点系统盘类型,取值:

  • cloud_efficiency:高效云盘。
  • cloud_ssd:SSD云盘。

默认值:cloud_ssd

system_disk_size Long 120

节点系统盘大小,单位为GiB。

取值范围:[20,500]。

该参数的取值必须大于或者等于max{20, ImageSize}。

默认值:max{40, 参数ImageId对应的镜像大小}。

tags Array of tag

仅为ECS实例添加标签。

标签键不可以重复,最大长度为128个字符;标签键和标签值都不能以“aliyun”、“acs:”开头,或包含“https://”、“http://”。

vswitch_ids Array of String vsw-wz9uwxhawmtzg7u9h****

虚拟交换机ID。

multi_az_policy String BALANCE

多可用区伸缩组ECS实例扩缩容策略。取值:

  • PRIORITY:根据您定义的虚拟交换机(VSwitchIds.N)扩缩容。当优先级较高的虚拟交换机所在可用区无法创建ECS实例时,自动使用下一优先级的虚拟交换机创建ECS实例。
  • COST_OPTIMIZED:按vCPU单价从低到高进行尝试创建。当伸缩配置设置了抢占式计费方式的多实例规格时,优先创建对应抢占式实例。您可以继续通过CompensateWithOnDemand参数指定当抢占式实例由于库存等原因无法创建时,是否自动尝试以按量付费的方式创建。
    说明 COST_OPTIMIZED仅在伸缩配置设置了多实例规格或者选用了抢占式实例的情况下生效。
  • BALANCE:在伸缩组指定的多可用区之间均匀分配ECS实例。如果由于库存不足等原因可用区之间变得不平衡,您可以通过API RebalanceInstance平衡资源。更多信息,请参见RebalanceInstance

默认值:PRIORITY

on_demand_base_capacity Long 0

伸缩组所需要按量实例个数的最小值,取值范围:[0,1000]。当按量实例个数少于该值时,将优先创建按量实例。

on_demand_percentage_above_base_capacity Long 20

伸缩组满足最小按量实例数(on_demand_base_capacity)要求后,超出的实例中按量实例应占的比例。取值范围:[0,100]。

spot_instance_pools Long 5

指定可用实例规格的个数,伸缩组将按成本最低的多个规格均衡创建抢占式实例。取值范围:[1,10]。

spot_instance_remedy Boolean false

是否开启补齐抢占式实例。开启后,当收到抢占式实例将被回收的系统消息时,伸缩组将尝试创建新的实例,替换掉将被回收的抢占式实例。取值:

  • true:开启补齐抢占式实例。
  • false:不开启补齐抢占式实例。
compensate_with_on_demand Boolean true

multi_az_policy取值为COST_OPTIMIZED时,如果因价格、库存等原因无法创建足够的抢占式实例,是否允许自动尝试创建按量实例满足ECS实例数量要求。取值:

  • true:允许自动尝试创建按量实例满足ECS实例数量要求。
  • false:不允许自动尝试创建按量实例满足ECS实例数量要求。
tee_config Object

加密计算集群配置。

tee_enable Boolean false

是否开启加密计算集群,取值:。

  • true:开启。
  • false:不开启。

默认值:false

management Object

托管节点池配置。

enable Boolean true

是否开启托管节点池,取值:

  • true:开启托管节点池。
  • false:不开启托管节点池,只有当enble=true时,其他相关配置才生效。

默认值:false

auto_repair Boolean true

是否自动修复,仅当enble=true时生效。取值:

  • true:自动修复。
  • false:不自动修复。

默认值:true

upgrade_config Object

自动升级配置,仅当enble=true时生效。

auto_upgrade Boolean true

是否启用自动升级:

  • true:启用。
  • false:不启用。

默认值:true

surge Long 5

额外节点数量。升级的时候节点会不可用,您可以创建额外节点补偿集群的负载。

说明 建议创建的额外节点不超过当前的节点数。
surge_percentage Long 0

额外节点比例,和surge二选一。

max_unavailable Long 1

最大不可用节点数量。

取值范围:[1,1000]

默认值:1。

update_nodes Boolean true

同步更新节点标签及污点。

响应体语法

HTTP/1.1 200
Content-Type:application/json
{
  "task_id" : "String",
  "nodepool_id" : "String"
}

响应参数

表 3. 响应Body参数
参数名称 类型 示例 说明
task_id String T-5fd211e924e1d00787000293

任务ID。

nodepool_id String np737c3ac1ac684703b9e10673aa2c****

节点池ID。

修改节点池配置示例

请求示例

PUT /clusters/c23421cfa74454bc8b37163fd19af****/nodepools/p31da1b38983f4511b490fc62108a**** HTTP/1.1 
Content-Type:application/json
{
  "auto_scaling" : {
    "eip_bandwidth" : 5,
    "eip_internet_charge_type" : "PayByBandwidth",
    "enable" : true,
    "is_bond_eip" : true,
    "max_instances" : 10,
    "min_instances" : 2,
    "type" : "cpu"
  },
  "kubernetes_config" : {
    "cms_enabled" : true,
    "cpu_policy" : "none",
    "labels" : [ {
      "key" : "env",
      "value" : "prod"
    } ],
    "runtime" : "docker",
    "runtime_version" : "19.03.5",
    "taints" : [ {
      "key" : "key",
      "value" : "value",
      "effect" : "NoSchedule"
    } ],
    "user_data" : "IyEvdXNyL2Jpbi9iYXNoCmVjaG8gIkhlbGxvIEFDSyEi"
  },
  "nodepool_info" : {
    "name" : "default-nodepool",
    "resource_group_id" : "rg-acfmyvw3wjm****"
  },
  "scaling_group" : {
    "data_disks" : [ {
      "category" : "cloud_ssd",
      "size" : 40,
      "encrypted" : "true",
      "auto_snapshot_policy_id" : "sp-2zej1nogjvovnz4z****"
    } ],
    "instance_charge_type" : "PostPaid",
    "period" : 1,
    "period_unit" : "Month",
    "auto_renew" : true,
    "auto_renew_period" : 1,
    "platform" : "AliyunLinux",
    "image_id" : "aliyun_2_1903_x64_20G_alibase_20200904.vhd",
    "spot_strategy" : "SpotWithPriceLimit",
    "spot_price_limit" : [ {
      "instance_type" : "ecs.c6.large",
      "price_limit" : "0.39"
    } ],
    "instance_types" : [ "ecs.c6.large" ],
    "key_pair" : "pro-nodepool",
    "login_password" : "Hello1234",
    "rds_instances" : [ "rds-xxx" ],
    "scaling_policy" : "release",
    "system_disk_category" : "cloud_efficiency",
    "system_disk_size" : 120,
    "tags" : [ {
      "key" : "env",
      "value" : "prod"
    } ],
    "vswitch_ids" : [ "vsw-wz9uwxhawmtzg7u9h****" ],
    "multi_az_policy" : "BALANCE",
    "on_demand_base_capacity" : 0,
    "on_demand_percentage_above_base_capacity" : 20,
    "spot_instance_pools" : 5,
    "spot_instance_remedy" : false,
    "compensate_with_on_demand" : true
  },
  "tee_config" : {
    "tee_enable" : false
  },
  "management" : {
    "enable" : true,
    "auto_repair" : true,
    "upgrade_config" : {
      "auto_upgrade" : true,
      "surge" : 5,
      "surge_percentage" : 0,
      "max_unavailable" : 1
    }
  },
  "update_nodes" : true
}

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<task_id>T-5fd211e924e1d00787000293</task_id>
<nodepool_id>np737c3ac1ac684703b9e10673aa2c****</nodepool_id>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "task_id" : "T-5fd211e924e1d00787000293",
  "nodepool_id" : "np737c3ac1ac684703b9e10673aa2c****"
}

错误码

访问错误中心查看更多错误码。

开发者资源

  • SDK

    阿里云为您提供多种语言的SDK,帮助您快速通过API集成阿里云的产品和服务,推荐您使用SDK调用API,已免除您手动签名验证,详情请参见SDK参考文档链接。

  • OpenAPI Explorer

    快速检索,可视化调试API,在线命令行工具,同步动态生成可执行的SDK代码示例。

  • 阿里云CLI

    阿里云资产管理和配置工具,可通过命令方式同时管理多个阿里云产品和服务,简单快捷,是您上云好帮手。