节点腾挪
功能介绍
该API用于在指定集群下腾挪节点到另一集群。
接口约束
-
集群版本必须大于等于 v1.30.14-r100、v1.31.14-r60、v1.32.13-r30、v1.33.12-r10、v1.34.8-r10、v1.35.5-r10、v1.36.2-r0
-
节点上配置的容器运行时、kubelet、持久存储卷以及临时存储卷的数据在腾挪时会清理,如果有需要保留的数据请提前备份到其他节点或存储系统。
-
腾挪需要保证容器存储插件(Everest)的正常运行,且 everest-csi-controller 的Pod不在腾挪节点上。
-
腾挪的按需计费节点在删除集群或者删除节点时,会同步删除对应的ECS或者BMS资源,如果需要保留,请提前将节点从集群移除。
-
节点使用Docker作为容器运行时,腾挪的耗时会比Containerd要长,优先使用Containerd作为容器运行时。
-
腾挪时需要保证节点上需要卸载的磁盘目录不要被人工占用,否则会导致腾挪失败。目录包括:/mnt/paas、/var/lib/docker、/var/lib/containerd,以及您配置的需要清理的数据盘所挂载的目录。
调用方法
请参见如何调用API。
URI
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/operation/in-place-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 | 参数解释: 消息体的类型(格式),默认为application/json,有其他取值时会在具体接口中专门说明。 约束限制: GET方法不做校验 取值范围: 不涉及 默认取值: 不涉及 |
| X-Auth-Token | 是 | String | 参数解释: 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值,获取方式请参见获取token。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| apiVersion | 否 | String | 参数解释: API版本 约束限制: 固定值,不允许修改 取值范围: 不涉及 默认取值: v3 |
| kind | 否 | String | 参数解释: API类型 约束限制: 固定值,不允许修改 取值范围: 不涉及 默认取值: InPlaceMigrateNodesTask |
| spec | 是 | InPlaceMigratetoNodesSpec object | 参数解释: 配置信息 约束限制: 不涉及 |
| status | 否 | TaskStatus object | 参数解释: 任务状态 约束限制: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| nodes | 是 | Array of InplaceMigrateNodeItem objects | 参数解释: 腾挪节点列表 约束限制: 不涉及 |
| dataDiskCleanUpOption | 否 | DataDiskCleanUpOption object | 参数解释: 腾挪节点时的磁盘处理参数 约束限制: 不涉及 |
| extendParam | 否 | 参数解释: 节点腾挪扩展参数 约束限制: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| uid | 是 | String | 参数解释: 节点ID,节点ID获取方式请参见如何获取接口URI中参数。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| enable | 否 | Boolean | 参数解释: 该参数用于控制腾挪节点时,是否擦除节点的除系统盘外的数据盘。 约束限制: 不涉及 取值范围: 默认取值: false |
| onFailure | 否 | String | 参数解释: 该参数用于控制腾挪节点时,擦除节点的数据盘失败时的处理策略。 约束限制: 不涉及 取值范围: 默认取值: ignore |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| alpha.cce/preInstall | 否 | String | 参数解释: 安装前执行脚本。 约束限制: 安装前/后执行脚本统一计算字符,转码后的字符总数不能超过10240。 输入的值需要经过Base64编码,方法如下: echo -n "待编码内容" | base64 取值范围: 不涉及 默认取值: 不涉及 |
| alpha.cce/postInstall | 否 | String | 参数解释: 安装后执行脚本。 约束限制: 安装前/后执行脚本统一计算字符,转码后的字符总数不能超过10240。 输入的值需要经过Base64编码,方法如下: echo -n "待编码内容" | base64 取值范围: 不涉及 默认取值: 不涉及 |
| waitPostInstallFinish | 否 | Boolean | 参数解释: 该参数用于控制腾挪节点时, post-install脚本执行完成前允许节点调度 的行为。当该参数未设置或者为false时,在kubernetes节点就绪时,容器即可被调度到可用节点。当该参数为true时,在kubernetes节点就绪时且post-install脚本执行完成时,容器才可被调度到可用节点。 约束限制: 不涉及 取值范围: 默认取值: false |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| jobID | 否 | String | 参数解释: 任务ID,供调用者查询任务进度。获取方式请参见如何获取接口URI中参数。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
响应参数
状态码:200
| 参数 | 参数类型 | 描述 |
|---|---|---|
| apiVersion | String | 参数解释: API版本 取值范围: 不涉及 |
| kind | String | 参数解释: API类型 取值范围: 不涉及 |
| spec | InPlaceMigratetoNodesSpec object | 参数解释: 配置信息 |
| status | TaskStatus object | 参数解释: 任务状态 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| nodes | Array of InplaceMigrateNodeItem objects | 参数解释: 腾挪节点列表 |
| dataDiskCleanUpOption | DataDiskCleanUpOption object | 参数解释: 腾挪节点时的磁盘处理参数 |
| extendParam | 参数解释: 节点腾挪扩展参数 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| enable | Boolean | 参数解释: 该参数用于控制腾挪节点时,是否擦除节点的除系统盘外的数据盘。 取值范围: |
| onFailure | String | 参数解释: 该参数用于控制腾挪节点时,擦除节点的数据盘失败时的处理策略。 取值范围: |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| alpha.cce/preInstall | String | 参数解释: 安装前执行脚本。 取值范围: 不涉及 |
| alpha.cce/postInstall | String | 参数解释: 安装后执行脚本。 取值范围: 不涉及 |
| waitPostInstallFinish | Boolean | 参数解释: 该参数用于控制腾挪节点时, post-install脚本执行完成前允许节点调度 的行为。当该参数未设置或者为false时,在kubernetes节点就绪时,容器即可被调度到可用节点。当该参数为true时,在kubernetes节点就绪时且post-install脚本执行完成时,容器才可被调度到可用节点。 取值范围: |
请求示例
腾挪一个节点到另一个集群中。
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/operation/in-place-migrateto/{target_cluster_id}
{
"spec" : {
"dataDiskCleanUpOption" : {
"enable" : true,
"onFailure" : "ignore"
},
"nodes" : [ {
"uid" : "d30a28c2-8402-11f1-be5d-0255ac1000f3"
} ],
"extendParam" : {
"waitPostInstallFinish" : false,
"alpha.cce/preInstall" : "",
"alpha.cce/postInstall" : ""
}
}
} 响应示例
状态码:200
表示在指定集群下腾挪节点至另一集群的作业下发成功。
{
"kind" : "InPlaceMigrateNodesTask",
"apiVersion" : "v3",
"spec" : {
"nodes" : [ {
"uid" : "d30a28c2-8402-11f1-be5d-0255ac1000f3"
} ],
"dataDiskCleanUpOption" : {
"enable" : true,
"onFailure" : "ignore"
},
"extendParam" : { }
},
"status" : {
"jobID" : "3f01b88d-8403-11f1-be5d-0255ac1000f3"
}
} 状态码
| 状态码 | 描述 |
|---|---|
| 200 | 表示在指定集群下腾挪节点至另一集群的作业下发成功。 |
错误码
请参见错误码。