Migrating a Node
Function
This API is used to migrate a node from a specified cluster to another cluster. The node can be migrated only between different clusters in the same VPC and project, and the cluster types before and after the migration must be the same.
The URL for cluster management is in the format of https://Endpoint/uri, where uri indicates the resource path for API access.
Constraints
-
Data can be migrated only between clusters in the same VPC and project.
-
Data cannot be migrated between CCE Turbo clusters and CCE standard clusters.
-
Data cannot be migrated between DEC and non-DEC clusters.
-
Data cannot be migrated between clusters with IPv6 enabled and clusters without IPv6 enabled.
-
Data can be migrated only to the default node pool of the target cluster.
URI
PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/operation/migrateto/{target_cluster_id}
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Project ID. For details about how to obtain the value, see How to Obtain Parameters in the API URI. |
cluster_id |
Yes |
String |
Cluster ID. For details about how to obtain the value, see How to Obtain Parameters in the API URI. |
target_cluster_id |
Yes |
String |
Cluster ID. For details about how to obtain the value, see How to Obtain Parameters in the API URI. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
Content-Type |
Yes |
String |
Message body type (format). |
X-Auth-Token |
Yes |
String |
Requests for calling an API can be authenticated using either a token or AK/SK. If token-based authentication is used, this parameter is mandatory and must be set to a user token. For details, see Obtaining a User Token. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
apiVersion |
No |
String |
API version. The value is fixed at v3. |
kind |
No |
String |
API type. The value is fixed at MigrateNodesTask. |
spec |
Yes |
MigrateNodesSpec object |
Configuration data. |
status |
No |
TaskStatus object |
Job status. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
os |
Yes |
String |
Operating system type, which must be accurate to the version number. When alpha.cce/NodeImageID is specified, the value of os must be the same as the OS of the custom image. |
extendParam |
No |
MigrateNodeExtendParam object |
Extended parameters for node migration. |
login |
Yes |
Login object |
Node login mode. Either the key pair or password must be used for login. |
runtime |
No |
Runtime object |
Container runtime |
nodes |
Yes |
Array of NodeItem objects |
List of nodes to be migrated. A maximum of 200 nodes can be migrated at a time. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
maxPods |
No |
Integer |
Maximum number of pods that can be created on a node, including the default system pods. Value range: 16 to 256. This limit prevents the node from being overloaded of pods. |
DockerLVMConfigOverride |
No |
String |
Docker data disk configurations. The disk type of the nodes to be migrated must be the same as that specified during node creation (that is, the value of diskType in DockerLVMConfigOverride must be the same as that specified during node creation). Ensure that the disk types of the nodes selected for a single API call are the same. The following is the default configuration: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" The configuration contains the following fields:
|
alpha.cce/preInstall |
No |
String |
Pre-installation script.
NOTE:
The input value must be Base64-encoded. (Command: echo -n "Content to be encoded" | base64) |
alpha.cce/postInstall |
No |
String |
Post-installation script.
NOTE:
The input value must be Base64-encoded. (Command: echo -n "Content to be encoded" | base64) |
alpha.cce/NodeImageID |
No |
String |
ID of the user image to run the target OS. When alpha.cce/NodeImageID is specified, the value of os must be the same as the OS of the custom image. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
sshKey |
No |
String |
Name of the key pair used for login. |
userPassword |
No |
UserPassword object |
Password used for node login. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
username |
No |
String |
Login account. Defaults to root. |
password |
Yes |
String |
If a username and a password are used to create a node, this field is shielded in the response body. A password must meet the following complexity requirements:
|
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
name |
No |
String |
Container runtime. Default value:
|
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
apiVersion |
String |
API version. The value is fixed at v3. |
kind |
String |
API type. The value is fixed at MigrateNodesTask. |
spec |
MigrateNodesSpec object |
Configuration data. |
status |
TaskStatus object |
Job status. |
Parameter |
Type |
Description |
---|---|---|
os |
String |
Operating system type, which must be accurate to the version number. When alpha.cce/NodeImageID is specified, the value of os must be the same as the OS of the custom image. |
extendParam |
MigrateNodeExtendParam object |
Extended parameters for node migration. |
login |
Login object |
Node login mode. Either the key pair or password must be used for login. |
runtime |
Runtime object |
Container runtime |
nodes |
Array of NodeItem objects |
List of nodes to be migrated. A maximum of 200 nodes can be migrated at a time. |
Parameter |
Type |
Description |
---|---|---|
maxPods |
Integer |
Maximum number of pods that can be created on a node, including the default system pods. Value range: 16 to 256. This limit prevents the node from being overloaded of pods. |
DockerLVMConfigOverride |
String |
Docker data disk configurations. The disk type of the nodes to be migrated must be the same as that specified during node creation (that is, the value of diskType in DockerLVMConfigOverride must be the same as that specified during node creation). Ensure that the disk types of the nodes selected for a single API call are the same. The following is the default configuration: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" The configuration contains the following fields:
|
alpha.cce/preInstall |
String |
Pre-installation script.
NOTE:
The input value must be Base64-encoded. (Command: echo -n "Content to be encoded" | base64) |
alpha.cce/postInstall |
String |
Post-installation script.
NOTE:
The input value must be Base64-encoded. (Command: echo -n "Content to be encoded" | base64) |
alpha.cce/NodeImageID |
String |
ID of the user image to run the target OS. When alpha.cce/NodeImageID is specified, the value of os must be the same as the OS of the custom image. |
Parameter |
Type |
Description |
---|---|---|
sshKey |
String |
Name of the key pair used for login. |
userPassword |
UserPassword object |
Password used for node login. |
Parameter |
Type |
Description |
---|---|---|
username |
String |
Login account. Defaults to root. |
password |
String |
If a username and a password are used to create a node, this field is shielded in the response body. A password must meet the following complexity requirements:
|
Parameter |
Type |
Description |
---|---|---|
name |
String |
Container runtime. Default value:
|
Example Requests
-
Migrate a node running EulerOS 2.5 to another cluster.
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" } ] } }
-
Migrate a node running EulerOS 2.5 and created using a specified image ID to another cluster.
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" } ] } }
Example Responses
Status code: 200
The job for migrating a node from a specified cluster to another cluster is successfully delivered.
{ "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" } }
Status Codes
Status Code |
Description |
---|---|
200 |
The job for migrating a node from a specified cluster to another cluster is successfully delivered. |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot