纳管节点
功能介绍
该API用于在指定集群下纳管节点。

集群管理的URL格式为:https://Endpoint/uri。其中uri为资源路径,也即API访问的路径。
调试
您可以在API Explorer中调试该接口。
URI
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/add
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID,获取方式请参见如何获取接口URI中参数。 |
cluster_id |
是 |
String |
集群 ID,获取方式请参见如何获取接口URI中参数。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Content-Type |
是 |
String |
消息体的类型(格式) |
X-Auth-Token |
是 |
String |
调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值,获取方式请参见获取token。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
apiVersion |
是 |
String |
API版本,固定值“v3”。 |
kind |
是 |
String |
API类型,固定值“List”。 |
nodeList |
是 |
Array of AddNode objects |
纳管节点列表 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
serverID |
是 |
String |
服务器ID,获取方式请参见ECS/BMS相关资料。 |
spec |
是 |
ReinstallNodeSpec object |
节点重装配置参数。当前不支持纳管节点接入节点池。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
os |
是 |
String |
操作系统。指定自定义镜像场景将以IMS镜像的实际操作系统版本为准。请选择当前集群支持的操作系统版本,例如EulerOS 2.5、CentOS 7.6、EulerOS 2.8。 |
login |
是 |
Login object |
登录配置 |
name |
否 |
String |
节点名称 说明:
重装时指定将修改节点名称,且服务器名称会同步修改。默认以服务器当前名称作为节点名称。 命名规则:以小写字母开头,由小写字母、数字、中划线(-)组成,长度范围1-56位,且不能以中划线(-)结尾。 |
serverConfig |
否 |
ReinstallServerConfig object |
服务器配置 |
volumeConfig |
否 |
ReinstallVolumeConfig object |
卷管理配置 |
runtimeConfig |
否 |
ReinstallRuntimeConfig object |
容器运行时配置 |
k8sOptions |
否 |
ReinstallK8sOptionsConfig object |
Kubernetes节点配置 |
lifecycle |
否 |
NodeLifecycleConfig object |
节点自定义生命周期配置 |
extendParam |
否 |
ReinstallExtendParam object |
重装拓展参数,已废弃 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
sshKey |
否 |
String |
选择密钥对方式登录时的密钥对名称。密钥对和密码登录方式二者必选其一。 |
userPassword |
否 |
UserPassword object |
选择密码方式登录时的帐号密码信息,之后可通过此帐号密码登录节点。密钥对和密码登录方式二者必选其一。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
username |
否 |
String |
登录帐号,默认为“root” |
password |
是 |
String |
登录密码,若创建节点通过用户名密码方式,即使用该字段,则响应体中该字段作屏蔽展示。 密码复杂度要求:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
userTags |
否 |
Array of UserTag objects |
云服务器标签,键必须唯一,CCE支持的最大用户自定义标签数量依region而定,自定义标签数上限为5个。 |
rootVolume |
否 |
ReinstallVolumeSpec object |
系统盘重装配置 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
否 |
String |
云服务器标签的键。不得以"CCE-"或"__type_baremetal"开头 |
value |
否 |
String |
云服务器标签的值 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
imageID |
否 |
String |
用户自定义镜像ID |
cmkID |
否 |
String |
用户主密钥ID。默认为空时,表示云硬盘不加密。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
lvmConfig |
否 |
String |
Docker数据盘配置项。 默认配置示例如下: "lvmConfig":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" 包含如下字段:
|
storage |
否 |
Storage object |
磁盘初始化配置管理参数。 该参数配置逻辑较为复杂,详细说明请参见节点磁盘挂载。 该参数缺省时,按照extendParam中的DockerLVMConfigOverride参数进行磁盘管理。此参数对1.15.11及以上集群版本支持。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
storageSelectors |
是 |
Array of StorageSelectors objects |
磁盘选择,根据matchLabels和storageType对匹配的磁盘进行管理。磁盘匹配存在先后顺序,靠前的匹配规则优先匹配。 |
storageGroups |
是 |
Array of StorageGroups objects |
由多个存储设备组成的存储组,用于各个存储空间的划分。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
selector的名字,作为storageGroup中selectorNames的索引,因此各个selector间的名字不能重复。 |
storageType |
是 |
String |
存储类型,当前仅支持evs(云硬盘)或local(本地盘);local存储类型不支持磁盘选择,所有本地盘将被组成一个VG,因此也仅允许只有一个local类型的storageSelector。 |
matchLabels |
否 |
matchLabels object |
evs盘的匹配字段,支持DataVolume中的size、volumeType、metadataEncrypted、metadataCmkid、count五个字段。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
size |
否 |
String |
匹配的磁盘大小,不填则无磁盘大小限制。例如:100. |
volumeType |
否 |
String |
云硬盘类型,目前支持SSD\GPSSD\SAS三种。 |
metadataEncrypted |
否 |
String |
磁盘加密标识符,0代表不加密,1代表加密。 |
metadataCmkid |
否 |
String |
加密磁盘的用户主密钥ID,长度为36字节的字符串。 |
count |
否 |
String |
磁盘选择个数,不填则选择所有此类磁盘。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
storageGroups的名字,作为虚拟存储组的名字,因此各个group个名字不能重复。 |
cceManaged |
否 |
Boolean |
k8s及runtime所属存储空间。有且仅有一个group被设置为true,不填默认false。 |
selectorNames |
是 |
Array of strings |
对应storageSelectors中的name,一个group可选择多个selector;但一个selector只能被一个group选择。 |
virtualSpaces |
是 |
Array of VirtualSpace objects |
group中空间配置的详细管理。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
virtualSpace的名称,当前仅支持三种类型:kubernetes、runtime、user。kubernetes:k8s空间配置,需配置lvmConfig;runtime:运行时空间配置,需配置runtimeConfig;user:用户空间配置,需配置lvmConfig |
size |
是 |
String |
virtualSpace的大小,仅支持整数百分比。例如:90%。 需要注意:一个group中所有virtualSpace的百分比之和不得超过100% |
lvmConfig |
否 |
LVMConfig object |
lvm配置管理,适用于kubernetes和user空间配置。 需要注意:一个virtualSpace仅支持一个config配置。 |
runtimeConfig |
否 |
RuntimeConfig object |
runtime配置管理,适用于运行时空间配置。 需要注意:一个virtualSpace仅支持一个config配置。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
lvType |
是 |
String |
LVM写入模式:linear、striped。linear:线性模式;striped:条带模式,使用多块磁盘组成条带模式,能够提升磁盘性能。 |
path |
否 |
String |
磁盘挂载路径。仅在用户配置中生效。支持包含:数字、大小写字母、点、中划线、下划线的绝对路径。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
lvType |
是 |
String |
LVM写入模式:linear、striped。linear:线性模式;striped:条带模式,使用多块磁盘组成条带模式,能够提升磁盘性能。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
dockerBaseSize |
否 |
Integer |
Device mapper模式下,节点上Docker单容器的可用磁盘空间大小,OverlayFS模式(CCE Turbo集群中CentOS 7.6和Ubuntu 18.04节点,以及混合集群中Ubuntu 18.04节点)下不支持此字段。Device mapper模式下建议dockerBaseSize配置不超过80G,设置过大时可能会导致docker初始化时间过长而启动失败,若对容器磁盘大小有特殊要求,可考虑使用挂载外部或本地存储方式代替。 |
runtime |
否 |
Runtime object |
容器运行时,默认为“docker”。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
labels |
否 |
Map<String,String> |
格式为key/value键值对。键值对个数不超过20条。
示例: "k8sTags": { "key": "value" } |
taints |
否 |
Array of Taint objects |
支持给创建出来的节点加Taints来设置反亲和性,taints配置不超过20条。每条Taints包含以下3个参数:
示例: "taints": [{ "key": "status", "value": "unavailable", "effect": "NoSchedule" }, { "key": "looks", "value": "bad", "effect": "NoSchedule" }] |
maxPods |
否 |
Integer |
节点最大允许创建的实例数(Pod),该数量包含系统默认实例,取值范围为16~256。 该设置的目的为防止节点因管理过多实例而负载过重,请根据您的业务需要进行设置。 |
nicMultiqueue |
否 |
String |
"[{\"queue\":4}]" 包含如下字段:
|
nicThreshold |
否 |
String |
"0.3:0.6"
|
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
jobid |
String |
提交任务成功后返回的任务ID,用户可以使用该ID对任务执行情况进行查询。 |
请求示例
纳管节点
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/add { "kind" : "List", "apiVersion" : "v3", "nodeList" : [ { "serverID" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "spec" : { "name" : "my-ecs-0001", "os" : "EulerOS 2.5", "login" : { "userPassword" : { "username" : "root", "password" : "******" } } } } ] }
响应示例
状态码: 200
表示在指定集群下纳管节点的作业下发成功。
{ "jobid" : "2ec9b78d-9368-46f3-8f29-d1a95622a568" }
状态码
状态码 |
描述 |
---|---|
200 |
表示在指定集群下纳管节点的作业下发成功。 |
错误码
请参见错误码。
