容器服务
参数 | 类型 | 是否必选 | 示例值 | 描述 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
Action | String | 是 | CreateNodes | 接口名称。当前 API 的名称为 CreateNodes。 |
Version | String | 是 | 2022-05-12 | 接口版本。当前 API 的版本为 2022-05-12。 |
ClientToken | String | 否 | ed6b1190-dc17-11ec-9519-eb58a7****** | 用于保证请求幂等性的字符串。该字符串由调用方传入,需保证不同请求之间唯一。ClientToken 对大小写敏感,且最大值不超过 64 个 ASCII 字符。 |
ClusterId | String | 是 | cc5sil****** | 集群的 ID。 注意 |
NodePoolId | String | 否 | pjklj****** | 节点池 ID。
注意 若此处填写 自定义节点池 ID,则待添加的节点将应用自定义节点池上的 Kubernetes 配置和节点配置(包括 ECS 实例标签、标签、污点、封锁节点配置、项目、节点名称前缀等),因此 InitializeScript、KubernetesConfig、ImageId 参数配置将无效,上述参数仅在默认节点池中添加已有节点时有效。 |
InstanceIds | Array of String | 是 | ["i-ybo9229pdf****","i-ybo9229pdf****"] | 要添加到集群的 ECS 实例 ID。单次调用最多支持填写 100 个 ECS 实例 ID。
注意 若将 ECS 实例添加到自定义节点池,请注意以下事项:
|
KeepInstanceName | Boolean | 否 | false | 是否保留原 ECS 实例名称,取值:
|
AdditionalContainerStorageEnabled | Boolean | 否 | false | 选择配置节点的数据盘并格式化挂载作为容器镜像和日志的存储目录,取值:
|
ContainerStoragePath | String | 否 | /dev/vdb | 使用该数据盘设备挂载容器和镜像存储目录/var/lib/containerd。 仅当AdditionalContainerStorageEnabled=true时有效,且不能为空。 须满足以下条件,否则将初始化失败:
注意
|
ImageId | String | 否 | image-k******* | 节点对应的 ECS 实例使用的镜像 ID。 注意 若不传该参数,优先分配 veLinux 2.0 系列的镜像 ID。 |
InitializeScript | String | 否 | ZWNo****** | 创建 ECS 节点并完成 Kubernetes 组件部署后执行的脚本。输入Base64 编码后的 Shell 格式脚本。
说明 Base64 编码后长度不超过 8 KB。若同时传入 InitializeScript 和 PreScript,则两个参数的传入值总长度也不能超过 8 KB。 |
KubernetesConfig | 否 | - | 节点 Kubernetes 相关配置。
| |
SkipReplaceSystem | Boolean | 否 | true | 添加已有节点时是否跳过重置系统:
注意 若需要跳过重置系统(取值为true),请确保:
|
PreScript | String | 否 | ZWNoby****** | 说明
|
GpuDriverVersion | String | 否 | 550.127.05 | 【该参数已废弃,请使用 GpuDriverConfig 代替】指定在节点上安装的 GPU 驱动版本。 |
GpuDriverConfig | 否 | - | 节点 GPU 驱动配置。该配置的优先级高于GpuDriverVersion字段。 说明
| |
ContainerStorageMountPoint | String | 否 | /mnt/vdb | 数据盘设备格式化后的目标挂载目录,配合ContainerStoragePath使用,不填时挂载到默认目录。仅当AdditionalContainerStorageEnabled=true时有效。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
Cordon | Boolean | 否 | false | 封锁节点配置,取值:
说明 更新节点池(UpdateNodePoolConfig)时,若不传入参数值,则保持原有参数配置。 |
Labels | 否 | - | 节点池/节点的 Kubernetes 标签(Labels)信息。最多可传入 20 个标签。 说明 节点池会统一管理节点的标签配置信息,因此标签信息会同步到节点池内的所有节点上。当标签发生变更时,会覆盖原有的标签配置信息。 | |
Taints | 否 | - | 节点池/节点的 Kubernetes 污点(Taints)信息。最多可传入 20 个污点。 说明 节点池会统一管理节点的污点配置信息,因此污点信息会同步到节点池内的所有节点上。当污点发生变更时,会覆盖原有的污点配置信息。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
Key | String | 是 | label-key | 有效的标签键有两个段:<前缀>和<名称>,用斜杠(/)分隔。
|
Value | String | 否 | label-value |
|
参数 | 类型 | 是否必选 | 示例值 | 描述 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
Key | String | 是 | taint-key | 有效的污点键有两个段:前缀和名称,用斜杠(/)分隔。
|
Value | String | 否 | taint-value | |
Effect | String | 否 | NoSchedule | 污点效果,取值:
|
参数 | 类型 | 是否必选 | 示例值 | 描述 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
GpuDriverVersion | String | 否 | 580.105.08 | 指定节点安装的 GPU 驱动版本号。
|
InstallGpuDriver | Boolean | 否 | true | 当 ECS 实例为 GPU 机型,且使用公共基础镜像(例如 veLinux 1.0、Ubuntu 22.04)时,是否自动安装 GPU 驱动。取值:
说明
|
参数 | 类型 | 示例值 | 描述 |
参数 | 类型 | 示例值 | 描述 |
Ids | Array of String | ["nc5t5epmrsf****"] | 节点 ID 列表。 |
HTTP 状态码 | 错误码 | 错误信息 | 说明 |
HTTP 状态码 | 错误码 | 错误信息 | 说明 |
400 | QuotaExceeded.Node | The number of nodes in the cluster has reached the limit. | |
400 | OperationDenied.ClusterStatus | The action is forbidden due to cluster status {{statusPhase}} and {{statusConditions}}. | 指定集群的当前状态不支持该操作。请确认该接口依赖的集群状态后重试。 |
400 | OperationDenied.NodePoolStatus | The action is forbidden on node pool {{nodePoolId}} due to 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. | 支持的最大节点数取决于 PodsConfig.FlannelConfig.PodCidrs 和 MaxPodsPerNode。集群创建完成后不支持修改,请合理规划集群设置。 |
400 | AlreadyInUse.{{parameter}} | The specified {{resourceType}} {{resourceId}} has already been used in another cluster. | 指定的 ECS 实例已加入其他集群,请更换其他实例,或者从其他集群中移除该实例后重试。 |
400 | OperationDenied.InstanceStatus | The operation has been denied due to the wrong status of the specified ECS instance {{instanceId}}. | ECS 实例当前状态不支持该操作。请确认调用该接口时的云服务器实例状态要求后重试。 |
400 | ZoneMismatch.Instance | The specified ECS instance {{instanceId}} is not in the cluster defined zones. | vpc-cni集群下,添加的instance所在可用区不在集群所选pod子网对应的可用区范围内。 |
400 | NotSupported.{{parameter}} | The specified {{resourceType}} {{resourceContent}} is not supported. | 指定参数不支持,如 InstanceType、ImageId 等。请确认参数后重试。 |
400 | ClusterVersionMismatch.ImageId | The specified ImageId {{imageId}} and KubernetesVersion {{kubernetesVersion}} are mismatched. | 指定的镜像 ID(ImageId)与 集群 Kubernetes 版本不匹配。请根据参数说明,配置准确的参数值后重试。 |
400 | ImageIdMismatch.InstanceId | The specified InstanceId {{instanceId}} and ImageId {{imageId}} are mismatched. | 指定的 ECS 实例 ID(InstanceIds)与镜像 ID(ImageId)不匹配。请根据参数说明,配置准确的参数值后重试。 |
400 | OperationDenied.NodePoolReplicas | The operation has been denied due to the node pool min/max replicas limit. | 添加节点超过了节点池最大节点数上限。请减少要添加的云服务器实例 ID 数量后重试。 |
400 | AlreadyInScalingGroup.{{parameter}} | The specified InstanceId {{instanceId}} has already been used in another scaling group. | 指定的实例已被其他伸缩组使用,无法添加到节点池。 |
400 | NodePoolConfigMismatch.InstanceId | The specified InstanceId {{instanceId}} and nodePool Config {{content}} are mismatched. | 指定的 ECS 实例(InstanceIds)与目标节点池(NodePoolId)的配置不匹配。包括节点池对应的系统盘、数据盘、节点池所属项目等。请确认待添加的 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 | ImageSizeMismatch.SystemVolumeSize | The specified system volume size and image size are mismatched. | 指定的系统盘大小和镜像大小不匹配,系统盘需要比镜像大 10 GiB 以上。请根据参数说明,配置准确的参数值后重试。 |
404 | NotFound.DefaultNodePool | The default node pool is not found. | 默认节点池不存在,请先在控制台创建默认节点池。 |
409 | AlreadyExists.{{parameter}} | The specified {{resourceType}} {{resourceId}} already exists. | 指定的云服务器实例已加入默认节点池。 |
400 | AffinityGroupMismatch.InstanceIds | The specified InstanceIds and AffinityGroup {{AffinityGroupId}} are mismatched. | 指定的 ECS 实例与亲和组不匹配。亲和组节点池中的节点数量必须是亲和组规格整数倍。请查看您指定的节点池和节点并确认相关参数说明后重试。 |
400 | OperationDenied.CloudAssistantStatus | The operation has been denied due to the cloud assistant wrong status of the specified ECS instance {{instanceId}}. | ECS 实例的云助手 Agent 不在期望的状态,无法加入到集群中。请确认参数后重试。 |
400 | LimitExceeded.ScriptLength | The InitializeScript and PreScript total length exceeds maximum allowed length. | 前置脚本与后置脚本总长度超出限制。请根据参数说明,配置准确的参数值后重试。 |