节点迁移
功能介绍
该API用于在指定集群下迁移节点到另一集群(仅支持在同一VPC、同一项目下的不同集群之间进行迁移,且迁移前后的集群类型需相同)。
集群管理的URL格式为:https://Endpoint/uri。其中uri为资源路径,也即API访问的路径。
URI
PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/operation/migrateto/{target_cluster_id}
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID,获取方式请参见如何获取接口URI中参数。 |
cluster_id |
是 |
String |
集群ID,获取方式请参见如何获取接口URI中参数。 |
target_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类型,固定值“MigrateNodesTask”。 |
spec |
是 |
MigrateNodesSpec object |
配置信息 |
status |
否 |
TaskStatus object |
任务状态 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
os |
是 |
String |
操作系统类型,须精确到版本号。 当指定“alpha.cce/NodeImageID”参数时,“os”参数必须和用户自定义镜像的操作系统一致。 |
extendParam |
否 |
MigrateNodeExtendParam object |
迁移节点时的扩展参数 |
login |
是 |
Login object |
节点的登录方式。 |
runtime |
否 |
Runtime object |
容器运行时。 |
nodes |
是 |
Array of NodeItem objects |
待操作节点列表 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
maxPods |
否 |
Integer |
节点最大允许创建的实例数(Pod),该数量包含系统默认实例,取值范围为16~256。 该设置的目的为防止节点因管理过多实例而负载过重,请根据您的业务需要进行设置。 |
DockerLVMConfigOverride |
否 |
String |
Docker数据盘配置项(已废弃,请使用storage字段)。 待迁移节点的磁盘类型须和创建时一致(即“DockerLVMConfigOverride”参数中“diskType”字段的值须和创建时一致),请确保单次接口调用时批量选择的节点磁盘类型一致。 默认配置示例如下: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" 包含如下字段:
|
alpha.cce/preInstall |
否 |
String |
安装前执行脚本
说明:
输入的值需要经过Base64编码,方法为echo -n "待编码内容" | base64。 |
alpha.cce/postInstall |
否 |
String |
安装后执行脚本
说明:
输入的值需要经过Base64编码,方法为echo -n "待编码内容" | base64。 |
alpha.cce/NodeImageID |
否 |
String |
指定待切换目标操作系统所使用的用户镜像ID。 当指定“alpha.cce/NodeImageID”参数时,“os”参数必须和用户自定义镜像的操作系统一致。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
username |
否 |
String |
登录帐号,默认为“root” |
password |
是 |
String |
登录密码,若创建节点通过用户名密码方式,即使用该字段,则响应体中该字段作屏蔽展示。 密码复杂度要求:
|
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
apiVersion |
String |
API版本,固定值“v3”。 |
kind |
String |
API类型,固定值“MigrateNodesTask”。 |
spec |
MigrateNodesSpec object |
配置信息 |
status |
TaskStatus object |
任务状态 |
参数 |
参数类型 |
描述 |
---|---|---|
os |
String |
操作系统类型,须精确到版本号。 当指定“alpha.cce/NodeImageID”参数时,“os”参数必须和用户自定义镜像的操作系统一致。 |
extendParam |
MigrateNodeExtendParam object |
迁移节点时的扩展参数 |
login |
Login object |
节点的登录方式。 |
runtime |
Runtime object |
容器运行时。 |
nodes |
Array of NodeItem objects |
待操作节点列表 |
参数 |
参数类型 |
描述 |
---|---|---|
maxPods |
Integer |
节点最大允许创建的实例数(Pod),该数量包含系统默认实例,取值范围为16~256。 该设置的目的为防止节点因管理过多实例而负载过重,请根据您的业务需要进行设置。 |
DockerLVMConfigOverride |
String |
Docker数据盘配置项(已废弃,请使用storage字段)。 待迁移节点的磁盘类型须和创建时一致(即“DockerLVMConfigOverride”参数中“diskType”字段的值须和创建时一致),请确保单次接口调用时批量选择的节点磁盘类型一致。 默认配置示例如下: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" 包含如下字段:
|
alpha.cce/preInstall |
String |
安装前执行脚本
说明:
输入的值需要经过Base64编码,方法为echo -n "待编码内容" | base64。 |
alpha.cce/postInstall |
String |
安装后执行脚本
说明:
输入的值需要经过Base64编码,方法为echo -n "待编码内容" | base64。 |
alpha.cce/NodeImageID |
String |
指定待切换目标操作系统所使用的用户镜像ID。 当指定“alpha.cce/NodeImageID”参数时,“os”参数必须和用户自定义镜像的操作系统一致。 |
参数 |
参数类型 |
描述 |
---|---|---|
username |
String |
登录帐号,默认为“root” |
password |
String |
登录密码,若创建节点通过用户名密码方式,即使用该字段,则响应体中该字段作屏蔽展示。 密码复杂度要求:
|
请求示例
- 迁移节点
PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/operation/migrateto/{target_cluster_id} { "spec" : { "os" : "EulerOS 2.5", "login" : { "sshKey" : "KeyPair-001" }, "nodes" : [ { "uid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }, { "uid" : "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" } ] } }
- 指定用户镜像ID迁移节点
PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/operation/migrateto/{target_cluster_id} { "spec" : { "os" : "EulerOS 2.5", "extendParam" : { "alpha.cce/NodeImageID" : "cc697ad7-9563-11e8-8ea7-0255ac106311" }, "login" : { "sshKey" : "KeyPair-001" }, "nodes" : [ { "uid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }, { "uid" : "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" } ] } }
响应示例
状态码: 200
表示在指定集群下迁移节点至另一集群的作业下发成功。
{ "spec" : { "os" : "EulerOS 2.5", "login" : { "sshKey" : "KeyPair-001" }, "runtime" : { "name" : "docker" }, "nodes" : [ { "uid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }, { "uid" : "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" } ] }, "status" : { "jobID" : "2ec9b78d-9368-46f3-8f29-d1a95622a568" } }
状态码
状态码 |
描述 |
---|---|
200 |
表示在指定集群下迁移节点至另一集群的作业下发成功。 |
错误码
请参见错误码。