文档首页/ AI开发平台ModelArts/ API参考/ 节点池管理/ 创建节点池 - CreateNodePool
更新时间:2026-01-08 GMT+08:00
分享

创建节点池 - CreateNodePool

功能介绍

创建节点池接口用于创建新的节点池。该接口适用于以下场景:当需要扩展计算资源、优化资源分配或部署新的服务时,用户可通过此接口创建指定配置的节点池。使用该接口的前提条件是用户具有管理员权限且节点池的配置参数(如节点数量、规格、网络配置等)已正确设置。创建操作完成后,节点池将被成功创建并处于可用状态,相关节点信息将被记录。若用户无权限操作、配置参数错误或系统资源不足,接口将返回相应的错误信息。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。

  • 如果使用角色与策略授权,具体权限要求请参见权限和授权项
  • 如果使用身份策略授权,当前API调用无需身份策略权限。

URI

POST /v2/{project_id}/pools/{pool_name}/nodepools

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:用户项目ID。获取方法请参见获取项目ID和名称

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

pool_name

String

参数解释:资源池名称。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

apiVersion

String

参数解释:API版本。

取值范围:可选值如下:

  • v2

kind

String

参数解释:节点池类型。

取值范围:可选值如下:

  • NodePool:节点池

metadata

CreateNodePoolMetaVO object

参数解释:节点池的metadata信息。

spec

NodePoolSpec object

参数解释:节点池的期望信息。

表3 CreateNodePoolMetaVO

参数

是否必选

参数类型

描述

name

String

参数解释:节点池名称。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

annotations

CreateNodePoolAnnotations object

参数解释:节点池的注释信息。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表4 CreateNodePoolAnnotations

参数

是否必选

参数类型

描述

os.modelarts/billing.mode

String

参数解释:计费模式。

约束限制:不涉及。

取值范围:可选值如下:

  • 0:按需计费

  • 1:包周期计费

默认取值:不涉及。

os.modelarts/period.num

String

参数解释:包周期订购周期,比如2。当计费模式为包周期时该参数必传。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

os.modelarts/period.type

String

参数解释:包周期订购类型。当计费模式为包周期时该参数必传

约束限制:不涉及。

取值范围:可选值如下:

  • 2:月

  • 3:年

  • 4:小时

默认取值:不涉及。

os.modelarts/auto.renew

String

参数解释:是否自动续费。

约束限制:不涉及。

取值范围:可选值如下:

  • 0:不自动续费

  • 1:自动续费

默认取值:0。

os.modelarts/promotion.info

String

参数解释:用户在运营平台选择的折扣信息。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

os.modelarts/service.console.url

String

参数解释:订购订单支付完成后跳转的url地址。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

os.modelarts/order.id

String

参数解释:订单id,包周期资源创建或者计费模式变更的时候该参数必需。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表5 NodePoolSpec

参数

是否必选

参数类型

描述

resources

PoolResource object

参数解释: 节点池中的资源信息列表,包括资源规格和相应规格的资源数量,自定义配置等。

取值范围: 不涉及。

表6 PoolResource

参数

是否必选

参数类型

描述

flavor

String

参数解释:资源规格名称,比如:modelarts.vm.gpu.t4u8。

取值范围:不涉及。

count

Integer

参数解释:规格保障使用量。

取值范围:不涉及。

maxCount

Integer

参数解释:资源规格的弹性使用量,物理池该值和count相同。

取值范围:不涉及。

azs

Array of PoolNodeAz objects

参数解释:资源池中节点的AZ信息。

nodePool

String

参数解释:节点池名称。比如:nodePool-1。

取值范围:不涉及。

taints

Array of Taints objects

参数解释:支持给创建出来的节点加taints来设置反亲和性,非特权池不能指定。

labels

Map<String,String>

参数解释:k8s标签,格式为key/value键值对。

tags

Array of UserTags objects

参数解释:资源标签,非特权池不能指定。

network

NodeNetwork object

参数解释:网络配置,非特权池不能指定。

extendParams

ResourceExtendParams object

参数解释:自定义配置。

creatingStep

CreatingStep object

参数解释:批量创建信息。

rootVolume

RootVolume object

参数解释:自定义系统盘(云硬盘)信息。

dataVolumes

Array of DataVolumeItem objects

参数解释:自定义数据盘(云硬盘)列表信息。

volumeGroupConfigs

Array of VolumeGroupConfig objects

参数解释:磁盘高级配置。存在自定义数据盘时必须指定对应的高级配置。

os

Os object

参数解释:操作系统镜像信息。

表7 PoolNodeAz

参数

是否必选

参数类型

描述

az

String

参数解释:可用区名称。

取值范围:不涉及。

count

Integer

参数解释:可用区资源实例的数量。

取值范围:不涉及。

表8 Taints

参数

是否必选

参数类型

描述

key

String

参数解释:键。

取值范围:不涉及。

value

String

参数解释:值。

取值范围:不涉及。

effect

String

参数解释:作用效果。

取值范围:不涉及。

表9 UserTags

参数

是否必选

参数类型

描述

key

String

参数解释:键。不得以"CCE-"或"__type_baremetal"开头"。

取值范围:不涉及。

value

String

参数解释:值。

取值范围:不涉及。

表10 NodeNetwork

参数

是否必选

参数类型

描述

vpc

String

参数解释:vpc id。

取值范围:不涉及。

subnet

String

参数解释:子网id。

取值范围:不涉及。

securityGroups

Array of strings

参数解释:安全组id集合。

表11 ResourceExtendParams

参数

是否必选

参数类型

描述

dockerBaseSize

String

参数解释:节点的容器镜像空间大小。

取值范围:可选值如下:

  • 指定大小:dockerBaseSize的大小范围默认为50-500,但实际上限受到节点的容器数据盘大小约束。

  • 不限制:dockerBaseSize="0",表示不限制容器镜像空间大小。

postInstall

String

参数解释:安装后执行脚本,输入的值需要经过Base64编码。

取值范围:不涉及。

runtime

String

参数解释:容器运行时。

取值范围:可选值如下:

  • docker:容器运行时,是目前最常用的容器化引擎,基于容器镜像创建和管理容器实例。

  • containerd:工业级的容器运行时,专注于容器的生命周期管理,是 Docker 底层核心组件之一,也可独立部署使用。

labelPolicyOnExistingNodes

String

参数解释:存量节点k8s标签更新策略,值为空时默认更新存量节点。

取值范围:可选值如下:

  • refresh:更新。

  • ignore:不更新。

taintPolicyOnExistingNodes

String

参数解释:存量节点k8s污点更新策略,值为空时默认更新存量节点。

取值范围:可选值如下:

  • refresh:更新。

  • ignore:不更新。

tagPolicyOnExistingNodes

String

参数解释:存量节点资源标签更新策略,值为空时默认更新存量节点。

取值范围:可选值如下:

  • refresh:更新。

  • ignore:不更新。

XParameterPlaneSubnet

String

参数解释:跨物理集群之间进行参数面数据传输使用的子网id。不可与节点子网和容器子网重复。

取值范围:不涉及。

nodePoolName

String

参数解释:用户指定的节点池名称。最小长度为2,最大长度为50的小写字母、中划线-、数字组成,由小写字母开头,不能以-,-default结尾。

取值范围:不涉及

表12 CreatingStep

参数

是否必选

参数类型

描述

step

Integer

参数解释:超节点的步长。仅支持资源规格详情中包含的步长。

取值范围:不涉及。

type

String

参数解释:批量创建类型。

取值范围:可选值如下:

  • hyperinstance:超节点。

表13 RootVolume

参数

是否必选

参数类型

描述

volumeType

String

参数解释:磁盘类型,具体内容可参考磁盘类型及性能介绍。

取值范围:可选值如下:

  • SSD:超高IO硬盘

  • GPSSD:通用型SSD

  • SAS:高IO硬盘

size

String

参数解释:磁盘大小,单位为GiB。

取值范围:不涉及。

表14 DataVolumeItem

参数

是否必选

参数类型

描述

volumeType

String

参数解释:磁盘类型,具体内容可参考磁盘类型及性能介绍。

取值范围:可选值如下:

  • SSD:超高IO硬盘

  • GPSSD:通用型SSD

  • SAS:高IO硬盘

size

String

参数解释:磁盘大小,单位为GiB。

取值范围:不涉及。

count

Integer

参数解释:磁盘个数。

取值范围:不涉及。

extendParams

VolumeExtendParams object

参数解释:磁盘自定义配置。

表15 VolumeExtendParams

参数

是否必选

参数类型

描述

volumeGroup

String

参数解释:磁盘分组名称,用于各个存储空间的划分。

取值范围:可选项如下:

  • vgpaas:容器盘。

  • default:普通数据盘,以默认方式挂载。

  • vguser:普通数据盘,指定挂载路径,不同路径的分组名称不同,如vguser1,vguser2。

  • vg-everest-localvolume-persistent:普通数据盘,作为持久存储卷

  • vg-everest-localvolume-ephemeral:普通数据盘,作为临时存储卷

表16 VolumeGroupConfig

参数

是否必选

参数类型

描述

volumeGroup

String

参数解释:磁盘分组名称。作为dataVolumes中volumeGroup的索引。

取值范围:不涉及。

dockerThinPool

Integer

参数解释:资源池节点容器盘占数据盘的百分比。仅磁盘分组名称为vgpaas时,即容器盘,才可指定此参数。

取值范围:不涉及。

lvmConfig

LvmConfig object

参数解释:LVM配置管理。

types

Array of strings

参数解释:存储类型。可选项如下:

  • volume:云硬盘。当指定dataVolumes时,该值为缺省值。

  • local:本地盘。使用本地盘必须指定该字段。

表17 LvmConfig

参数

是否必选

参数类型

描述

lvType

String

参数解释:LVM写入模式。

取值范围:可选项如下:

  • linear:线性模式。

  • striped:条带模式,使用多块磁盘组成条带模式,能够提升磁盘性能。

path

String

参数解释:磁盘挂载路径。仅在用户配置中生效。支持包含:数字、大小写字母、点、中划线、下划线的绝对路径。

取值范围:不涉及。

表18 Os

参数

是否必选

参数类型

描述

name

String

参数解释:操作系统名称和版本,如EulorOS 2.5。指定私有镜像时可不指定。

取值范围:不涉及。

imageId

String

参数解释:操作系统镜像id。

取值范围:不涉及。

imageType

String

参数解释:操作系统镜像类型。设置私有镜像时必须指定。默认为预置镜像,无需指定该字段。

取值范围:可选值如下:

  • private:私有镜像

  • "":不指定类型即预置镜像。

autoMatch

String

参数解释:操作系统镜像自动匹配配置。当配置该参数时将会自动选择最优镜像,同时该参数会自动清空。

取值范围:操作系统名称和版本,如EulorOS 2.5。

响应参数

状态码:200

表19 响应Body参数

参数

参数类型

描述

apiVersion

String

参数解释:API版本。

取值范围:可选值如下:

  • v2

kind

String

参数解释:节点池类型。

取值范围:可选值如下:

  • NodePool:节点池

metadata

CreateNodePoolMetaVO object

参数解释:节点池的metadata信息。

spec

NodePoolSpec object

参数解释:节点池的期望信息。

表20 CreateNodePoolMetaVO

参数

参数类型

描述

name

String

参数解释:节点池名称。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

annotations

CreateNodePoolAnnotations object

参数解释:节点池的注释信息。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表21 CreateNodePoolAnnotations

参数

参数类型

描述

os.modelarts/billing.mode

String

参数解释:计费模式。

约束限制:不涉及。

取值范围:可选值如下:

  • 0:按需计费

  • 1:包周期计费

默认取值:不涉及。

os.modelarts/period.num

String

参数解释:包周期订购周期,比如2。当计费模式为包周期时该参数必传。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

os.modelarts/period.type

String

参数解释:包周期订购类型。当计费模式为包周期时该参数必传

约束限制:不涉及。

取值范围:可选值如下:

  • 2:月

  • 3:年

  • 4:小时

默认取值:不涉及。

os.modelarts/auto.renew

String

参数解释:是否自动续费。

约束限制:不涉及。

取值范围:可选值如下:

  • 0:不自动续费

  • 1:自动续费

默认取值:0。

os.modelarts/promotion.info

String

参数解释:用户在运营平台选择的折扣信息。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

os.modelarts/service.console.url

String

参数解释:订购订单支付完成后跳转的url地址。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

os.modelarts/order.id

String

参数解释:订单id,包周期资源创建或者计费模式变更的时候该参数必需。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表22 NodePoolSpec

参数

参数类型

描述

resources

PoolResource object

参数解释: 节点池中的资源信息列表,包括资源规格和相应规格的资源数量,自定义配置等。

取值范围: 不涉及。

表23 PoolResource

参数

参数类型

描述

flavor

String

参数解释:资源规格名称,比如:modelarts.vm.gpu.t4u8。

取值范围:不涉及。

count

Integer

参数解释:规格保障使用量。

取值范围:不涉及。

maxCount

Integer

参数解释:资源规格的弹性使用量,物理池该值和count相同。

取值范围:不涉及。

azs

Array of PoolNodeAz objects

参数解释:资源池中节点的AZ信息。

nodePool

String

参数解释:节点池名称。比如:nodePool-1。

取值范围:不涉及。

taints

Array of Taints objects

参数解释:支持给创建出来的节点加taints来设置反亲和性,非特权池不能指定。

labels

Map<String,String>

参数解释:k8s标签,格式为key/value键值对。

tags

Array of UserTags objects

参数解释:资源标签,非特权池不能指定。

network

NodeNetwork object

参数解释:网络配置,非特权池不能指定。

extendParams

ResourceExtendParams object

参数解释:自定义配置。

creatingStep

CreatingStep object

参数解释:批量创建信息。

rootVolume

RootVolume object

参数解释:自定义系统盘(云硬盘)信息。

dataVolumes

Array of DataVolumeItem objects

参数解释:自定义数据盘(云硬盘)列表信息。

volumeGroupConfigs

Array of VolumeGroupConfig objects

参数解释:磁盘高级配置。存在自定义数据盘时必须指定对应的高级配置。

os

Os object

参数解释:操作系统镜像信息。

表24 PoolNodeAz

参数

参数类型

描述

az

String

参数解释:可用区名称。

取值范围:不涉及。

count

Integer

参数解释:可用区资源实例的数量。

取值范围:不涉及。

表25 Taints

参数

参数类型

描述

key

String

参数解释:键。

取值范围:不涉及。

value

String

参数解释:值。

取值范围:不涉及。

effect

String

参数解释:作用效果。

取值范围:不涉及。

表26 UserTags

参数

参数类型

描述

key

String

参数解释:键。不得以"CCE-"或"__type_baremetal"开头"。

取值范围:不涉及。

value

String

参数解释:值。

取值范围:不涉及。

表27 NodeNetwork

参数

参数类型

描述

vpc

String

参数解释:vpc id。

取值范围:不涉及。

subnet

String

参数解释:子网id。

取值范围:不涉及。

securityGroups

Array of strings

参数解释:安全组id集合。

表28 ResourceExtendParams

参数

参数类型

描述

dockerBaseSize

String

参数解释:节点的容器镜像空间大小。

取值范围:可选值如下:

  • 指定大小:dockerBaseSize的大小范围默认为50-500,但实际上限受到节点的容器数据盘大小约束。

  • 不限制:dockerBaseSize="0",表示不限制容器镜像空间大小。

postInstall

String

参数解释:安装后执行脚本,输入的值需要经过Base64编码。

取值范围:不涉及。

runtime

String

参数解释:容器运行时。

取值范围:可选值如下:

  • docker:容器运行时,是目前最常用的容器化引擎,基于容器镜像创建和管理容器实例。

  • containerd:工业级的容器运行时,专注于容器的生命周期管理,是 Docker 底层核心组件之一,也可独立部署使用。

labelPolicyOnExistingNodes

String

参数解释:存量节点k8s标签更新策略,值为空时默认更新存量节点。

取值范围:可选值如下:

  • refresh:更新。

  • ignore:不更新。

taintPolicyOnExistingNodes

String

参数解释:存量节点k8s污点更新策略,值为空时默认更新存量节点。

取值范围:可选值如下:

  • refresh:更新。

  • ignore:不更新。

tagPolicyOnExistingNodes

String

参数解释:存量节点资源标签更新策略,值为空时默认更新存量节点。

取值范围:可选值如下:

  • refresh:更新。

  • ignore:不更新。

XParameterPlaneSubnet

String

参数解释:跨物理集群之间进行参数面数据传输使用的子网id。不可与节点子网和容器子网重复。

取值范围:不涉及。

nodePoolName

String

参数解释:用户指定的节点池名称。最小长度为2,最大长度为50的小写字母、中划线-、数字组成,由小写字母开头,不能以-,-default结尾。

取值范围:不涉及

表29 CreatingStep

参数

参数类型

描述

step

Integer

参数解释:超节点的步长。仅支持资源规格详情中包含的步长。

取值范围:不涉及。

type

String

参数解释:批量创建类型。

取值范围:可选值如下:

  • hyperinstance:超节点。

表30 RootVolume

参数

参数类型

描述

volumeType

String

参数解释:磁盘类型,具体内容可参考磁盘类型及性能介绍。

取值范围:可选值如下:

  • SSD:超高IO硬盘

  • GPSSD:通用型SSD

  • SAS:高IO硬盘

size

String

参数解释:磁盘大小,单位为GiB。

取值范围:不涉及。

表31 DataVolumeItem

参数

参数类型

描述

volumeType

String

参数解释:磁盘类型,具体内容可参考磁盘类型及性能介绍。

取值范围:可选值如下:

  • SSD:超高IO硬盘

  • GPSSD:通用型SSD

  • SAS:高IO硬盘

size

String

参数解释:磁盘大小,单位为GiB。

取值范围:不涉及。

count

Integer

参数解释:磁盘个数。

取值范围:不涉及。

extendParams

VolumeExtendParams object

参数解释:磁盘自定义配置。

表32 VolumeExtendParams

参数

参数类型

描述

volumeGroup

String

参数解释:磁盘分组名称,用于各个存储空间的划分。

取值范围:可选项如下:

  • vgpaas:容器盘。

  • default:普通数据盘,以默认方式挂载。

  • vguser:普通数据盘,指定挂载路径,不同路径的分组名称不同,如vguser1,vguser2。

  • vg-everest-localvolume-persistent:普通数据盘,作为持久存储卷

  • vg-everest-localvolume-ephemeral:普通数据盘,作为临时存储卷

表33 VolumeGroupConfig

参数

参数类型

描述

volumeGroup

String

参数解释:磁盘分组名称。作为dataVolumes中volumeGroup的索引。

取值范围:不涉及。

dockerThinPool

Integer

参数解释:资源池节点容器盘占数据盘的百分比。仅磁盘分组名称为vgpaas时,即容器盘,才可指定此参数。

取值范围:不涉及。

lvmConfig

LvmConfig object

参数解释:LVM配置管理。

types

Array of strings

参数解释:存储类型。可选项如下:

  • volume:云硬盘。当指定dataVolumes时,该值为缺省值。

  • local:本地盘。使用本地盘必须指定该字段。

表34 LvmConfig

参数

参数类型

描述

lvType

String

参数解释:LVM写入模式。

取值范围:可选项如下:

  • linear:线性模式。

  • striped:条带模式,使用多块磁盘组成条带模式,能够提升磁盘性能。

path

String

参数解释:磁盘挂载路径。仅在用户配置中生效。支持包含:数字、大小写字母、点、中划线、下划线的绝对路径。

取值范围:不涉及。

表35 Os

参数

参数类型

描述

name

String

参数解释:操作系统名称和版本,如EulorOS 2.5。指定私有镜像时可不指定。

取值范围:不涉及。

imageId

String

参数解释:操作系统镜像id。

取值范围:不涉及。

imageType

String

参数解释:操作系统镜像类型。设置私有镜像时必须指定。默认为预置镜像,无需指定该字段。

取值范围:可选值如下:

  • private:私有镜像

  • "":不指定类型即预置镜像。

autoMatch

String

参数解释:操作系统镜像自动匹配配置。当配置该参数时将会自动选择最优镜像,同时该参数会自动清空。

取值范围:操作系统名称和版本,如EulorOS 2.5。

状态码:400

表36 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:ModelArts错误码。

取值范围:不涉及。

error_msg

String

参数解释:具体错误信息。

取值范围:不涉及。

请求示例

创建节点池。

POST https://{endpoint}/v2/{project_id}/pools/{pool_name}/nodepools

{
  "kind" : "NodePool",
  "apiVersion" : "v2",
  "metadata" : {
    "name" : "nodepool-1",
    "annotations" : { }
  },
  "spec" : {
    "resources" : {
      "nodePool" : "nodepool-1",
      "flavor" : "modelarts.vm.2u4g.dcc",
      "count" : 1,
      "maxCount" : 1,
      "network" : {
        "vpc" : "277e9abc-0e6b-431a-9232-cfd25d5fc566",
        "subnet" : "03796378-c356-4c14-826b-e4913aa9c8b9",
        "securityGroups" : [ "0a15b48d-06f1-41e4-b782-ade90087bf59" ]
      }
    }
  }
}

响应示例

状态码:200

OK。

{
  "kind" : "NodePool",
  "apiVersion" : "v2",
  "metadata" : {
    "name" : "nodepool-1",
    "annotations" : { }
  },
  "spec" : {
    "resources" : {
      "nodePool" : "nodepool-1",
      "flavor" : "modelarts.vm.2u4g.dcc",
      "count" : 1,
      "maxCount" : 1,
      "network" : {
        "vpc" : "277e9abc-0e6b-431a-9232-cfd25d5fc566",
        "subnet" : "03796378-c356-4c14-826b-e4913aa9c8b9",
        "securityGroups" : [ "0a15b48d-06f1-41e4-b782-ade90087bf59" ]
      }
    }
  }
}

状态码:400

Bad request

{
  "error_code" : "ModelArts.50004000",
  "error_msg" : "Bad request."
}

状态码

状态码

描述

200

OK。

400

Bad request

错误码

请参见错误码

相关文档