最近更新时间:2024.04.24 17:26:49
首次发布时间:2022.06.27 21:21:44
在指定集群下添加已有的云服务器(ECS)实例。
{Running, [*]}
,否则无法调用该接口添加已有节点。
说明
【邀测·申请试用】:自定义节点池中添加已有云服务器实例的能力目前处于邀测阶段,如需使用,请提交申请。
{Creating, [Progressing]}
状态,直到创建执行成功{Running, [Ok]}
。请调用 ListNodes 接口获取该节点当前的状态,查看节点是否创建成功。调用该 API 时的请求参数如下,除此之外还需传入公共请求参数。公共请求参数说明,请参见 公共参数。
参数名称 | 类型 | 是否必选 | 示例值 | 说明 |
---|---|---|---|---|
Action | String | 是 | CreateNodes | 公共参数,本接口值:CreateNodes。 |
Version | String | 是 | 2022-05-12 | 公共参数,本接口值:2022-05-12。 |
ClientToken | String | 否 | ed6b1190-dc17-11ec-9519-eb58a7****** | 用于保证请求幂等性的字符串。该字符串由调用方传入,需保证不同请求之间唯一。ClientToken 对大小写敏感,且最大值不超过 64 个 ASCII 字符。 |
ClusterId | String | 是 | cc5silumrsfeq**** | 集群的 ID。 注意 集群必须处于 |
NodePoolId | String | 否 | pc51i0m6rsfen**** | 节点池 ID。
|
InstanceIds | Array of String | 是 | ["i-ybo9229pdf****"] | 要添加到集群的云服务器实例 ID。 调用云服务器的 DescribeInstances 接口,获取云服务器实例 ID。该云服务器实例须满足以下条件:
注意 云服务器实例作为节点添加进集群实例的过程中,容器服务会重置云服务器实例的操作系统,该实例系统盘的历史数据会被清除。 |
KeepInstanceName | Boolean | 否 | false | 是否保留原云服务器实例名称,取值:
|
AdditionalContainerStorageEnabled | Boolean | 否 | false | 选择配置节点的数据盘并格式化挂载作为容器镜像和日志的存储目录,取值:
|
ContainerStoragePath | String | 否 | /dev/vdb | 使用该数据盘设备挂载容器和镜像存储目录 须满足以下条件,否则将初始化失败:
注意
|
ImageId | String | 否 | image-kdvapv**** | 节点对应的云服务器实例使用的镜像 ID。 注意 若不传该参数,容器服务将根据您所选的云服务器实例规格,默认分配与该规格对应的 veLinux-VKE 镜像 ID。 |
InitializeScript | String | 否 | ZWNoby****VzdCI= | 创建 ECS 节点并完成 Kubernetes 组件部署后执行的脚本。支持 Shell 格式,Base64 编码后长度不超过 1 KB。
|
KubernetesConfig | Object KubernetesConfigRequest | 否 | 节点 Kubernetes 相关配置。
|
POST /?Action=CreateNodes&Version=2022-05-12 HTTP/1.1 Content-Type:application/json { "ClusterId": "cc5silumrsfeq****", "InstanceIds": [ "i-ybo9229pdf****" ], "KeepInstanceName": false, "AdditionalContainerStorageEnabled": false, "ClientToken": "ed6b1190-dc17-11ec-9519-eb58a7******" }
本接口返回参数如下表所示,公共返回参数请参见 返回结果。
参数名称 | 类型 | 示例值 | 说明 |
---|---|---|---|
Ids | Array of String | ["nc5t5epmrsf****"] | 节点 ID 列表。 |
HTTP/1.1 200 OK Content-Type:application/json { "ResponseMetadata": { "RequestId": "021635330810134****", "Action": "CreateNodes", "Version": "2022-05-12", "Service": "vke", "Region": "cn-beijing" }, "Result": { "Ids": [ "nc5t5epmrsf****" ] } }
本接口错误码如下表所示,公共错误码请参见 公共错误码。
HTTP 状态码 | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | QuotaExceeded.Node | The number of nodes in the cluster has reached the limit. | 您当前集群所要创建的节点数量超出系统限额。您可以选择其他地域,也可以 提交工单 申请提高配额。 |
400 | OperationDenied.NodePoolStatus | The action has been forbidden due to wrong node pool status {{statusPhase}} and [{{statusConditions}}]. | 指定节点池的当前状态不支持该操作。请确认该接口依赖的节点池状态后重试。 |
400 | ClusterVpcMismatch.{{parameter}} | The specified {{resourceType}} {{resourceId}} is not in the VPC of cluster. | 指定的云服务器实例与集群不属于同一个私有网络,请确保两者属于同一私有网络内。 |
400 | LimitExceeded.NodeInCluster | The number of nodes exceeds the cluster defined pods config limit. | Flannel 容器网络类型下,当前集群节点数超出了集群支持的最大节点数。 支持的最大节点数取决于 PodsConfig.FlannelConfig.PodCidrs 和 MaxPodsPerNode。集群创建完成后不支持修改,请合理规划集群设置。 |
400 | AlreadyInUse.{{parameter}} | The specified {{resourceType}} {{resourceId}} has already been used in another cluster. | 指定的云服务器实例已加入其他集群,请更换其他实例,或者从其他集群中移除该实例后重试。 |
400 | OperationDenied.InstanceStatus | The operation has been denied due to the wrong status of the specified ECS instance {{instanceId}}. | 云服务器实例当前状态不支持该操作。请确认调用该接口时的云服务器实例状态要求后重试。 |
400 | ZoneMismatch.Instance | The specified ECS instance {{instanceId}} is not in the cluster defined zones. | 云服务器实例不在集群支持的可用区内。当前不支持修改集群可用区配置,请使用匹配集群可用区的云服务器实例。 |
400 | NotSupported.{{parameter}} | The specified {{resourceType}} {{resourceContent}} is not supported. | 指定参数不支持,如 InstanceType、ImageId 等。请确认参数后重试。 |
400 | OperationDenied.ClusterStatus | The action has been denied due to wrong cluster status {{statusPhase}} and [{{statusConditions}}]. | 指定集群的当前状态不支持该操作。请确认该接口依赖的集群状态后重试。 |
400 | ImageIdMismatch.InstanceId | The specified InstanceId {{instanceId}} and ImageId {{imageId}} are mismatched. | 指定的 ECS 实例 ID(InstanceIds)与镜像 ID(ImageId)不匹配。请根据参数说明,配置准确的参数值后重试。 |
400 | ClusterVersionMismatch.ImageId | The specified ImageId {{imageId}} and KubernetesVersion {{kubernetesVersion}} are mismatched. | 指定的镜像 ID(ImageId)与 集群 Kubernetes 版本不匹配。请根据参数说明,配置准确的参数值后重试。 |
400 | NodePoolConfigMismatch.InstanceId | The specified InstanceId {{instanceId}} and nodePool Config {{content}} are mismatched. | 指定的 ECS 实例(InstanceIds)与目标节点池(NodePoolId)的配置不匹配。包括节点池对应的 ECS 实例规格 ID、子网 ID、ECS 实例计费类型、系统盘、数据盘、节点池所属项目等。请确认待添加的 ECS 实例与目标节点池的配置信息后重试。 |
400 | OperationDenied.NodePoolAutoScalingEnabled | The operation has been denied because nodePool AutoScaling is enabled. | 目标节点池已开启弹性伸缩功能,不支持添加已有 ECS 实例到该节点池。请关闭节点池的弹性伸缩功能或更换节点池后重试。 |
400 | OperationDenied.InstanceEniNumber | The operation has been denied because the InstanceId {{instanceId}} has more than one eni. | 指定的 ECS 实例有一张以上网卡(即有辅助网卡),因此不支持添加该实例到节点池。请解绑节点池的辅助网卡或更换 ECS 实例后重试。 |
400 | OperationDenied.NodePoolReplicas | The operation has been denied due to the node pool replicas limit. | 添加节点超过了节点池最大节点数上限。请减少要添加的云服务器实例 ID 数量后重试。 |
404 | NotFound.DefaultNodePool | The default node pool is not found. | 默认节点池不存在,请先在控制台创建默认节点池。 创建默认节点池的方法,请参见 添加已有节点。 |
409 | AlreadyExists.{{parameter}} | The specified {{resourceType}} {{resourceId}} has already been included. | 指定的云服务器实例已加入默认节点池。 |