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

CreateDefaultNodePool

最近更新时间2023.10.23 12:01:36

首次发布时间2022.08.22 10:09:48

在指定集群下创建默认节点池。

使用说明

  • 除标准的自定义节点池外,容器服务支持 默认节点池(固定名称vke-default-nodepool)能力,用来纳管已有云服务器(ECS)实例。创建默认节点池后,通过调用 CreateNodes 接口为默认节点池添加已有 ECS 实例。
  • 调用该接口前,请调用 ListSupportedResourceTypes 接口,确认创建默认节点池时需要用到的资源是否在指定的地域和可用区中支持。
  • 此接口为异步接口,当此接口返回成功时,会返回默认节点池的 ID 信息,此时节点池将进入{Creating, [Progressing]}状态,直到创建执行成功。请调用 ListNodePools 接口获取该节点池当前的状态,查看节点池是否创建成功。
  • 默认节点池不会占用您的节点池配额。配额详情,请参见 使用限制

请求参数

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

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

ClusterId

String

cc5silumrsfeq******

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

注意

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

KubernetesConfigObject KubernetesConfigRequest默认节点池 Kubernetes 配置。
NodeConfigObject DefaultNodePoolNodeConfigRequest默认节点池中云服务器(ECS)实例配置。

Tags

Array of Tag

默认节点池标签信息,用于从不同维度对具有相同特征的节点池进行分类、搜索和聚合,能够灵活管理节点池。

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

DefaultNodePoolNodeConfigRequest

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

InitializeScript

String

ZWNobyAidG******

创建并初始化节点后执行的自定义脚本。
支持 Shell 格式,Base64 编码后长度不超过 1 KB。

SecurityObject NodeSecurityRequest节点安全配置。

NamePrefix

String

name-prefix

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

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

Tags

Array of Tag

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

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

请求示例

POST /?Action=CreateDefaultNodePool&Version=2022-05-12 HTTP/1.1
Content-Type:application/json
{
    "ClusterId": "cc5silumrsfeq****",
    "KubernetesConfig": {
        "Labels": [
            {
                "Key": "label-key",
                "Value": "label-value"
            }
        ],
        "Taints": [
            {
                "Key": "taint-key",
                "Value": "taint-value",
                "Effect": "NoSchedule"
            }
        ],
        "Cordon": false
    },
    "NodeConfig": {
        "InitializeScript": "ZWNobyAidG******",
        "Security": {
            "SecurityGroupIds": ["sg-2byy13cnsc******"],
            "SecurityStrategies": ["Hids"],
            "Login": {
                "Password": "UHdkM******"
            }
        },
        "NamePrefix": "name-prefix",
        "Tags":[
            {
                "Key":"key",
                "Value":"value"
            }
        ]
    },
    "Tags":[
        {
            "Key":"key",
            "Value":"value"
        }
    ],
    "ClientToken": "BC028527-33B9-4990-A633-84E9F9******",
}

返回参数

参数名称类型示例值描述
IdStringpc51i0m6rsf******默认节点池 ID。

返回示例

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

错误码

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

HTTP状态码错误码错误信息描述
400ClusterVpcMismatch.{{parameter}}The specified {{resourceType}} {{resourceId}} is not in the VPC of cluster.指定的子网或安全组与集群属于不同私有网络,请确保其与集群处于同一个私有网络内。
400OperationDenied.ClusterStatusThe action has been denied due to wrong cluster status {{statusPhase}} and [{{statusConditions}}].指定集群的当前状态不支持该操作。请确认该接口依赖的集群状态后重试。
400QuotaExceeded.{{ResourceType}}The quota of {{ResourceType}} has reached the limit.指定资源的配额达到上限,如 Tag、ECS Tag 等。请提升相关资源配额,或删除无用资源,预留出配额后重试。
409AlreadyExists.DefaultNodePoolThe default node pool already exists.默认节点池已存在,无需创建。