更新时间:2026-09-30 GMT+08:00

节点腾挪

功能介绍

该API用于在指定集群下腾挪节点到另一集群。

集群管理的URL格式为:https://Endpoint/uri。其中uri为资源路径,也即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

  • Everest插件版本必须在2.5.80版本及以上。

  • 仅支持在同一租户、同一项目、同一集群类型的不同集群间进行节点腾挪,集群和节点的类型需完全一致。

  • 腾挪的集群版本(包括集群小版本)必须完全一致。

  • CCE Turbo集群和CCE Standard集群间不支持腾挪,网络类型需要保证完全一致。

  • DEC集群和非DEC集群间不支持腾挪。

  • IPv6的集群不支持腾挪。

  • 只支持腾挪默认节点池内的节点,用户自定义节点池的节点不支持腾挪。

  • 不支持超节点的腾挪。

  • 不支持分布式集群节点的腾挪。

  • 不支持同一VPC不同子网的集群的节点腾挪。

  • 腾挪的节点不能配置额外的网卡,只能有一张主网卡。

  • 物理机节点(裸金属服务器和共池裸机)原地迁移依赖相关机型支持VPC网络热切换,具体支持情况请与对应服务确认。

  • 腾挪的节点必须处于运行中的状态。

  • 腾挪时会强制清理节点上的容器资源,建议您在腾挪节点之前为节点排水,将工作负载迁移到其他节点,同时建议在业务低峰期操作。

  • 节点上配置的容器运行时、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}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

是

String

参数解释:

项目ID,获取方式请参见如何获取接口URI中参数。

约束限制:

不涉及

取值范围:

账号的项目ID

默认取值:

不涉及

cluster_id

是

String

参数解释:

集群ID,获取方式请参见如何获取接口URI中参数。

约束限制:

不涉及

取值范围:

集群ID

默认取值:

不涉及

target_cluster_id

是

String

参数解释:

集群ID,获取方式请参见如何获取接口URI中参数。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

是

String

参数解释:

消息体的类型(格式),默认为application/json,有其他取值时会在具体接口中专门说明。

约束限制:

GET方法不做校验

取值范围:

不涉及

默认取值:

不涉及

X-Auth-Token

是

String

参数解释:

调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值,获取方式请参见获取token。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表3 请求Body参数

参数

是否必选

参数类型

描述

apiVersion

否

String

参数解释:

API版本

约束限制:

固定值,不允许修改

取值范围:

不涉及

默认取值:

v3

kind

否

String

参数解释:

API类型

约束限制:

固定值,不允许修改

取值范围:

不涉及

默认取值:

InPlaceMigrateNodesTask

spec

是

InPlaceMigratetoNodesSpec object

参数解释:

配置信息

约束限制:

不涉及

status

否

TaskStatus object

参数解释:

任务状态

约束限制:

不涉及

表4 InPlaceMigratetoNodesSpec

参数

是否必选

参数类型

描述

nodes

是

Array of InplaceMigrateNodeItem objects

参数解释:

腾挪节点列表

约束限制:

不涉及

dataDiskCleanUpOption

否

DataDiskCleanUpOption object

参数解释:

腾挪节点时的磁盘处理参数

约束限制:

不涉及

extendParam

否

InPlaceMigrateNodeExtendParam object

参数解释:

节点腾挪扩展参数

约束限制:

不涉及

表5 InplaceMigrateNodeItem

参数

是否必选

参数类型

描述

uid

是

String

参数解释:

节点ID,节点ID获取方式请参见如何获取接口URI中参数。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表6 DataDiskCleanUpOption

参数

是否必选

参数类型

描述

enable

否

Boolean

参数解释:

该参数用于控制腾挪节点时,是否擦除节点的除系统盘外的数据盘。

约束限制:

不涉及

取值范围:

  • false:腾挪节点时,不擦除节点的除系统盘外的数据盘。

  • true:腾挪节点时,擦除节点的除系统盘外的数据盘。

默认取值:

false

onFailure

否

String

参数解释:

该参数用于控制腾挪节点时,擦除节点的数据盘失败时的处理策略。

约束限制:

不涉及

取值范围:

  • ignore:表示清理数据盘失败时忽略错误,继续执行。

  • abort:表示清理数据盘失败时立即停止,并向上报错。

默认取值:

ignore

表7 InPlaceMigrateNodeExtendParam

参数

是否必选

参数类型

描述

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:在kubernetes节点就绪时,容器即可被调度到可用节点。

  • true:在kubernetes节点就绪时且post-install脚本执行完成时,容器才可被调度到可用节点。

默认取值:

false

表8 TaskStatus

参数

是否必选

参数类型

描述

jobID

否

String

参数解释:

任务ID,供调用者查询任务进度。获取方式请参见如何获取接口URI中参数。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

响应参数

状态码:200

表9 响应Body参数

参数

参数类型

描述

apiVersion

String

参数解释:

API版本

取值范围:

不涉及

kind

String

参数解释:

API类型

取值范围:

不涉及

spec

InPlaceMigratetoNodesSpec object

参数解释:

配置信息

status

TaskStatus object

参数解释:

任务状态

表10 InPlaceMigratetoNodesSpec

参数

参数类型

描述

nodes

Array of InplaceMigrateNodeItem objects

参数解释:

腾挪节点列表

dataDiskCleanUpOption

DataDiskCleanUpOption object

参数解释:

腾挪节点时的磁盘处理参数

extendParam

InPlaceMigrateNodeExtendParam object

参数解释:

节点腾挪扩展参数

表11 InplaceMigrateNodeItem

参数

参数类型

描述

uid

String

参数解释:

节点ID,节点ID获取方式请参见如何获取接口URI中参数。

取值范围:

不涉及

表12 DataDiskCleanUpOption

参数

参数类型

描述

enable

Boolean

参数解释:

该参数用于控制腾挪节点时,是否擦除节点的除系统盘外的数据盘。

取值范围:

  • false:腾挪节点时,不擦除节点的除系统盘外的数据盘。

  • true:腾挪节点时,擦除节点的除系统盘外的数据盘。

onFailure

String

参数解释:

该参数用于控制腾挪节点时,擦除节点的数据盘失败时的处理策略。

取值范围:

  • ignore:表示清理数据盘失败时忽略错误,继续执行。

  • abort:表示清理数据盘失败时立即停止,并向上报错。

表13 InPlaceMigrateNodeExtendParam

参数

参数类型

描述

alpha.cce/preInstall

String

参数解释:

安装前执行脚本。

取值范围:

不涉及

alpha.cce/postInstall

String

参数解释:

安装后执行脚本。

取值范围:

不涉及

waitPostInstallFinish

Boolean

参数解释:

该参数用于控制腾挪节点时, post-install脚本执行完成前允许节点调度 的行为。当该参数未设置或者为false时,在kubernetes节点就绪时,容器即可被调度到可用节点。当该参数为true时,在kubernetes节点就绪时且post-install脚本执行完成时,容器才可被调度到可用节点。

取值范围:

  • false:在kubernetes节点就绪时,容器即可被调度到可用节点。

  • true:在kubernetes节点就绪时且post-install脚本执行完成时,容器才可被调度到可用节点。

表14 TaskStatus

参数

参数类型

描述

jobID

String

参数解释:

任务ID,供调用者查询任务进度。获取方式请参见如何获取接口URI中参数。

取值范围:

不涉及

请求示例

腾挪一个节点到另一个集群中。

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

表示在指定集群下腾挪节点至另一集群的作业下发成功。

错误码

请参见错误码。