节点迁移
功能介绍
该API用于在指定集群下迁移节点到另一集群。
集群管理的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中参数。 约束限制: 不涉及 取值范围: 账号的项目ID 默认取值: 不涉及 |
| cluster_id | 是 | String | 参数解释: 集群ID,获取方式请参见如何获取接口URI中参数。 约束限制: 不涉及 取值范围: 集群ID 默认取值: 不涉及 |
| target_cluster_id | 是 | String | 参数解释: 集群ID,获取方式请参见如何获取接口URI中参数。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| Content-Type | 是 | String | 参数解释: 消息体的类型(格式) 约束限制: GET方法不做校验 取值范围: 默认取值: 不涉及 |
| X-Auth-Token | 是 | String | 参数解释: 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值,获取方式请参见获取token。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| apiVersion | 否 | String | 参数解释: API版本 约束限制: 固定值,不允许修改 取值范围: 不涉及 默认取值: v3 |
| kind | 否 | String | 参数解释: API类型 约束限制: 固定值,不允许修改 取值范围: 不涉及 默认取值: MigrateNodesTask |
| spec | 是 | MigrateNodesSpec object | 参数解释: 配置信息 约束限制: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| os | 是 | String | 参数解释: 操作系统类型,须精确到版本号。具体支持的操作系统请参见节点操作系统说明。 约束限制: 当指定“alpha.cce/NodeImageID”参数时,“os”参数必须和用户自定义镜像的操作系统一致。 取值范围: 不涉及 默认取值: 不涉及 |
| extendParam | 否 | MigrateNodeExtendParam object | 参数解释: 迁移节点时的扩展参数 约束限制: 不涉及 |
| login | 否 | Login object | 参数解释: 节点的登录方式。不配置将保留所选择镜像的密码,为了保证您的正常使用,请确保所选择镜像中已经设置了密码。密钥对和密码登录方式二者必选其一。 约束限制: 不涉及 |
| runtime | 否 | Runtime object | 参数解释: 容器运行时 约束限制: 不涉及 |
| serverConfig | 否 | MigrateServerConfig object | 参数解释: 服务器配置 约束限制: 不涉及 |
| nodes | 是 | Array of NodeItem objects | 参数解释: 待操作节点列表,当前最多支持同时迁移200个节点。 约束限制: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| maxPods | 否 | Integer | 参数解释: 节点最大允许创建的实例数(Pod),该数量包含系统默认实例。 该设置的目的为防止节点因管理过多实例而负载过重,请根据您的业务需要进行设置。 节点可以创建多少个Pod,受多个参数影响,具体请参见节点可创建的最大Pod数量说明。 约束限制: 不涉及 取值范围: 取值范围为16~256。 默认取值: 不涉及 |
| DockerLVMConfigOverride | 否 | String | 参数解释: Docker数据盘配置项。 待迁移节点的磁盘类型须和创建时一致(即“DockerLVMConfigOverride”参数中“diskType”字段的值须和创建时一致),请确保单次接口调用时批量选择的节点磁盘类型一致。 默认配置示例如下: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" 约束限制: 不涉及 取值范围: 包含如下字段: 默认取值: 不涉及 |
| alpha.cce/preInstall | 否 | String | 参数解释: 安装前执行脚本。 约束限制: 安装前/后执行脚本统一计算字符,转码后的字符总数不能超过10240。 输入的值需要经过Base64编码,方法如下: echo -n "待编码内容" | base64 取值范围: 不涉及 默认取值: 不涉及 |
| alpha.cce/postInstall | 否 | String | 参数解释: 安装后执行脚本。 约束限制: 安装前/后执行脚本统一计算字符,转码后的字符总数不能超过10240。 输入的值需要经过Base64编码,方法如下: echo -n "待编码内容" | base64 取值范围: 不涉及 默认取值: 不涉及 |
| alpha.cce/NodeImageID | 否 | String | 参数解释: 指定待切换目标操作系统所使用的用户镜像ID。 说明: 当指定“alpha.cce/NodeImageID”参数时,“os”参数必须和用户自定义镜像的操作系统一致。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| sshKey | 否 | String | 参数解释: 选择密钥对方式登录时的密钥对名称。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| userPassword | 否 | UserPassword object | 参数解释: 选择密码方式登录时的账号密码信息,之后可通过此账号密码登录节点。 约束限制: 不涉及 |
| removeUserPassword | 否 | Boolean | 参数解释: 更新节点池时,移除当前节点池密码方式登录的配置 约束限制: 仅更新节点池场景支持该参数,设置为true时不允许设置userPassword 取值范围: 不涉及 默认取值: false |
| removeSSHKey | 否 | Boolean | 参数解释: 更新节点池时,移除当前节点池密钥对方式登录的配置 约束限制: 仅更新节点池场景支持该参数,设置为true时不允许设置sshKey 取值范围: 不涉及 默认取值: false |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| username | 否 | String | 参数解释: 登录账号,默认为“root”。 约束限制: 不涉及 取值范围: 不涉及 默认取值: root。 |
| password | 是 | String | 参数解释: 登录密码,若创建节点通过用户名密码方式,即使用该字段,则响应体中该字段作屏蔽展示。 约束限制: 创建节点时password字段需要加盐加密,具体方法请参见创建节点时password字段加盐加密。 取值范围: 密码复杂度要求: 默认取值: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| rootVolume | 否 | MigrateVolumeSpec object | 参数解释: 系统盘重装配置 约束限制: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| cmkID | 否 | String | 参数解释: 用户主密钥ID。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 默认为空,表示云硬盘不加密。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| uid | 是 | String | 参数解释: 节点ID,节点ID获取方式请参见如何获取接口URI中参数。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
响应参数
状态码: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 | 参数解释: 容器运行时 约束限制: 不涉及 |
| serverConfig | MigrateServerConfig object | 参数解释: 服务器配置 约束限制: 不涉及 |
| nodes | Array of NodeItem objects | 参数解释: 待操作节点列表,当前最多支持同时迁移200个节点。 约束限制: 不涉及 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| maxPods | Integer | 参数解释: 节点最大允许创建的实例数(Pod),该数量包含系统默认实例。 该设置的目的为防止节点因管理过多实例而负载过重,请根据您的业务需要进行设置。 节点可以创建多少个Pod,受多个参数影响,具体请参见节点可创建的最大Pod数量说明。 约束限制: 不涉及 取值范围: 取值范围为16~256。 默认取值: 不涉及 |
| DockerLVMConfigOverride | String | 参数解释: Docker数据盘配置项。 待迁移节点的磁盘类型须和创建时一致(即“DockerLVMConfigOverride”参数中“diskType”字段的值须和创建时一致),请确保单次接口调用时批量选择的节点磁盘类型一致。 默认配置示例如下: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" 约束限制: 不涉及 取值范围: 包含如下字段: 默认取值: 不涉及 |
| alpha.cce/preInstall | String | 参数解释: 安装前执行脚本。 约束限制: 安装前/后执行脚本统一计算字符,转码后的字符总数不能超过10240。 输入的值需要经过Base64编码,方法如下: echo -n "待编码内容" | base64 取值范围: 不涉及 默认取值: 不涉及 |
| alpha.cce/postInstall | String | 参数解释: 安装后执行脚本。 约束限制: 安装前/后执行脚本统一计算字符,转码后的字符总数不能超过10240。 输入的值需要经过Base64编码,方法如下: echo -n "待编码内容" | base64 取值范围: 不涉及 默认取值: 不涉及 |
| alpha.cce/NodeImageID | String | 参数解释: 指定待切换目标操作系统所使用的用户镜像ID。 说明: 当指定“alpha.cce/NodeImageID”参数时,“os”参数必须和用户自定义镜像的操作系统一致。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| sshKey | String | 参数解释: 选择密钥对方式登录时的密钥对名称。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| userPassword | UserPassword object | 参数解释: 选择密码方式登录时的账号密码信息,之后可通过此账号密码登录节点。 约束限制: 不涉及 |
| removeUserPassword | Boolean | 参数解释: 更新节点池时,移除当前节点池密码方式登录的配置 约束限制: 仅更新节点池场景支持该参数,设置为true时不允许设置userPassword 取值范围: 不涉及 默认取值: false |
| removeSSHKey | Boolean | 参数解释: 更新节点池时,移除当前节点池密钥对方式登录的配置 约束限制: 仅更新节点池场景支持该参数,设置为true时不允许设置sshKey 取值范围: 不涉及 默认取值: false |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| username | String | 参数解释: 登录账号,默认为“root”。 约束限制: 不涉及 取值范围: 不涉及 默认取值: root。 |
| password | String | 参数解释: 登录密码,若创建节点通过用户名密码方式,即使用该字段,则响应体中该字段作屏蔽展示。 约束限制: 创建节点时password字段需要加盐加密,具体方法请参见创建节点时password字段加盐加密。 取值范围: 密码复杂度要求: 默认取值: 不涉及 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| cmkID | String | 参数解释: 用户主密钥ID。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 默认为空,表示云硬盘不加密。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| uid | String | 参数解释: 节点ID,节点ID获取方式请参见如何获取接口URI中参数。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| jobID | String | 参数解释: 任务ID,供调用者查询任务进度。获取方式请参见如何获取接口URI中参数。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
请求示例
-
迁移一个节点到另一个集群中,且节点操作系统为EulerOS 2.5。
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" } ] } } -
迁移一个节点到另一个集群中,且节点操作系统为EulerOS 2.5,并指定用户镜像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"
} ],
"serverConfig" : {
"rootVolume" : {
"cmkID" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
},
"status" : {
"jobID" : "2ec9b78d-9368-46f3-8f29-d1a95622a568"
}
} 状态码
| 状态码 | 描述 |
|---|---|
| 200 | 表示在指定集群下迁移节点至另一集群的作业下发成功。 |
错误码
请参见错误码。