创建节点
接口约束
仅支持创建KVM虚拟化类型的节点,非KVM虚拟化类型的节点创建后无法正常使用。
调用方法
请参见如何调用API。
URI
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
参数解释: 项目ID,获取方式请参见如何获取接口URI中参数。 约束限制: 不涉及 取值范围: 账号的项目ID 默认取值: 不涉及 |
cluster_id |
是 |
String |
参数解释: 集群ID,获取方式请参见如何获取接口URI中参数。 约束限制: 不涉及 取值范围: 集群ID 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
nodepoolScaleUp |
否 |
String |
标明是否为nodepool下发的请求。若不为“NodepoolScaleUp”将自动更新对应节点池的实例数 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Content-Type |
是 |
String |
参数解释: 消息体的类型(格式) 约束限制: GET方法不做校验 取值范围:
默认取值: 不涉及 |
X-Auth-Token |
是 |
String |
参数解释: 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值,获取方式请参见获取token。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
kind |
是 |
String |
API类型,固定值“Node”,该值不可修改。 |
apiVersion |
是 |
String |
API版本,固定值“v3”,该值不可修改。 |
metadata |
否 |
NodeMetadata object |
metadata是节点对象的元数据定义,是集合类的元素类型,包含一组由不同名称定义的属性。 |
spec |
是 |
NodeSpec object |
spec是集合类的元素类型,用户对需要管理的节点对象进行详细描述的主体部分都在spec中给出。系统通过spec的描述来创建或更新对象。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
否 |
String |
节点名称
说明:
命名规则:以小写字母开头,由小写字母、数字、中划线(-)、点(.)组成,长度范围1-56位,且不能以中划线(-)结尾。 若name未指定或指定为空字符串,则按照默认规则生成节点名称。默认规则为:“集群名称-随机字符串”,若集群名称过长,则只取前36个字符。 若节点数量(count)大于1时,则按照默认规则会在用户输入的节点名称末尾添加随机字符串。默认规则为:“用户输入名称-随机字符串”,若用户输入的节点名称长度范围超过50位时,系统截取前50位,并在末尾添加随机字符串。 |
uid |
否 |
String |
节点ID,资源唯一标识,创建成功后自动生成,填写无效 |
labels |
否 |
Map<String,String> |
CCE自有节点标签,非Kubernetes原生labels。 标签可用于选择对象并查找满足某些条件的对象集合,格式为key/value键值对。 示例: "labels": { "key" : "value" } |
annotations |
否 |
Map<String,String> |
CCE自有节点注解,非Kubernetes原生annotations,格式为key/value键值对。 示例: "annotations": { "key1" : "value1", "key2" : "value2" }
说明:
|
creationTimestamp |
否 |
String |
创建时间,创建成功后自动生成,填写无效 |
updateTimestamp |
否 |
String |
更新时间,创建成功后自动生成,填写无效 |
ownerReference |
否 |
ownerReference object |
属主对象 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
flavor |
是 |
String |
参数解释: 节点的规格,CCE支持的节点规格请参考节点规格说明获取。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
az |
是 |
String |
参数解释: 待创建节点所在的可用区,需要指定可用区(AZ)的名称,通过api创建节点不支持随机可用区。 CCE支持的可用区请参考地区和终端节点。 约束限制: 创建节点池并设置伸缩组时,该参数不允许填写为random。 取值范围: 不涉及 默认取值: 不涉及 |
os |
否 |
String |
参数解释: 节点的操作系统类型。具体支持的操作系统请参见节点操作系统说明。 约束限制:
取值范围: 不涉及 默认取值: 不涉及 |
login |
是 |
Login object |
参数解释: 节点的登录方式。密钥对和密码登录方式二者必选其一。 约束限制: 更新节点池时,不支持修改此参数。 |
rootVolume |
是 |
Volume object |
参数解释: 节点的磁盘信息。 约束限制: 不涉及 |
dataVolumes |
是 |
Array of Volume objects |
参数解释: 节点的数据盘参数。针对专属云节点,参数解释与rootVolume一致。 约束限制: 磁盘挂载上限为虚拟机不超过16块,裸金属不超过10块。在此基础上还受限于虚拟机/裸金属规格可挂载磁盘数上限。(目前支持通过控制台和API为CCE节点添加多块数据盘)。 如果数据盘正供容器运行时和Kubelet组件使用,则不可被卸载,否则将导致节点不可用。 |
storage |
否 |
Storage object |
参数解释: 磁盘初始化配置管理参数。 该参数配置逻辑较为复杂,详细说明请参见节点磁盘挂载。 约束限制:
|
publicIP |
否 |
NodePublicIP object |
参数解释: 节点的弹性公网IP。 约束限制: 创建节点池添加节点时不支持该参数。 |
nodeNicSpec |
否 |
NodeNicSpec object |
参数解释: 节点的网卡信息。 约束限制: 不涉及 |
count |
否 |
Integer |
参数解释: 批量创建时节点的个数。 约束限制: 作用于节点池时该项可以不填写。 取值范围: 必须为大于等于1,小于等于最大限额的正整数。 默认取值: 不涉及 |
billingMode |
否 |
Integer |
参数解释: 节点的计费模式。 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
taints |
否 |
Array of Taint objects |
参数解释: 支持给创建出来的节点加Taints来设置反亲和性。每条Taints包含以下3个参数:
示例: "taints": [{ "key": "status", "value": "unavailable", "effect": "NoSchedule" }, { "key": "looks", "value": "bad", "effect": "NoSchedule" }] 约束限制: taints配置不超过20条。 |
k8sTags |
否 |
Map<String,String> |
参数解释: 格式为key/value键值对。
示例: "k8sTags": { "key": "value" } 约束限制: 键值对个数不超过20条。 |
ecsGroupId |
否 |
String |
参数解释: 云服务器组ID,若指定,将节点创建在该云服务器组下。 约束限制: 创建节点池时该配置不会生效,若要保持节点池中的节点都在同一个云服务器组内,请在节点池 nodeManagement 字段中配置。 取值范围: 不涉及 默认取值: 不涉及 |
dedicatedHostId |
否 |
String |
参数解释: 指定DeH主机的ID,将节点调度到自己的DeH上。 约束限制: 创建节点池添加节点时不支持该参数。 |
userTags |
否 |
Array of UserTag objects |
参数解释: 云服务器标签(资源标签)。字段使用场景:在节点创建场景下,支持指定初始值,查询时不返回该字段;在节点池场景下,其中节点模板中支持指定初始值,查询时支持返回该字段;在其余场景下,查询时都不会返回该字段。 约束限制:
|
runtime |
否 |
Runtime object |
参数解释: 容器运行时, 默认场景:
约束限制: 不涉及 |
initializedConditions |
否 |
Array of strings |
参数解释: 自定义初始化标记,默认值为空。 CCE节点在初始化完成之前,会打上初始化未完成污点(node.cloudprovider.kubernetes.io/uninitialized)防止pod调度到节点上。用户在创建节点时,可以通过设置initializedConditions参数,控制污点的移除时间(默认不设置超时时间)。 使用示例如下:
status: conditions: - type: CCEInitial status: 'True' - type: CustomedInitial status: 'True'
约束限制:
|
extendParam |
否 |
NodeExtendParam object |
参数解释: 创建节点时的扩展参数。 约束限制: 不涉及 |
hostnameConfig |
否 |
HostnameConfig object |
参数解释: K8S节点名称配置参数。 约束限制: 支持的集群版本为v1.23.6-r0到v1.25或者v1.25.2-r0及以上。 |
serverEnterpriseProjectID |
否 |
String |
参数解释: 服务器企业项目ID。CCE服务不实现EPS相关特性,该字段仅用于同步服务器企业项目ID。 约束限制: 创建节点/节点池场景:可指定已存在企业项目,当取值为空时,该字段继承集群企业项目属性。 更新节点池场景:配置修改后仅会对新增节点的服务器生效,存量节点需前往EPS界面迁移。 取值范围: 不涉及 默认取值: 如果更新时不指定值,不会更新该字段。 当该字段为空时,返回集群企业项目。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
sshKey |
否 |
String |
参数解释: 选择密钥对方式登录时的密钥对名称。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
userPassword |
否 |
UserPassword object |
参数解释: 选择密码方式登录时的账号密码信息,之后可通过此账号密码登录节点。 约束限制: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
username |
否 |
String |
参数解释: 登录账号,默认为“root”。 约束限制: 不涉及 取值范围: 不涉及 默认取值: root。 |
password |
是 |
String |
参数解释: 登录密码,若创建节点通过用户名密码方式,即使用该字段,则响应体中该字段作屏蔽展示。 约束限制: 创建节点时password字段需要加盐加密,具体方法请参见创建节点时password字段加盐加密。 取值范围: 密码复杂度要求:
默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
size |
是 |
Integer |
参数解释: 磁盘大小,单位为GiB。 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
volumetype |
是 |
String |
参数解释: 磁盘类型,取值请参见创建云服务器 中“root_volume字段数据结构说明”。 约束限制: 不涉及 取值范围:
说明:
了解不同磁盘类型的详细信息,链接请参见磁盘类型及性能介绍。 默认取值: 不涉及 |
iops |
否 |
Integer |
参数解释: 给云硬盘配置iops。 约束限制:
取值范围: 了解GPSSD2、ESSD2类型的iops大小范围,请参见云硬盘类型及性能介绍里面的云硬盘性能数据表。 默认取值: 不涉及 |
throughput |
否 |
Integer |
参数解释: 给云硬盘配置吞吐量,单位是MiB/s。 约束限制:
取值范围: 了解GPSSD2类型的吞吐量大小范围,请参见云硬盘类型及性能介绍里面的云硬盘性能数据表。 默认取值: 不涉及 |
extendParam |
否 |
Map<String,Object> |
参数解释: 磁盘扩展参数,取值请参见创建云服务器中“extendparam”参数的描述。 链接请参见创建磁盘的extendparam字段数据结构说明。 约束限制: 不涉及 |
cluster_id |
否 |
String |
参数解释: 云服务器系统盘对应的存储池的ID。仅用作专属云集群,专属分布式存储DSS的存储池ID,即dssPoolID。 获取方法请参见获取单个专属分布式存储池详情中“表3 响应参数”的ID字段。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
cluster_type |
否 |
String |
参数解释: 云服务器系统盘对应的磁盘存储类型。 约束限制: 不涉及 取值范围: 仅用作专属云集群,固定取值为dss。 默认取值: 不涉及 |
hw:passthrough |
否 |
Boolean |
参数解释:
约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
metadata |
否 |
VolumeMetadata object |
参数解释: 云硬盘加密信息,仅在创建节点系统盘或数据盘需加密时须填写。 约束限制: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
__system__encrypted |
否 |
String |
参数解释: 表示云硬盘加密功能的字段,'0'代表不加密,'1'代表加密。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 该字段不存在时,云硬盘默认为不加密。 |
__system__cmkid |
否 |
String |
参数解释: 用户主密钥ID,是metadata中的表示加密功能的字段,与__system__encrypted配合使用。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
storageSelectors |
是 |
Array of StorageSelectors objects |
参数解释: 磁盘选择,根据matchLabels和storageType对匹配的磁盘进行管理。磁盘匹配存在先后顺序,靠前的匹配规则优先匹配。 约束限制: 不涉及 |
storageGroups |
是 |
Array of StorageGroups objects |
参数解释: 由多个存储设备组成的存储组,用于各个存储空间的划分。 约束限制: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
参数解释: selector的名字,作为storageGroup中selectorNames的索引。 约束限制: 各个selector间的名字不能重复。 取值范围: 不涉及 默认取值: 不涉及 |
storageType |
是 |
String |
参数解释: 存储类型。 约束限制:
取值范围: 当前仅支持evs(云硬盘)、local(本地盘)和system(系统盘)。 默认取值: 不涉及 |
matchLabels |
否 |
matchLabels object |
参数解释: evs盘的匹配字段。 约束限制: storageType设置为system(系统盘)时,无需设置此字段。 取值范围: 支持DataVolume中的size、volumeType、iops、throughput、metadataEncrypted、metadataCmkid、count字段。 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
size |
否 |
String |
参数解释: 匹配的磁盘大小,不填则无磁盘大小限制。例如:100。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
volumeType |
否 |
String |
参数解释: 云硬盘类型。 约束限制: 不涉及 取值范围: 目前支持SSD\GPSSD\SAS\ESSD\SATA等,不填则无云硬盘类型限制。 默认取值: 不涉及 |
iops |
否 |
String |
参数解释: 匹配的磁盘iops大小,不填则无磁盘iops大小限制。当需要选择GPSSD2或ESSD2类型磁盘时,配置iops来准确选择磁盘。例如:3000。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
throughput |
否 |
String |
参数解释: 匹配的磁盘吞吐量大小,不填则无磁盘吞吐量大小限制。当需要选择GPSSD2类型磁盘时,配置throughput来准确选择磁盘。例如:125。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
metadataEncrypted |
否 |
String |
参数解释: 磁盘加密标识符,0代表不加密,1代表加密,不填则无磁盘加密标识符限制。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
metadataCmkid |
否 |
String |
参数解释: 加密磁盘的用户主密钥ID,长度为36字节的字符串,不填则无磁盘密钥ID限制。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
count |
否 |
String |
参数解释: 磁盘选择个数,不填则选择所有此类磁盘。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
参数解释: storageGroups的名字,作为虚拟存储组的名字,因此各个group名字不能重复。 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
cceManaged |
否 |
Boolean |
参数解释: k8s及runtime所属存储空间。有且仅有一个group被设置为true,不填默认false。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
selectorNames |
是 |
Array of strings |
参数解释: 对应storageSelectors中的name,一个group可选择多个selector;但一个selector只能被一个group选择。 约束限制: 系统组件无法分别存储于系统盘与数据盘中,因此选择selector的type为system时,group只能选择一个selector。 |
virtualSpaces |
是 |
Array of VirtualSpace objects |
参数解释: group中空间配置的详细管理。 约束限制: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
参数解释: virtualSpace的名称,当前仅支持四种类型:share、kubernetes、runtime、user。 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
size |
是 |
String |
参数解释: virtualSpace的大小,仅支持整数百分比。例如:90%。 约束限制: 不涉及 取值范围: 该参数取值范围[10-90],一个group中所有virtualSpace的百分比之和不得超过100% 默认取值: 不涉及 |
lvmConfig |
否 |
LVMConfig object |
参数解释: lvm配置管理,适用于share、kubernetes和user空间配置。 约束限制: 一个virtualSpace仅支持一个config配置。 |
runtimeConfig |
否 |
RuntimeConfig object |
参数解释: runtime配置管理,适用于运行时空间配置。 约束限制: 一个virtualSpace仅支持一个config配置。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
lvType |
是 |
String |
参数解释: LVM写入模式:linear、striped。linear:线性模式;striped:条带模式,使用多块磁盘组成条带模式,能够提升磁盘性能。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
path |
否 |
String |
参数解释: 磁盘挂载路径,仅在用户配置中生效,支持包含:数字、大小写字母、点、中划线、下划线的绝对路径。 约束限制: 挂载路径请填写业务目录路径,不可设置为空或根目录等操作系统关键路径。不可填写的操作系统关键路径如下: /, /home, /home/, /bin, /bin/, /lib, /lib/, /root, /root/, /boot, /boot/, /dev, /dev/, /etc, /etc/, /lost+found, /lost+found/, /mnt, /mnt/, /proc, /proc/,/sbin, /sbin/, /srv, /srv/, /tmp, /tmp/, /var, /var/, /media, /media/, /opt, /opt/, /selinux, /selinux/, /sys, /sys/, /usr, /usr/, /opt/cloud/, /mnt/paas/, /home/paas/, /var/paas/, /var/lib/, /var/script/ 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
lvType |
是 |
String |
参数解释: LVM写入模式:linear、striped。linear:线性模式;striped:条带模式,使用多块磁盘组成条带模式,能够提升磁盘性能。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
ids |
否 |
Array of strings |
参数解释: 已有的弹性IP的ID列表。 约束限制:
|
count |
否 |
Integer |
参数解释: 要动态创建的弹性IP个数。 约束限制: count参数与eip参数必须同时配置。 取值范围: 不涉及 默认取值: 不涉及 |
eip |
否 |
NodeEIPSpec object |
参数解释: 弹性IP参数。 约束限制: 创建节点池时不支持此参数 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
iptype |
是 |
String |
参数解释: 弹性IP类型,取值请参见申请EIP接口中publicip.type说明。 链接请参见申请EIP。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
bandwidth |
否 |
NodeBandwidth object |
参数解释: 弹性IP的带宽参数。 约束限制: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
chargemode |
否 |
String |
参数解释: 带宽的计费类型。
说明:
约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
size |
否 |
Integer |
参数解释: 带宽大小,取值请参见申请EIP接口中bandwidth.size说明。 链接请参见申请EIP。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
sharetype |
否 |
String |
参数解释: 带宽的共享类型,共享类型枚举:PER,表示独享,目前仅支持独享。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
primaryNic |
否 |
NicSpec object |
参数解释: 主网卡的描述信息。 约束限制: 不涉及 |
extNics |
否 |
Array of NicSpec objects |
参数解释: 扩展网卡。 约束限制: 创建节点池添加节点时不支持该参数。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
subnetId |
否 |
String |
参数解释: 网卡所在子网的网络ID。若节点池同时配置了subnetList,则节点池扩容子网以subnetList字段为准。 约束限制:
取值范围: 不涉及 默认取值: 不涉及 |
fixedIps |
否 |
Array of strings |
参数解释: 主网卡的IP将通过fixedIps指定,数量不得大于创建的节点数。 约束限制: fixedIps或ipBlock同时只能指定一个。扩展网卡不支持指定fiexdIps。 |
ipBlock |
否 |
String |
参数解释: 主网卡的IP段的CIDR格式,创建的节点IP将属于该IP段内。 约束限制: fixedIps或ipBlock同时只能指定一个。 取值范围: 不涉及 默认取值: 不涉及 |
subnetList |
否 |
Array of strings |
参数解释: 网卡所在子网的网络ID列表,支持节点池配置多个子网。 约束限制: 最多支持配置20个子网。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
是 |
String |
参数解释: 键。 约束限制: 必须以字母或数字开头和结尾,可以包含字母、数字、连字符、下划线和点,最长63个字符。 取值范围: 不涉及 默认取值: 不涉及 |
value |
否 |
String |
参数解释: 值。 约束限制: 必须以字母或数字开头和结尾,可以包含字母、数字、连字符、下划线和点,最长63个字符。 取值范围: 不涉及 默认取值: 不涉及 |
effect |
是 |
String |
参数解释: 作用效果。 约束限制: 不涉及 取值范围: 只可选NoSchedule,PreferNoSchedule或NoExecute。 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
否 |
String |
参数解释: 云服务器标签的键。 约束限制: 不得以"CCE-"或"__type_baremetal"开头。 取值范围: 标签键只能包含大写字母.小写字母、数字和特殊字符(-_)以及Unicode字符,长度不超过36个字符。 默认取值: 不涉及 |
value |
否 |
String |
参数解释: 云服务器标签的值。 约束限制: 不涉及 取值范围: 标签值只能包含大写字母.小写字母、数字和特殊字符(-_)以及Unicode字符,长度不超过43个字符。 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
否 |
String |
参数解释: 容器运行时。 约束限制: 不涉及 取值范围: 不涉及 默认取值:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
ecs:performancetype |
否 |
String |
参数解释: 云服务器规格的分类。响应中会返回此字段。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
orderID |
否 |
String |
参数解释: 订单ID。 约束限制: 节点付费类型为自动付费包周期类型时,响应中会返回此字段(仅创建场景涉及)。 取值范围: 不涉及 默认取值: 不涉及 |
productID |
否 |
String |
参数解释: 产品ID。 约束限制: 节点付费类型为自动付费包周期类型时,响应中会返回此字段。 取值范围: 不涉及 默认取值: 不涉及 |
maxPods |
否 |
Integer |
参数解释: 节点最大允许创建的实例数(Pod),该数量包含系统默认实例。 该设置的目的为防止节点因管理过多实例而负载过重,请根据您的业务需要进行设置。 节点可以创建多少个Pod,受多个参数影响,具体请参见节点可创建的最大Pod数量说明。 约束限制: 不涉及 取值范围: 取值范围为16~256。 默认取值: 不涉及 |
periodType |
否 |
String |
参数解释: 订购周期类型。 约束限制:
取值范围:
默认取值: 不涉及 |
periodNum |
否 |
Integer |
参数解释: 订购周期数。 约束限制:
取值范围:
默认取值: 不涉及 |
isAutoRenew |
否 |
String |
参数解释: 是否自动续订。 约束限制: billingMode为1或2(已废弃)时生效,不填写此参数时默认不会自动续费。 取值范围:
默认取值: 不涉及 |
isAutoPay |
否 |
String |
参数解释: 下单订购后,是否自动从客户的账户中支付,而不需要客户手动去进行支付。 约束限制: billingMode为1或2(已废弃)时生效,billingMode为1时不填写此参数时默认不会自动扣款。(已废弃:billingMode为2时不填写此参数时默认会自动扣款)。 取值范围:
默认取值: 不涉及 |
DockerLVMConfigOverride |
否 |
String |
参数解释: Docker数据盘配置项(已废弃,请使用storage字段)。默认配置示例如下: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" 默认配置在无VD类型磁盘时,会由于数据盘查找失败而出错,请根据真实盘符类型填写diskType。 约束限制: 不涉及 取值范围: 包含如下字段:
默认取值: 不涉及 |
dockerBaseSize |
否 |
Integer |
参数解释: 节点上单容器的可用磁盘空间大小(已废弃,请优先使用containerBaseSize参数),单位G。 CCE节点容器运行时空间配置请参考数据盘空间分配说明。 约束限制:
取值范围: 10-500。 默认取值: 不配置该值或值为0时将使用默认值:
|
containerBaseSize |
否 |
Integer |
参数解释: 节点上单容器的可用磁盘空间大小,单位G。 CCE节点容器运行时空间配置请参考数据盘空间分配说明。 约束限制:
取值范围: 10-500。 默认取值: 不配置该值或值为0时将使用默认值:
|
publicKey |
否 |
String |
参数解释: 节点的公钥。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
alpha.cce/preInstall |
否 |
String |
参数解释: 安装前执行脚本。 输入的值需要经过Base64编码,方法如下: echo -n "待编码内容" | base64 约束限制: 安装前/后执行脚本统一计算字符,转码后的字符总数不能超过10240。 取值范围: 不涉及 默认取值: 不涉及 |
alpha.cce/postInstall |
否 |
String |
参数解释: 安装后执行脚本。 输入的值需要经过Base64编码,方法如下: echo -n "待编码内容" | base64 约束限制: 安装前/后执行脚本统一计算字符,转码后的字符总数不能超过10240。 取值范围: 不涉及 默认取值: 不涉及 |
alpha.cce/NodeImageID |
否 |
String |
参数解释: 如果创建裸金属节点,需要使用自定义镜像时用此参数。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
nicMultiqueue |
否 |
String |
参数解释:
"[{\"queue\":4}]" 包含如下字段:
约束限制: 仅在turbo集群的BMS节点时,该字段才可配置。 取值范围: 不涉及 默认取值: 不涉及 |
nicThreshold |
否 |
String |
参数解释:
"0.3:0.6"
约束限制:
取值范围: 取值范围:[0.0, 1.0]; 一位小数; 低水位 <= 高水位 默认取值: 不涉及 |
chargingMode |
否 |
Integer |
参数解释: 节点的计费模式。已废弃,请使用NodeSpec中的billingMode字段。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
agency_name |
否 |
String |
参数解释: 委托的名称。 委托是由租户管理员在统一身份认证服务(Identity and Access Management,IAM)上创建的,可以为CCE节点提供访问云服务器的临时凭证。 作为响应参数仅在创建节点传入时返回该字段。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
kubeReservedMem |
否 |
Integer |
参数解释: 节点内存预留,Kubernetes相关组件预留值。随节点规格变动,具体请参见节点预留资源策略说明。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
systemReservedMem |
否 |
Integer |
参数解释: 节点内存预留,系统组件预留值。随节点规格变动,具体请参见节点预留资源策略说明。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
init-node-password |
否 |
String |
参数解释: 节点密码,作为响应参数时,固定展示星号。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
type |
是 |
String |
参数解释: K8S节点名称配置类型, 默认为“privateIp”。 约束限制:
取值范围:
默认取值: 默认为“privateIp”。 |
响应参数
状态码: 201
参数 |
参数类型 |
描述 |
---|---|---|
kind |
String |
API类型,固定值“Node”,该值不可修改。 |
apiVersion |
String |
API版本,固定值“v3”,该值不可修改。 |
metadata |
NodeMetadata object |
metadata是节点对象的元数据定义,是集合类的元素类型,包含一组由不同名称定义的属性。 |
spec |
NodeSpec object |
spec是集合类的元素类型,用户对需要管理的节点对象进行详细描述的主体部分都在spec中给出。系统通过spec的描述来创建或更新对象。 |
status |
NodeStatus object |
节点状态,动态记录,创建或修改时指定无意义. |
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
节点名称
说明:
命名规则:以小写字母开头,由小写字母、数字、中划线(-)、点(.)组成,长度范围1-56位,且不能以中划线(-)结尾。 若name未指定或指定为空字符串,则按照默认规则生成节点名称。默认规则为:“集群名称-随机字符串”,若集群名称过长,则只取前36个字符。 若节点数量(count)大于1时,则按照默认规则会在用户输入的节点名称末尾添加随机字符串。默认规则为:“用户输入名称-随机字符串”,若用户输入的节点名称长度范围超过50位时,系统截取前50位,并在末尾添加随机字符串。 |
uid |
String |
节点ID,资源唯一标识,创建成功后自动生成,填写无效 |
labels |
Map<String,String> |
CCE自有节点标签,非Kubernetes原生labels。 标签可用于选择对象并查找满足某些条件的对象集合,格式为key/value键值对。 示例: "labels": { "key" : "value" } |
annotations |
Map<String,String> |
CCE自有节点注解,非Kubernetes原生annotations,格式为key/value键值对。 示例: "annotations": { "key1" : "value1", "key2" : "value2" }
说明:
|
creationTimestamp |
String |
创建时间,创建成功后自动生成,填写无效 |
updateTimestamp |
String |
更新时间,创建成功后自动生成,填写无效 |
ownerReference |
ownerReference object |
属主对象 |
参数 |
参数类型 |
描述 |
---|---|---|
flavor |
String |
参数解释: 节点的规格,CCE支持的节点规格请参考节点规格说明获取。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
az |
String |
参数解释: 待创建节点所在的可用区,需要指定可用区(AZ)的名称,通过api创建节点不支持随机可用区。 CCE支持的可用区请参考地区和终端节点。 约束限制: 创建节点池并设置伸缩组时,该参数不允许填写为random。 取值范围: 不涉及 默认取值: 不涉及 |
os |
String |
参数解释: 节点的操作系统类型。具体支持的操作系统请参见节点操作系统说明。 约束限制:
取值范围: 不涉及 默认取值: 不涉及 |
login |
Login object |
参数解释: 节点的登录方式。密钥对和密码登录方式二者必选其一。 约束限制: 更新节点池时,不支持修改此参数。 |
rootVolume |
Volume object |
参数解释: 节点的磁盘信息。 约束限制: 不涉及 |
dataVolumes |
Array of Volume objects |
参数解释: 节点的数据盘参数。针对专属云节点,参数解释与rootVolume一致。 约束限制: 磁盘挂载上限为虚拟机不超过16块,裸金属不超过10块。在此基础上还受限于虚拟机/裸金属规格可挂载磁盘数上限。(目前支持通过控制台和API为CCE节点添加多块数据盘)。 如果数据盘正供容器运行时和Kubelet组件使用,则不可被卸载,否则将导致节点不可用。 |
storage |
Storage object |
参数解释: 磁盘初始化配置管理参数。 该参数配置逻辑较为复杂,详细说明请参见节点磁盘挂载。 约束限制:
|
publicIP |
NodePublicIP object |
参数解释: 节点的弹性公网IP。 约束限制: 创建节点池添加节点时不支持该参数。 |
nodeNicSpec |
NodeNicSpec object |
参数解释: 节点的网卡信息。 约束限制: 不涉及 |
count |
Integer |
参数解释: 批量创建时节点的个数。 约束限制: 作用于节点池时该项可以不填写。 取值范围: 必须为大于等于1,小于等于最大限额的正整数。 默认取值: 不涉及 |
billingMode |
Integer |
参数解释: 节点的计费模式。 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
taints |
Array of Taint objects |
参数解释: 支持给创建出来的节点加Taints来设置反亲和性。每条Taints包含以下3个参数:
示例: "taints": [{ "key": "status", "value": "unavailable", "effect": "NoSchedule" }, { "key": "looks", "value": "bad", "effect": "NoSchedule" }] 约束限制: taints配置不超过20条。 |
k8sTags |
Map<String,String> |
参数解释: 格式为key/value键值对。
示例: "k8sTags": { "key": "value" } 约束限制: 键值对个数不超过20条。 |
ecsGroupId |
String |
参数解释: 云服务器组ID,若指定,将节点创建在该云服务器组下。 约束限制: 创建节点池时该配置不会生效,若要保持节点池中的节点都在同一个云服务器组内,请在节点池 nodeManagement 字段中配置。 取值范围: 不涉及 默认取值: 不涉及 |
dedicatedHostId |
String |
参数解释: 指定DeH主机的ID,将节点调度到自己的DeH上。 约束限制: 创建节点池添加节点时不支持该参数。 |
userTags |
Array of UserTag objects |
参数解释: 云服务器标签(资源标签)。字段使用场景:在节点创建场景下,支持指定初始值,查询时不返回该字段;在节点池场景下,其中节点模板中支持指定初始值,查询时支持返回该字段;在其余场景下,查询时都不会返回该字段。 约束限制:
|
runtime |
Runtime object |
参数解释: 容器运行时, 默认场景:
约束限制: 不涉及 |
initializedConditions |
Array of strings |
参数解释: 自定义初始化标记,默认值为空。 CCE节点在初始化完成之前,会打上初始化未完成污点(node.cloudprovider.kubernetes.io/uninitialized)防止pod调度到节点上。用户在创建节点时,可以通过设置initializedConditions参数,控制污点的移除时间(默认不设置超时时间)。 使用示例如下:
status: conditions: - type: CCEInitial status: 'True' - type: CustomedInitial status: 'True'
约束限制:
|
extendParam |
NodeExtendParam object |
参数解释: 创建节点时的扩展参数。 约束限制: 不涉及 |
hostnameConfig |
HostnameConfig object |
参数解释: K8S节点名称配置参数。 约束限制: 支持的集群版本为v1.23.6-r0到v1.25或者v1.25.2-r0及以上。 |
serverEnterpriseProjectID |
String |
参数解释: 服务器企业项目ID。CCE服务不实现EPS相关特性,该字段仅用于同步服务器企业项目ID。 约束限制: 创建节点/节点池场景:可指定已存在企业项目,当取值为空时,该字段继承集群企业项目属性。 更新节点池场景:配置修改后仅会对新增节点的服务器生效,存量节点需前往EPS界面迁移。 取值范围: 不涉及 默认取值: 如果更新时不指定值,不会更新该字段。 当该字段为空时,返回集群企业项目。 |
参数 |
参数类型 |
描述 |
---|---|---|
sshKey |
String |
参数解释: 选择密钥对方式登录时的密钥对名称。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
userPassword |
UserPassword object |
参数解释: 选择密码方式登录时的账号密码信息,之后可通过此账号密码登录节点。 约束限制: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
username |
String |
参数解释: 登录账号,默认为“root”。 约束限制: 不涉及 取值范围: 不涉及 默认取值: root。 |
password |
String |
参数解释: 登录密码,若创建节点通过用户名密码方式,即使用该字段,则响应体中该字段作屏蔽展示。 约束限制: 创建节点时password字段需要加盐加密,具体方法请参见创建节点时password字段加盐加密。 取值范围: 密码复杂度要求:
默认取值: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
size |
Integer |
参数解释: 磁盘大小,单位为GiB。 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
volumetype |
String |
参数解释: 磁盘类型,取值请参见创建云服务器 中“root_volume字段数据结构说明”。 约束限制: 不涉及 取值范围:
说明:
了解不同磁盘类型的详细信息,链接请参见磁盘类型及性能介绍。 默认取值: 不涉及 |
iops |
Integer |
参数解释: 给云硬盘配置iops。 约束限制:
取值范围: 了解GPSSD2、ESSD2类型的iops大小范围,请参见云硬盘类型及性能介绍里面的云硬盘性能数据表。 默认取值: 不涉及 |
throughput |
Integer |
参数解释: 给云硬盘配置吞吐量,单位是MiB/s。 约束限制:
取值范围: 了解GPSSD2类型的吞吐量大小范围,请参见云硬盘类型及性能介绍里面的云硬盘性能数据表。 默认取值: 不涉及 |
extendParam |
Map<String,Object> |
参数解释: 磁盘扩展参数,取值请参见创建云服务器中“extendparam”参数的描述。 链接请参见创建磁盘的extendparam字段数据结构说明。 约束限制: 不涉及 |
cluster_id |
String |
参数解释: 云服务器系统盘对应的存储池的ID。仅用作专属云集群,专属分布式存储DSS的存储池ID,即dssPoolID。 获取方法请参见获取单个专属分布式存储池详情中“表3 响应参数”的ID字段。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
cluster_type |
String |
参数解释: 云服务器系统盘对应的磁盘存储类型。 约束限制: 不涉及 取值范围: 仅用作专属云集群,固定取值为dss。 默认取值: 不涉及 |
hw:passthrough |
Boolean |
参数解释:
约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
metadata |
VolumeMetadata object |
参数解释: 云硬盘加密信息,仅在创建节点系统盘或数据盘需加密时须填写。 约束限制: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
__system__encrypted |
String |
参数解释: 表示云硬盘加密功能的字段,'0'代表不加密,'1'代表加密。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 该字段不存在时,云硬盘默认为不加密。 |
__system__cmkid |
String |
参数解释: 用户主密钥ID,是metadata中的表示加密功能的字段,与__system__encrypted配合使用。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
storageSelectors |
Array of StorageSelectors objects |
参数解释: 磁盘选择,根据matchLabels和storageType对匹配的磁盘进行管理。磁盘匹配存在先后顺序,靠前的匹配规则优先匹配。 约束限制: 不涉及 |
storageGroups |
Array of StorageGroups objects |
参数解释: 由多个存储设备组成的存储组,用于各个存储空间的划分。 约束限制: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
参数解释: selector的名字,作为storageGroup中selectorNames的索引。 约束限制: 各个selector间的名字不能重复。 取值范围: 不涉及 默认取值: 不涉及 |
storageType |
String |
参数解释: 存储类型。 约束限制:
取值范围: 当前仅支持evs(云硬盘)、local(本地盘)和system(系统盘)。 默认取值: 不涉及 |
matchLabels |
matchLabels object |
参数解释: evs盘的匹配字段。 约束限制: storageType设置为system(系统盘)时,无需设置此字段。 取值范围: 支持DataVolume中的size、volumeType、iops、throughput、metadataEncrypted、metadataCmkid、count字段。 默认取值: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
size |
String |
参数解释: 匹配的磁盘大小,不填则无磁盘大小限制。例如:100。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
volumeType |
String |
参数解释: 云硬盘类型。 约束限制: 不涉及 取值范围: 目前支持SSD\GPSSD\SAS\ESSD\SATA等,不填则无云硬盘类型限制。 默认取值: 不涉及 |
iops |
String |
参数解释: 匹配的磁盘iops大小,不填则无磁盘iops大小限制。当需要选择GPSSD2或ESSD2类型磁盘时,配置iops来准确选择磁盘。例如:3000。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
throughput |
String |
参数解释: 匹配的磁盘吞吐量大小,不填则无磁盘吞吐量大小限制。当需要选择GPSSD2类型磁盘时,配置throughput来准确选择磁盘。例如:125。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
metadataEncrypted |
String |
参数解释: 磁盘加密标识符,0代表不加密,1代表加密,不填则无磁盘加密标识符限制。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
metadataCmkid |
String |
参数解释: 加密磁盘的用户主密钥ID,长度为36字节的字符串,不填则无磁盘密钥ID限制。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
count |
String |
参数解释: 磁盘选择个数,不填则选择所有此类磁盘。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
参数解释: storageGroups的名字,作为虚拟存储组的名字,因此各个group名字不能重复。 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
cceManaged |
Boolean |
参数解释: k8s及runtime所属存储空间。有且仅有一个group被设置为true,不填默认false。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
selectorNames |
Array of strings |
参数解释: 对应storageSelectors中的name,一个group可选择多个selector;但一个selector只能被一个group选择。 约束限制: 系统组件无法分别存储于系统盘与数据盘中,因此选择selector的type为system时,group只能选择一个selector。 |
virtualSpaces |
Array of VirtualSpace objects |
参数解释: group中空间配置的详细管理。 约束限制: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
参数解释: virtualSpace的名称,当前仅支持四种类型:share、kubernetes、runtime、user。 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
size |
String |
参数解释: virtualSpace的大小,仅支持整数百分比。例如:90%。 约束限制: 不涉及 取值范围: 该参数取值范围[10-90],一个group中所有virtualSpace的百分比之和不得超过100% 默认取值: 不涉及 |
lvmConfig |
LVMConfig object |
参数解释: lvm配置管理,适用于share、kubernetes和user空间配置。 约束限制: 一个virtualSpace仅支持一个config配置。 |
runtimeConfig |
RuntimeConfig object |
参数解释: runtime配置管理,适用于运行时空间配置。 约束限制: 一个virtualSpace仅支持一个config配置。 |
参数 |
参数类型 |
描述 |
---|---|---|
lvType |
String |
参数解释: LVM写入模式:linear、striped。linear:线性模式;striped:条带模式,使用多块磁盘组成条带模式,能够提升磁盘性能。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
path |
String |
参数解释: 磁盘挂载路径,仅在用户配置中生效,支持包含:数字、大小写字母、点、中划线、下划线的绝对路径。 约束限制: 挂载路径请填写业务目录路径,不可设置为空或根目录等操作系统关键路径。不可填写的操作系统关键路径如下: /, /home, /home/, /bin, /bin/, /lib, /lib/, /root, /root/, /boot, /boot/, /dev, /dev/, /etc, /etc/, /lost+found, /lost+found/, /mnt, /mnt/, /proc, /proc/,/sbin, /sbin/, /srv, /srv/, /tmp, /tmp/, /var, /var/, /media, /media/, /opt, /opt/, /selinux, /selinux/, /sys, /sys/, /usr, /usr/, /opt/cloud/, /mnt/paas/, /home/paas/, /var/paas/, /var/lib/, /var/script/ 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
lvType |
String |
参数解释: LVM写入模式:linear、striped。linear:线性模式;striped:条带模式,使用多块磁盘组成条带模式,能够提升磁盘性能。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
ids |
Array of strings |
参数解释: 已有的弹性IP的ID列表。 约束限制:
|
count |
Integer |
参数解释: 要动态创建的弹性IP个数。 约束限制: count参数与eip参数必须同时配置。 取值范围: 不涉及 默认取值: 不涉及 |
eip |
NodeEIPSpec object |
参数解释: 弹性IP参数。 约束限制: 创建节点池时不支持此参数 |
参数 |
参数类型 |
描述 |
---|---|---|
iptype |
String |
参数解释: 弹性IP类型,取值请参见申请EIP接口中publicip.type说明。 链接请参见申请EIP。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
bandwidth |
NodeBandwidth object |
参数解释: 弹性IP的带宽参数。 约束限制: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
chargemode |
String |
参数解释: 带宽的计费类型。
说明:
约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
size |
Integer |
参数解释: 带宽大小,取值请参见申请EIP接口中bandwidth.size说明。 链接请参见申请EIP。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
sharetype |
String |
参数解释: 带宽的共享类型,共享类型枚举:PER,表示独享,目前仅支持独享。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
primaryNic |
NicSpec object |
参数解释: 主网卡的描述信息。 约束限制: 不涉及 |
extNics |
Array of NicSpec objects |
参数解释: 扩展网卡。 约束限制: 创建节点池添加节点时不支持该参数。 |
参数 |
参数类型 |
描述 |
---|---|---|
subnetId |
String |
参数解释: 网卡所在子网的网络ID。若节点池同时配置了subnetList,则节点池扩容子网以subnetList字段为准。 约束限制:
取值范围: 不涉及 默认取值: 不涉及 |
fixedIps |
Array of strings |
参数解释: 主网卡的IP将通过fixedIps指定,数量不得大于创建的节点数。 约束限制: fixedIps或ipBlock同时只能指定一个。扩展网卡不支持指定fiexdIps。 |
ipBlock |
String |
参数解释: 主网卡的IP段的CIDR格式,创建的节点IP将属于该IP段内。 约束限制: fixedIps或ipBlock同时只能指定一个。 取值范围: 不涉及 默认取值: 不涉及 |
subnetList |
Array of strings |
参数解释: 网卡所在子网的网络ID列表,支持节点池配置多个子网。 约束限制: 最多支持配置20个子网。 |
参数 |
参数类型 |
描述 |
---|---|---|
key |
String |
参数解释: 键。 约束限制: 必须以字母或数字开头和结尾,可以包含字母、数字、连字符、下划线和点,最长63个字符。 取值范围: 不涉及 默认取值: 不涉及 |
value |
String |
参数解释: 值。 约束限制: 必须以字母或数字开头和结尾,可以包含字母、数字、连字符、下划线和点,最长63个字符。 取值范围: 不涉及 默认取值: 不涉及 |
effect |
String |
参数解释: 作用效果。 约束限制: 不涉及 取值范围: 只可选NoSchedule,PreferNoSchedule或NoExecute。 默认取值: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
key |
String |
参数解释: 云服务器标签的键。 约束限制: 不得以"CCE-"或"__type_baremetal"开头。 取值范围: 标签键只能包含大写字母.小写字母、数字和特殊字符(-_)以及Unicode字符,长度不超过36个字符。 默认取值: 不涉及 |
value |
String |
参数解释: 云服务器标签的值。 约束限制: 不涉及 取值范围: 标签值只能包含大写字母.小写字母、数字和特殊字符(-_)以及Unicode字符,长度不超过43个字符。 默认取值: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
参数解释: 容器运行时。 约束限制: 不涉及 取值范围: 不涉及 默认取值:
|
参数 |
参数类型 |
描述 |
---|---|---|
ecs:performancetype |
String |
参数解释: 云服务器规格的分类。响应中会返回此字段。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
orderID |
String |
参数解释: 订单ID。 约束限制: 节点付费类型为自动付费包周期类型时,响应中会返回此字段(仅创建场景涉及)。 取值范围: 不涉及 默认取值: 不涉及 |
productID |
String |
参数解释: 产品ID。 约束限制: 节点付费类型为自动付费包周期类型时,响应中会返回此字段。 取值范围: 不涉及 默认取值: 不涉及 |
maxPods |
Integer |
参数解释: 节点最大允许创建的实例数(Pod),该数量包含系统默认实例。 该设置的目的为防止节点因管理过多实例而负载过重,请根据您的业务需要进行设置。 节点可以创建多少个Pod,受多个参数影响,具体请参见节点可创建的最大Pod数量说明。 约束限制: 不涉及 取值范围: 取值范围为16~256。 默认取值: 不涉及 |
periodType |
String |
参数解释: 订购周期类型。 约束限制:
取值范围:
默认取值: 不涉及 |
periodNum |
Integer |
参数解释: 订购周期数。 约束限制:
取值范围:
默认取值: 不涉及 |
isAutoRenew |
String |
参数解释: 是否自动续订。 约束限制: billingMode为1或2(已废弃)时生效,不填写此参数时默认不会自动续费。 取值范围:
默认取值: 不涉及 |
isAutoPay |
String |
参数解释: 下单订购后,是否自动从客户的账户中支付,而不需要客户手动去进行支付。 约束限制: billingMode为1或2(已废弃)时生效,billingMode为1时不填写此参数时默认不会自动扣款。(已废弃:billingMode为2时不填写此参数时默认会自动扣款)。 取值范围:
默认取值: 不涉及 |
DockerLVMConfigOverride |
String |
参数解释: Docker数据盘配置项(已废弃,请使用storage字段)。默认配置示例如下: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" 默认配置在无VD类型磁盘时,会由于数据盘查找失败而出错,请根据真实盘符类型填写diskType。 约束限制: 不涉及 取值范围: 包含如下字段:
默认取值: 不涉及 |
dockerBaseSize |
Integer |
参数解释: 节点上单容器的可用磁盘空间大小(已废弃,请优先使用containerBaseSize参数),单位G。 CCE节点容器运行时空间配置请参考数据盘空间分配说明。 约束限制:
取值范围: 10-500。 默认取值: 不配置该值或值为0时将使用默认值:
|
containerBaseSize |
Integer |
参数解释: 节点上单容器的可用磁盘空间大小,单位G。 CCE节点容器运行时空间配置请参考数据盘空间分配说明。 约束限制:
取值范围: 10-500。 默认取值: 不配置该值或值为0时将使用默认值:
|
publicKey |
String |
参数解释: 节点的公钥。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
alpha.cce/preInstall |
String |
参数解释: 安装前执行脚本。 输入的值需要经过Base64编码,方法如下: echo -n "待编码内容" | base64 约束限制: 安装前/后执行脚本统一计算字符,转码后的字符总数不能超过10240。 取值范围: 不涉及 默认取值: 不涉及 |
alpha.cce/postInstall |
String |
参数解释: 安装后执行脚本。 输入的值需要经过Base64编码,方法如下: echo -n "待编码内容" | base64 约束限制: 安装前/后执行脚本统一计算字符,转码后的字符总数不能超过10240。 取值范围: 不涉及 默认取值: 不涉及 |
alpha.cce/NodeImageID |
String |
参数解释: 如果创建裸金属节点,需要使用自定义镜像时用此参数。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
nicMultiqueue |
String |
参数解释:
"[{\"queue\":4}]" 包含如下字段:
约束限制: 仅在turbo集群的BMS节点时,该字段才可配置。 取值范围: 不涉及 默认取值: 不涉及 |
nicThreshold |
String |
参数解释:
"0.3:0.6"
约束限制:
取值范围: 取值范围:[0.0, 1.0]; 一位小数; 低水位 <= 高水位 默认取值: 不涉及 |
chargingMode |
Integer |
参数解释: 节点的计费模式。已废弃,请使用NodeSpec中的billingMode字段。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
agency_name |
String |
参数解释: 委托的名称。 委托是由租户管理员在统一身份认证服务(Identity and Access Management,IAM)上创建的,可以为CCE节点提供访问云服务器的临时凭证。 作为响应参数仅在创建节点传入时返回该字段。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
kubeReservedMem |
Integer |
参数解释: 节点内存预留,Kubernetes相关组件预留值。随节点规格变动,具体请参见节点预留资源策略说明。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
systemReservedMem |
Integer |
参数解释: 节点内存预留,系统组件预留值。随节点规格变动,具体请参见节点预留资源策略说明。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
init-node-password |
String |
参数解释: 节点密码,作为响应参数时,固定展示星号。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
参数类型 |
描述 |
---|---|---|
type |
String |
参数解释: K8S节点名称配置类型, 默认为“privateIp”。 约束限制:
取值范围:
默认取值: 默认为“privateIp”。 |
参数 |
参数类型 |
描述 |
---|---|---|
phase |
String |
节点状态:节点资源生命周期管理(如安装卸载等)状态和集群内k8s node状态的综合体现,取值如下
|
lastProbeTime |
String |
节点最近一次状态检查时间。集群处于异常、冻结或者中间态(例如创建中)时,节点的状态检查动作可能受影响。检查时间超过5分的节点状态不具有参考意义。 |
jobID |
String |
创建或删除时的任务ID。 |
serverId |
String |
底层云服务器或裸金属节点ID。 |
privateIP |
String |
节点主网卡私有网段IP地址。 |
privateIPv6IP |
String |
节点主网卡私有网段IPv6地址。 |
publicIP |
String |
节点弹性公网IP地址。如果ECS的数据没有实时同步,可在界面上通过“同步节点信息”手动进行更新。 |
deleteStatus |
DeleteStatus object |
删除资源时表示资源删除状态 |
configurationUpToDate |
Boolean |
节点配置是否与所属节点池的节点模板最新配置一致。当更新节点池os或runtime后,该节点池中存量节点的os或runtime便与节点池存在差异,configurationUpToDate参数值即为false。重置节点后,存量节点的os和runtime与节点池配置保持一致,configurationUpToDate参数值即为true。 |
请求示例
-
创建一个包周期的节点,节点规格为2U4G,节点操作系统为EulerOS 2.5,使用Docker容器引擎。节点系统盘和数据盘大小分别为50GB和100GB,磁盘类型均为高IO。
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes { "kind" : "Node", "apiVersion" : "v3", "metadata" : { "name" : "test-67235" }, "spec" : { "flavor" : "c7.large.2", "az" : "******", "os" : "EulerOS 2.5", "dataVolumes" : [ { "size" : 100, "volumetype" : "SAS" } ], "billingMode" : 1, "extendParam" : { "maxPods" : 110, "periodType" : "month", "periodNum" : 1, "isAutoPay" : "false", "isAutoRenew" : "false" }, "nodeNicSpec" : { "primaryNic" : { "subnetId" : "ca964acf-8468-4735-8229-97940ef6c881" } }, "rootVolume" : { "size" : 50, "volumetype" : "SAS" }, "runtime" : { "name" : "docker" }, "login" : { "sshKey" : "KeyPair-001" }, "storage" : { "storageSelectors" : [ { "name" : "cceUse", "storageType" : "evs", "matchLabels" : { "size" : "100", "volumeType" : "SAS", "count" : "1" } } ], "storageGroups" : [ { "name" : "vgpaas", "selectorNames" : [ "cceUse" ], "cceManaged" : true, "virtualSpaces" : [ { "name" : "runtime", "size" : "90%" }, { "name" : "kubernetes", "size" : "10%" } ] } ] }, "count" : 1 } }
-
创建一个按需计费的节点,节点规格为2U4G,节点操作系统为EulerOS 2.5,使用Docker容器引擎。节点系统盘和数据盘大小分别为50GB和100GB,磁盘类型均为高IO。
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes { "kind" : "Node", "apiVersion" : "v3", "metadata" : { "name" : "test-83790" }, "spec" : { "flavor" : "c7.large.2", "az" : "******", "os" : "EulerOS 2.5", "dataVolumes" : [ { "size" : 100, "volumetype" : "SAS" } ], "billingMode" : 0, "extendParam" : { "maxPods" : 110 }, "nodeNicSpec" : { "primaryNic" : { "subnetId" : "ca964acf-8468-4735-8229-97940ef6c881" } }, "rootVolume" : { "size" : 50, "volumetype" : "SAS" }, "runtime" : { "name" : "docker" }, "login" : { "sshKey" : "KeyPair-001" }, "storage" : { "storageSelectors" : [ { "name" : "cceUse", "storageType" : "evs", "matchLabels" : { "size" : "100", "volumeType" : "SAS", "count" : "1" } } ], "storageGroups" : [ { "name" : "vgpaas", "selectorNames" : [ "cceUse" ], "cceManaged" : true, "virtualSpaces" : [ { "name" : "runtime", "size" : "90%" }, { "name" : "kubernetes", "size" : "10%" } ] } ] }, "count" : 1 } }
-
创建一个按需计费的节点,节点规格为2u4G,节点操作系统为HCE 2.0,使用Docker容器引擎。节点系统盘和数据盘大小分别为50GB和100GB,数据盘使用共享磁盘空间模式。
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes { "kind" : "Node", "apiVersion" : "v3", "metadata" : { "name" : "test-66909" }, "spec" : { "flavor" : "c7.large.2", "az" : "******", "os" : "Huawei Cloud EulerOS 2.0", "dataVolumes" : [ { "size" : 100, "volumetype" : "SAS" } ], "billingMode" : 0, "extendParam" : { "maxPods" : 110 }, "nodeNicSpec" : { "primaryNic" : { "subnetId" : "ca964acf-8468-4735-8229-97940ef6c881" } }, "rootVolume" : { "size" : 50, "volumetype" : "SAS" }, "runtime" : { "name" : "docker" }, "login" : { "sshKey" : "KeyPair-001" }, "storage" : { "storageSelectors" : [ { "name" : "cceUse", "storageType" : "evs", "matchLabels" : { "size" : "100", "volumeType" : "SAS", "count" : "1" } } ], "storageGroups" : [ { "name" : "vgpaas", "selectorNames" : [ "cceUse" ], "cceManaged" : true, "virtualSpaces" : [ { "name" : "share", "size" : "100%" } ] } ] }, "count" : 1 } }
响应示例
状态码: 201
表示在指定集群下创建节点的作业下发成功。
{ "kind" : "Node", "apiVersion" : "v3", "metadata" : { "name" : "test-83790", "uid" : "5ecfddfe-87db-11ec-b5e5-0255ac101514", "annotations" : { "jobid" : "5ec1518c-87db-11ec-b5e5-0255ac101514", "resourceJobId" : "5ed0d692-87db-11ec-b5e5-0255ac101514" } }, "spec" : { "flavor" : "c7.large.2", "az" : "******", "os" : "EulerOS 2.5", "login" : { "sshKey" : "KeyPair-001" }, "rootVolume" : { "volumetype" : "SAS", "size" : 50 }, "dataVolumes" : [ { "volumetype" : "SAS", "size" : 100 } ], "storage" : { "storageSelectors" : [ { "name" : "cceUse", "storageType" : "evs", "matchLabels" : { "count" : "1", "size" : "100", "volumeType" : "SAS" } } ], "storageGroups" : [ { "name" : "vgpaas", "cceManaged" : true, "selectorNames" : [ "cceUse" ], "virtualSpaces" : [ { "name" : "runtime", "size" : "90%" }, { "name" : "kubernetes", "size" : "10%" } ] } ] }, "publicIP" : { "eip" : { "bandwidth" : { } } }, "nodeNicSpec" : { "primaryNic" : { "subnetId" : "ca964acf-8468-4735-8229-97940ef6c881" } }, "count" : 1, "billingMode" : 0, "runtime" : { "name" : "docker" }, "extendParam" : { "chargingMode" : 0, "ecs:performancetype" : "computingv3", "init-node-password" : "******", "maxPods" : 110, "publicKey" : "" } }, "status" : { "jobID" : "5ec1518c-87db-11ec-b5e5-0255ac101514" } }
SDK代码示例
SDK代码示例如下。
-
创建一个包周期的节点,节点规格为2U4G,节点操作系统为EulerOS 2.5,使用Docker容器引擎。节点系统盘和数据盘大小分别为50GB和100GB,磁盘类型均为高IO。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.cce.v3.region.CceRegion; import com.huaweicloud.sdk.cce.v3.*; import com.huaweicloud.sdk.cce.v3.model.*; import com.huaweicloud.sdk.cce.v3.model.Runtime; import java.util.List; import java.util.ArrayList; public class CreateNodeSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); CceClient client = CceClient.newBuilder() .withCredential(auth) .withRegion(CceRegion.valueOf("<YOUR REGION>")) .build(); CreateNodeRequest request = new CreateNodeRequest(); request.withClusterId("{cluster_id}"); NodeCreateRequest body = new NodeCreateRequest(); NodeExtendParam extendParamSpec = new NodeExtendParam(); extendParamSpec.withMaxPods(110) .withPeriodType("month") .withPeriodNum(1) .withIsAutoRenew("false") .withIsAutoPay("false"); Runtime runtimeSpec = new Runtime(); runtimeSpec.withName(Runtime.NameEnum.fromValue("docker")); NicSpec primaryNicNodeNicSpec = new NicSpec(); primaryNicNodeNicSpec.withSubnetId("ca964acf-8468-4735-8229-97940ef6c881"); NodeNicSpec nodeNicSpecSpec = new NodeNicSpec(); nodeNicSpecSpec.withPrimaryNic(primaryNicNodeNicSpec); List<VirtualSpace> listStorageGroupsVirtualSpaces = new ArrayList<>(); listStorageGroupsVirtualSpaces.add( new VirtualSpace() .withName("runtime") .withSize("90%") ); listStorageGroupsVirtualSpaces.add( new VirtualSpace() .withName("kubernetes") .withSize("10%") ); List<String> listStorageGroupsSelectorNames = new ArrayList<>(); listStorageGroupsSelectorNames.add("cceUse"); List<StorageGroups> listStorageStorageGroups = new ArrayList<>(); listStorageStorageGroups.add( new StorageGroups() .withName("vgpaas") .withCceManaged(true) .withSelectorNames(listStorageGroupsSelectorNames) .withVirtualSpaces(listStorageGroupsVirtualSpaces) ); StorageSelectorsMatchLabels matchLabelsStorageSelectors = new StorageSelectorsMatchLabels(); matchLabelsStorageSelectors.withSize("100") .withVolumeType("SAS") .withCount("1"); List<StorageSelectors> listStorageStorageSelectors = new ArrayList<>(); listStorageStorageSelectors.add( new StorageSelectors() .withName("cceUse") .withStorageType("evs") .withMatchLabels(matchLabelsStorageSelectors) ); Storage storageSpec = new Storage(); storageSpec.withStorageSelectors(listStorageStorageSelectors) .withStorageGroups(listStorageStorageGroups); List<Volume> listSpecDataVolumes = new ArrayList<>(); listSpecDataVolumes.add( new Volume() .withSize(100) .withVolumetype("SAS") ); Volume rootVolumeSpec = new Volume(); rootVolumeSpec.withSize(50) .withVolumetype("SAS"); Login loginSpec = new Login(); loginSpec.withSshKey("KeyPair-001"); NodeSpec specbody = new NodeSpec(); specbody.withFlavor("c7.large.2") .withAz("******") .withOs("EulerOS 2.5") .withLogin(loginSpec) .withRootVolume(rootVolumeSpec) .withDataVolumes(listSpecDataVolumes) .withStorage(storageSpec) .withNodeNicSpec(nodeNicSpecSpec) .withCount(1) .withBillingMode(1) .withRuntime(runtimeSpec) .withExtendParam(extendParamSpec); NodeMetadata metadatabody = new NodeMetadata(); metadatabody.withName("test-67235"); body.withSpec(specbody); body.withMetadata(metadatabody); body.withApiVersion("v3"); body.withKind("Node"); request.withBody(body); try { CreateNodeResponse response = client.createNode(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } }
-
创建一个按需计费的节点,节点规格为2U4G,节点操作系统为EulerOS 2.5,使用Docker容器引擎。节点系统盘和数据盘大小分别为50GB和100GB,磁盘类型均为高IO。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.cce.v3.region.CceRegion; import com.huaweicloud.sdk.cce.v3.*; import com.huaweicloud.sdk.cce.v3.model.*; import com.huaweicloud.sdk.cce.v3.model.Runtime; import java.util.List; import java.util.ArrayList; public class CreateNodeSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); CceClient client = CceClient.newBuilder() .withCredential(auth) .withRegion(CceRegion.valueOf("<YOUR REGION>")) .build(); CreateNodeRequest request = new CreateNodeRequest(); request.withClusterId("{cluster_id}"); NodeCreateRequest body = new NodeCreateRequest(); NodeExtendParam extendParamSpec = new NodeExtendParam(); extendParamSpec.withMaxPods(110); Runtime runtimeSpec = new Runtime(); runtimeSpec.withName(Runtime.NameEnum.fromValue("docker")); NicSpec primaryNicNodeNicSpec = new NicSpec(); primaryNicNodeNicSpec.withSubnetId("ca964acf-8468-4735-8229-97940ef6c881"); NodeNicSpec nodeNicSpecSpec = new NodeNicSpec(); nodeNicSpecSpec.withPrimaryNic(primaryNicNodeNicSpec); List<VirtualSpace> listStorageGroupsVirtualSpaces = new ArrayList<>(); listStorageGroupsVirtualSpaces.add( new VirtualSpace() .withName("runtime") .withSize("90%") ); listStorageGroupsVirtualSpaces.add( new VirtualSpace() .withName("kubernetes") .withSize("10%") ); List<String> listStorageGroupsSelectorNames = new ArrayList<>(); listStorageGroupsSelectorNames.add("cceUse"); List<StorageGroups> listStorageStorageGroups = new ArrayList<>(); listStorageStorageGroups.add( new StorageGroups() .withName("vgpaas") .withCceManaged(true) .withSelectorNames(listStorageGroupsSelectorNames) .withVirtualSpaces(listStorageGroupsVirtualSpaces) ); StorageSelectorsMatchLabels matchLabelsStorageSelectors = new StorageSelectorsMatchLabels(); matchLabelsStorageSelectors.withSize("100") .withVolumeType("SAS") .withCount("1"); List<StorageSelectors> listStorageStorageSelectors = new ArrayList<>(); listStorageStorageSelectors.add( new StorageSelectors() .withName("cceUse") .withStorageType("evs") .withMatchLabels(matchLabelsStorageSelectors) ); Storage storageSpec = new Storage(); storageSpec.withStorageSelectors(listStorageStorageSelectors) .withStorageGroups(listStorageStorageGroups); List<Volume> listSpecDataVolumes = new ArrayList<>(); listSpecDataVolumes.add( new Volume() .withSize(100) .withVolumetype("SAS") ); Volume rootVolumeSpec = new Volume(); rootVolumeSpec.withSize(50) .withVolumetype("SAS"); Login loginSpec = new Login(); loginSpec.withSshKey("KeyPair-001"); NodeSpec specbody = new NodeSpec(); specbody.withFlavor("c7.large.2") .withAz("******") .withOs("EulerOS 2.5") .withLogin(loginSpec) .withRootVolume(rootVolumeSpec) .withDataVolumes(listSpecDataVolumes) .withStorage(storageSpec) .withNodeNicSpec(nodeNicSpecSpec) .withCount(1) .withBillingMode(0) .withRuntime(runtimeSpec) .withExtendParam(extendParamSpec); NodeMetadata metadatabody = new NodeMetadata(); metadatabody.withName("test-83790"); body.withSpec(specbody); body.withMetadata(metadatabody); body.withApiVersion("v3"); body.withKind("Node"); request.withBody(body); try { CreateNodeResponse response = client.createNode(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } }
-
创建一个按需计费的节点,节点规格为2u4G,节点操作系统为HCE 2.0,使用Docker容器引擎。节点系统盘和数据盘大小分别为50GB和100GB,数据盘使用共享磁盘空间模式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.cce.v3.region.CceRegion; import com.huaweicloud.sdk.cce.v3.*; import com.huaweicloud.sdk.cce.v3.model.*; import com.huaweicloud.sdk.cce.v3.model.Runtime; import java.util.List; import java.util.ArrayList; public class CreateNodeSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); CceClient client = CceClient.newBuilder() .withCredential(auth) .withRegion(CceRegion.valueOf("<YOUR REGION>")) .build(); CreateNodeRequest request = new CreateNodeRequest(); request.withClusterId("{cluster_id}"); NodeCreateRequest body = new NodeCreateRequest(); NodeExtendParam extendParamSpec = new NodeExtendParam(); extendParamSpec.withMaxPods(110); Runtime runtimeSpec = new Runtime(); runtimeSpec.withName(Runtime.NameEnum.fromValue("docker")); NicSpec primaryNicNodeNicSpec = new NicSpec(); primaryNicNodeNicSpec.withSubnetId("ca964acf-8468-4735-8229-97940ef6c881"); NodeNicSpec nodeNicSpecSpec = new NodeNicSpec(); nodeNicSpecSpec.withPrimaryNic(primaryNicNodeNicSpec); List<VirtualSpace> listStorageGroupsVirtualSpaces = new ArrayList<>(); listStorageGroupsVirtualSpaces.add( new VirtualSpace() .withName("share") .withSize("100%") ); List<String> listStorageGroupsSelectorNames = new ArrayList<>(); listStorageGroupsSelectorNames.add("cceUse"); List<StorageGroups> listStorageStorageGroups = new ArrayList<>(); listStorageStorageGroups.add( new StorageGroups() .withName("vgpaas") .withCceManaged(true) .withSelectorNames(listStorageGroupsSelectorNames) .withVirtualSpaces(listStorageGroupsVirtualSpaces) ); StorageSelectorsMatchLabels matchLabelsStorageSelectors = new StorageSelectorsMatchLabels(); matchLabelsStorageSelectors.withSize("100") .withVolumeType("SAS") .withCount("1"); List<StorageSelectors> listStorageStorageSelectors = new ArrayList<>(); listStorageStorageSelectors.add( new StorageSelectors() .withName("cceUse") .withStorageType("evs") .withMatchLabels(matchLabelsStorageSelectors) ); Storage storageSpec = new Storage(); storageSpec.withStorageSelectors(listStorageStorageSelectors) .withStorageGroups(listStorageStorageGroups); List<Volume> listSpecDataVolumes = new ArrayList<>(); listSpecDataVolumes.add( new Volume() .withSize(100) .withVolumetype("SAS") ); Volume rootVolumeSpec = new Volume(); rootVolumeSpec.withSize(50) .withVolumetype("SAS"); Login loginSpec = new Login(); loginSpec.withSshKey("KeyPair-001"); NodeSpec specbody = new NodeSpec(); specbody.withFlavor("c7.large.2") .withAz("******") .withOs("Huawei Cloud EulerOS 2.0") .withLogin(loginSpec) .withRootVolume(rootVolumeSpec) .withDataVolumes(listSpecDataVolumes) .withStorage(storageSpec) .withNodeNicSpec(nodeNicSpecSpec) .withCount(1) .withBillingMode(0) .withRuntime(runtimeSpec) .withExtendParam(extendParamSpec); NodeMetadata metadatabody = new NodeMetadata(); metadatabody.withName("test-66909"); body.withSpec(specbody); body.withMetadata(metadatabody); body.withApiVersion("v3"); body.withKind("Node"); request.withBody(body); try { CreateNodeResponse response = client.createNode(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } }
-
创建一个包周期的节点,节点规格为2U4G,节点操作系统为EulerOS 2.5,使用Docker容器引擎。节点系统盘和数据盘大小分别为50GB和100GB,磁盘类型均为高IO。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcce.v3.region.cce_region import CceRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcce.v3 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = CceClient.new_builder() \ .with_credentials(credentials) \ .with_region(CceRegion.value_of("<YOUR REGION>")) \ .build() try: request = CreateNodeRequest() request.cluster_id = "{cluster_id}" extendParamSpec = NodeExtendParam( max_pods=110, period_type="month", period_num=1, is_auto_renew="false", is_auto_pay="false" ) runtimeSpec = Runtime( name="docker" ) primaryNicNodeNicSpec = NicSpec( subnet_id="ca964acf-8468-4735-8229-97940ef6c881" ) nodeNicSpecSpec = NodeNicSpec( primary_nic=primaryNicNodeNicSpec ) listVirtualSpacesStorageGroups = [ VirtualSpace( name="runtime", size="90%" ), VirtualSpace( name="kubernetes", size="10%" ) ] listSelectorNamesStorageGroups = [ "cceUse" ] listStorageGroupsStorage = [ StorageGroups( name="vgpaas", cce_managed=True, selector_names=listSelectorNamesStorageGroups, virtual_spaces=listVirtualSpacesStorageGroups ) ] matchLabelsStorageSelectors = StorageSelectorsMatchLabels( size="100", volume_type="SAS", count="1" ) listStorageSelectorsStorage = [ StorageSelectors( name="cceUse", storage_type="evs", match_labels=matchLabelsStorageSelectors ) ] storageSpec = Storage( storage_selectors=listStorageSelectorsStorage, storage_groups=listStorageGroupsStorage ) listDataVolumesSpec = [ Volume( size=100, volumetype="SAS" ) ] rootVolumeSpec = Volume( size=50, volumetype="SAS" ) loginSpec = Login( ssh_key="KeyPair-001" ) specbody = NodeSpec( flavor="c7.large.2", az="******", os="EulerOS 2.5", login=loginSpec, root_volume=rootVolumeSpec, data_volumes=listDataVolumesSpec, storage=storageSpec, node_nic_spec=nodeNicSpecSpec, count=1, billing_mode=1, runtime=runtimeSpec, extend_param=extendParamSpec ) metadatabody = NodeMetadata( name="test-67235" ) request.body = NodeCreateRequest( spec=specbody, metadata=metadatabody, api_version="v3", kind="Node" ) response = client.create_node(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
-
创建一个按需计费的节点,节点规格为2U4G,节点操作系统为EulerOS 2.5,使用Docker容器引擎。节点系统盘和数据盘大小分别为50GB和100GB,磁盘类型均为高IO。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcce.v3.region.cce_region import CceRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcce.v3 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = CceClient.new_builder() \ .with_credentials(credentials) \ .with_region(CceRegion.value_of("<YOUR REGION>")) \ .build() try: request = CreateNodeRequest() request.cluster_id = "{cluster_id}" extendParamSpec = NodeExtendParam( max_pods=110 ) runtimeSpec = Runtime( name="docker" ) primaryNicNodeNicSpec = NicSpec( subnet_id="ca964acf-8468-4735-8229-97940ef6c881" ) nodeNicSpecSpec = NodeNicSpec( primary_nic=primaryNicNodeNicSpec ) listVirtualSpacesStorageGroups = [ VirtualSpace( name="runtime", size="90%" ), VirtualSpace( name="kubernetes", size="10%" ) ] listSelectorNamesStorageGroups = [ "cceUse" ] listStorageGroupsStorage = [ StorageGroups( name="vgpaas", cce_managed=True, selector_names=listSelectorNamesStorageGroups, virtual_spaces=listVirtualSpacesStorageGroups ) ] matchLabelsStorageSelectors = StorageSelectorsMatchLabels( size="100", volume_type="SAS", count="1" ) listStorageSelectorsStorage = [ StorageSelectors( name="cceUse", storage_type="evs", match_labels=matchLabelsStorageSelectors ) ] storageSpec = Storage( storage_selectors=listStorageSelectorsStorage, storage_groups=listStorageGroupsStorage ) listDataVolumesSpec = [ Volume( size=100, volumetype="SAS" ) ] rootVolumeSpec = Volume( size=50, volumetype="SAS" ) loginSpec = Login( ssh_key="KeyPair-001" ) specbody = NodeSpec( flavor="c7.large.2", az="******", os="EulerOS 2.5", login=loginSpec, root_volume=rootVolumeSpec, data_volumes=listDataVolumesSpec, storage=storageSpec, node_nic_spec=nodeNicSpecSpec, count=1, billing_mode=0, runtime=runtimeSpec, extend_param=extendParamSpec ) metadatabody = NodeMetadata( name="test-83790" ) request.body = NodeCreateRequest( spec=specbody, metadata=metadatabody, api_version="v3", kind="Node" ) response = client.create_node(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
-
创建一个按需计费的节点,节点规格为2u4G,节点操作系统为HCE 2.0,使用Docker容器引擎。节点系统盘和数据盘大小分别为50GB和100GB,数据盘使用共享磁盘空间模式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcce.v3.region.cce_region import CceRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcce.v3 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = CceClient.new_builder() \ .with_credentials(credentials) \ .with_region(CceRegion.value_of("<YOUR REGION>")) \ .build() try: request = CreateNodeRequest() request.cluster_id = "{cluster_id}" extendParamSpec = NodeExtendParam( max_pods=110 ) runtimeSpec = Runtime( name="docker" ) primaryNicNodeNicSpec = NicSpec( subnet_id="ca964acf-8468-4735-8229-97940ef6c881" ) nodeNicSpecSpec = NodeNicSpec( primary_nic=primaryNicNodeNicSpec ) listVirtualSpacesStorageGroups = [ VirtualSpace( name="share", size="100%" ) ] listSelectorNamesStorageGroups = [ "cceUse" ] listStorageGroupsStorage = [ StorageGroups( name="vgpaas", cce_managed=True, selector_names=listSelectorNamesStorageGroups, virtual_spaces=listVirtualSpacesStorageGroups ) ] matchLabelsStorageSelectors = StorageSelectorsMatchLabels( size="100", volume_type="SAS", count="1" ) listStorageSelectorsStorage = [ StorageSelectors( name="cceUse", storage_type="evs", match_labels=matchLabelsStorageSelectors ) ] storageSpec = Storage( storage_selectors=listStorageSelectorsStorage, storage_groups=listStorageGroupsStorage ) listDataVolumesSpec = [ Volume( size=100, volumetype="SAS" ) ] rootVolumeSpec = Volume( size=50, volumetype="SAS" ) loginSpec = Login( ssh_key="KeyPair-001" ) specbody = NodeSpec( flavor="c7.large.2", az="******", os="Huawei Cloud EulerOS 2.0", login=loginSpec, root_volume=rootVolumeSpec, data_volumes=listDataVolumesSpec, storage=storageSpec, node_nic_spec=nodeNicSpecSpec, count=1, billing_mode=0, runtime=runtimeSpec, extend_param=extendParamSpec ) metadatabody = NodeMetadata( name="test-66909" ) request.body = NodeCreateRequest( spec=specbody, metadata=metadatabody, api_version="v3", kind="Node" ) response = client.create_node(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg)
-
创建一个包周期的节点,节点规格为2U4G,节点操作系统为EulerOS 2.5,使用Docker容器引擎。节点系统盘和数据盘大小分别为50GB和100GB,磁盘类型均为高IO。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" cce "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := cce.NewCceClient( cce.CceClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.CreateNodeRequest{} request.ClusterId = "{cluster_id}" maxPodsExtendParam:= int32(110) periodTypeExtendParam:= "month" periodNumExtendParam:= int32(1) isAutoRenewExtendParam:= "false" isAutoPayExtendParam:= "false" extendParamSpec := &model.NodeExtendParam{ MaxPods: &maxPodsExtendParam, PeriodType: &periodTypeExtendParam, PeriodNum: &periodNumExtendParam, IsAutoRenew: &isAutoRenewExtendParam, IsAutoPay: &isAutoPayExtendParam, } nameRuntime:= model.GetRuntimeNameEnum().DOCKER runtimeSpec := &model.Runtime{ Name: &nameRuntime, } subnetIdPrimaryNic:= "ca964acf-8468-4735-8229-97940ef6c881" primaryNicNodeNicSpec := &model.NicSpec{ SubnetId: &subnetIdPrimaryNic, } nodeNicSpecSpec := &model.NodeNicSpec{ PrimaryNic: primaryNicNodeNicSpec, } var listVirtualSpacesStorageGroups = []model.VirtualSpace{ { Name: "runtime", Size: "90%", }, { Name: "kubernetes", Size: "10%", }, } var listSelectorNamesStorageGroups = []string{ "cceUse", } cceManagedStorageGroups:= true var listStorageGroupsStorage = []model.StorageGroups{ { Name: "vgpaas", CceManaged: &cceManagedStorageGroups, SelectorNames: listSelectorNamesStorageGroups, VirtualSpaces: listVirtualSpacesStorageGroups, }, } sizeMatchLabels:= "100" volumeTypeMatchLabels:= "SAS" countMatchLabels:= "1" matchLabelsStorageSelectors := &model.StorageSelectorsMatchLabels{ Size: &sizeMatchLabels, VolumeType: &volumeTypeMatchLabels, Count: &countMatchLabels, } var listStorageSelectorsStorage = []model.StorageSelectors{ { Name: "cceUse", StorageType: "evs", MatchLabels: matchLabelsStorageSelectors, }, } storageSpec := &model.Storage{ StorageSelectors: listStorageSelectorsStorage, StorageGroups: listStorageGroupsStorage, } var listDataVolumesSpec = []model.Volume{ { Size: int32(100), Volumetype: "SAS", }, } rootVolumeSpec := &model.Volume{ Size: int32(50), Volumetype: "SAS", } sshKeyLogin:= "KeyPair-001" loginSpec := &model.Login{ SshKey: &sshKeyLogin, } osSpec:= "EulerOS 2.5" countSpec:= int32(1) billingModeSpec:= int32(1) specbody := &model.NodeSpec{ Flavor: "c7.large.2", Az: "******", Os: &osSpec, Login: loginSpec, RootVolume: rootVolumeSpec, DataVolumes: listDataVolumesSpec, Storage: storageSpec, NodeNicSpec: nodeNicSpecSpec, Count: &countSpec, BillingMode: &billingModeSpec, Runtime: runtimeSpec, ExtendParam: extendParamSpec, } nameMetadata:= "test-67235" metadatabody := &model.NodeMetadata{ Name: &nameMetadata, } request.Body = &model.NodeCreateRequest{ Spec: specbody, Metadata: metadatabody, ApiVersion: "v3", Kind: "Node", } response, err := client.CreateNode(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
-
创建一个按需计费的节点,节点规格为2U4G,节点操作系统为EulerOS 2.5,使用Docker容器引擎。节点系统盘和数据盘大小分别为50GB和100GB,磁盘类型均为高IO。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" cce "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := cce.NewCceClient( cce.CceClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.CreateNodeRequest{} request.ClusterId = "{cluster_id}" maxPodsExtendParam:= int32(110) extendParamSpec := &model.NodeExtendParam{ MaxPods: &maxPodsExtendParam, } nameRuntime:= model.GetRuntimeNameEnum().DOCKER runtimeSpec := &model.Runtime{ Name: &nameRuntime, } subnetIdPrimaryNic:= "ca964acf-8468-4735-8229-97940ef6c881" primaryNicNodeNicSpec := &model.NicSpec{ SubnetId: &subnetIdPrimaryNic, } nodeNicSpecSpec := &model.NodeNicSpec{ PrimaryNic: primaryNicNodeNicSpec, } var listVirtualSpacesStorageGroups = []model.VirtualSpace{ { Name: "runtime", Size: "90%", }, { Name: "kubernetes", Size: "10%", }, } var listSelectorNamesStorageGroups = []string{ "cceUse", } cceManagedStorageGroups:= true var listStorageGroupsStorage = []model.StorageGroups{ { Name: "vgpaas", CceManaged: &cceManagedStorageGroups, SelectorNames: listSelectorNamesStorageGroups, VirtualSpaces: listVirtualSpacesStorageGroups, }, } sizeMatchLabels:= "100" volumeTypeMatchLabels:= "SAS" countMatchLabels:= "1" matchLabelsStorageSelectors := &model.StorageSelectorsMatchLabels{ Size: &sizeMatchLabels, VolumeType: &volumeTypeMatchLabels, Count: &countMatchLabels, } var listStorageSelectorsStorage = []model.StorageSelectors{ { Name: "cceUse", StorageType: "evs", MatchLabels: matchLabelsStorageSelectors, }, } storageSpec := &model.Storage{ StorageSelectors: listStorageSelectorsStorage, StorageGroups: listStorageGroupsStorage, } var listDataVolumesSpec = []model.Volume{ { Size: int32(100), Volumetype: "SAS", }, } rootVolumeSpec := &model.Volume{ Size: int32(50), Volumetype: "SAS", } sshKeyLogin:= "KeyPair-001" loginSpec := &model.Login{ SshKey: &sshKeyLogin, } osSpec:= "EulerOS 2.5" countSpec:= int32(1) billingModeSpec:= int32(0) specbody := &model.NodeSpec{ Flavor: "c7.large.2", Az: "******", Os: &osSpec, Login: loginSpec, RootVolume: rootVolumeSpec, DataVolumes: listDataVolumesSpec, Storage: storageSpec, NodeNicSpec: nodeNicSpecSpec, Count: &countSpec, BillingMode: &billingModeSpec, Runtime: runtimeSpec, ExtendParam: extendParamSpec, } nameMetadata:= "test-83790" metadatabody := &model.NodeMetadata{ Name: &nameMetadata, } request.Body = &model.NodeCreateRequest{ Spec: specbody, Metadata: metadatabody, ApiVersion: "v3", Kind: "Node", } response, err := client.CreateNode(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
-
创建一个按需计费的节点,节点规格为2u4G,节点操作系统为HCE 2.0,使用Docker容器引擎。节点系统盘和数据盘大小分别为50GB和100GB,数据盘使用共享磁盘空间模式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" cce "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := cce.NewCceClient( cce.CceClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.CreateNodeRequest{} request.ClusterId = "{cluster_id}" maxPodsExtendParam:= int32(110) extendParamSpec := &model.NodeExtendParam{ MaxPods: &maxPodsExtendParam, } nameRuntime:= model.GetRuntimeNameEnum().DOCKER runtimeSpec := &model.Runtime{ Name: &nameRuntime, } subnetIdPrimaryNic:= "ca964acf-8468-4735-8229-97940ef6c881" primaryNicNodeNicSpec := &model.NicSpec{ SubnetId: &subnetIdPrimaryNic, } nodeNicSpecSpec := &model.NodeNicSpec{ PrimaryNic: primaryNicNodeNicSpec, } var listVirtualSpacesStorageGroups = []model.VirtualSpace{ { Name: "share", Size: "100%", }, } var listSelectorNamesStorageGroups = []string{ "cceUse", } cceManagedStorageGroups:= true var listStorageGroupsStorage = []model.StorageGroups{ { Name: "vgpaas", CceManaged: &cceManagedStorageGroups, SelectorNames: listSelectorNamesStorageGroups, VirtualSpaces: listVirtualSpacesStorageGroups, }, } sizeMatchLabels:= "100" volumeTypeMatchLabels:= "SAS" countMatchLabels:= "1" matchLabelsStorageSelectors := &model.StorageSelectorsMatchLabels{ Size: &sizeMatchLabels, VolumeType: &volumeTypeMatchLabels, Count: &countMatchLabels, } var listStorageSelectorsStorage = []model.StorageSelectors{ { Name: "cceUse", StorageType: "evs", MatchLabels: matchLabelsStorageSelectors, }, } storageSpec := &model.Storage{ StorageSelectors: listStorageSelectorsStorage, StorageGroups: listStorageGroupsStorage, } var listDataVolumesSpec = []model.Volume{ { Size: int32(100), Volumetype: "SAS", }, } rootVolumeSpec := &model.Volume{ Size: int32(50), Volumetype: "SAS", } sshKeyLogin:= "KeyPair-001" loginSpec := &model.Login{ SshKey: &sshKeyLogin, } osSpec:= "Huawei Cloud EulerOS 2.0" countSpec:= int32(1) billingModeSpec:= int32(0) specbody := &model.NodeSpec{ Flavor: "c7.large.2", Az: "******", Os: &osSpec, Login: loginSpec, RootVolume: rootVolumeSpec, DataVolumes: listDataVolumesSpec, Storage: storageSpec, NodeNicSpec: nodeNicSpecSpec, Count: &countSpec, BillingMode: &billingModeSpec, Runtime: runtimeSpec, ExtendParam: extendParamSpec, } nameMetadata:= "test-66909" metadatabody := &model.NodeMetadata{ Name: &nameMetadata, } request.Body = &model.NodeCreateRequest{ Spec: specbody, Metadata: metadatabody, ApiVersion: "v3", Kind: "Node", } response, err := client.CreateNode(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } }
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
状态码
状态码 |
描述 |
---|---|
201 |
表示在指定集群下创建节点的作业下发成功。 |
错误码
请参见错误码。