Migrating a Node¶
Function¶
This API is used to migrate a node from a specified cluster to another cluster (both clusters must in the same VPC). Physical nodes of the ECS service in a CCE Turbo cluster cannot be migrated.
Note
The URL for cluster management is in the format of **https://Endpoint/uri, in which uri indicates the resource path, that is, the path for API access.
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 API Usage Guidelines. |
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. |
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. |
runtime | No | Runtime object | Container runtime configuration. |
nodes | Yes | Array of NodeItem objects | List of nodes to be operated. |
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 configuration item. (This parameter has been discarded. Use the storage field instead.) 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. Example default configuration: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear"
The following fields are included:
|
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 | String | Password used for node login. Note This field is not supported for the current version. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
name | No | String | Container runtime:
Enumeration values:
|
Parameter | Mandatory | Type | Description |
---|---|---|---|
uid | Yes | String | Node ID. |
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. |
nodes | Array of NodeItem objects | List of nodes to be operated. |
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 configuration item. (This parameter has been discarded. Use the storage field instead.) 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. Example default configuration: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear"
The following fields are included:
|
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 | String | Password used for node login. Note This field is not supported for the current version. |
Parameter | Type | Description |
---|---|---|
uid | String | Node ID. |
Parameter | Type | Description |
---|---|---|
jobID | String | Job ID, which is used by the caller to query the job progress. |
Example Requests¶
Migrating a Node
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" } ] } }
Migrating a node using a specified user image 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" } ] } }
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"
},
"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.