Migração de um nó
Função
Essa API é usada para migrar um nó de um cluster especificado para outro cluster. O nó pode ser migrado apenas entre diferentes clusters na mesma VPC e projeto, e os tipos de cluster antes e depois da migração devem ser os mesmos. Os nós do BMS em um cluster do CCE Turbo não podem ser migrados.
O URL para gerenciamento de cluster está no formato https://Endpoint/uri, em que uri indica o caminho do recurso para acesso à API.
URI
PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/operation/migrateto/{target_cluster_id}
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
project_id |
Sim |
String |
ID do projeto. Para obter detalhes sobre como obter o valor, consulte Como obter parâmetros no URI da API. |
cluster_id |
Sim |
String |
ID do cluster. Para obter detalhes sobre como obter o valor, consulte Como obter parâmetros no URI da API. |
target_cluster_id |
Sim |
String |
ID do cluster. Para obter detalhes sobre como obter o valor, consulte Como obter parâmetros no URI da API. |
Parâmetros de solicitação
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
Content-Type |
Sim |
String |
Tipo de corpo da mensagem (formato). |
X-Auth-Token |
Sim |
String |
As solicitações para chamar uma API podem ser autenticadas usando um token ou AK/SK. Se a autenticação baseada em token for usada, esse parâmetro é obrigatório e deve ser definido como um token de usuário. Para obter detalhes, consulte Obtenção de um token de usuário. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
apiVersion |
Não |
String |
Versão da API. O valor é fixado em v3. |
kind |
Não |
String |
Tipo de API. O valor é fixado em MigrateNodesTask. |
spec |
Sim |
MigrateNodesSpec object |
Dados de configuração. |
status |
Não |
TaskStatus object |
Status da tarefa. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
os |
Sim |
String |
Tipo de sistema operacional, que deve ser preciso para o número da versão. Quando alpha.cce/NodeImageID é especificado, o valor de os deve ser o mesmo que o SO da imagem personalizada. |
extendParam |
Não |
MigrateNodeExtendParam object |
Parâmetros estendidos para migração de nó. |
login |
Sim |
Login object |
Modo de logon do nó. O par de chaves ou a senha devem ser usados para o logon. |
runtime |
Não |
Runtime object |
Tempo de execução do contêiner |
nodes |
Sim |
Array of NodeItem objects |
Lista de nós a serem operados. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
maxPods |
Não |
Integer |
Número máximo de pods que podem ser executados em um nó, incluindo os pods padrão do sistema. Intervalo de valores: 16 a 256. Esse limite impede que o nó seja sobrecarregado de pods. |
DockerLVMConfigOverride |
Não |
String |
Item de configuração do disco de dados do Docker. (Este parâmetro foi descartado. Use o campo storage em vez disso.) O tipo de disco dos nós a serem migrados deve ser o mesmo especificado durante a criação do nó (ou seja, o valor de diskType em DockerLVMConfigOverride deve ser o mesmo especificado durante a criação do nó). Certifique-se de que os tipos de disco dos nós selecionados para uma única chamada de API sejam os mesmos. Exemplo de configuração padrão: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" Os seguintes campos estão incluídos:
|
alpha.cce/preInstall |
Não |
String |
Script de pré-instalação.
NOTA:
O valor de entrada deve ser codificado em Base64. (Comando: echo -n "Content to be encoded" | base64) |
alpha.cce/postInstall |
Não |
String |
Script de pós-instalação.
NOTA:
O valor de entrada deve ser codificado em Base64. (Comando: echo -n "Content to be encoded" | base64) |
alpha.cce/NodeImageID |
Não |
String |
ID da imagem do usuário para executar o SO de destino. Quando alpha.cce/NodeImageID é especificado, o valor de os deve ser o mesmo que o SO da imagem personalizada. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
sshKey |
Não |
String |
Nome do par de chaves usado para logon. |
userPassword |
Não |
UserPassword object |
Senha usada para logon do nó. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
username |
Não |
String |
Conta de logon. O padrão é root. |
password |
Sim |
String |
Se um nome de usuário e uma senha forem usados para criar um nó, esse campo será blindado no corpo da resposta. Uma senha deve atender aos seguintes requisitos de complexidade:
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
name |
Não |
String |
Tempo de execução do contêiner. Valor padrão:
|
Parâmetros de resposta
Código de status: 200
Parâmetro |
Tipo |
Descrição |
---|---|---|
apiVersion |
String |
Versão da API. O valor é fixado em v3. |
kind |
String |
Tipo de API. O valor é fixado em MigrateNodesTask. |
spec |
MigrateNodesSpec object |
Dados de configuração. |
status |
TaskStatus object |
Status da tarefa. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
os |
String |
Tipo de sistema operacional, que deve ser preciso para o número da versão. Quando alpha.cce/NodeImageID é especificado, o valor de os deve ser o mesmo que o SO da imagem personalizada. |
extendParam |
MigrateNodeExtendParam object |
Parâmetros estendidos para migração de nó. |
login |
Login object |
Modo de logon do nó. O par de chaves ou a senha devem ser usados para o logon. |
runtime |
Runtime object |
Tempo de execução do contêiner |
nodes |
Array of NodeItem objects |
Lista de nós a serem operados. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
maxPods |
Integer |
Número máximo de pods que podem ser executados em um nó, incluindo os pods padrão do sistema. Intervalo de valores: 16 a 256. Esse limite impede que o nó seja sobrecarregado de pods. |
DockerLVMConfigOverride |
String |
Item de configuração do disco de dados do Docker. (Este parâmetro foi descartado. Use o campo storage em vez disso.) O tipo de disco dos nós a serem migrados deve ser o mesmo especificado durante a criação do nó (ou seja, o valor de diskType em DockerLVMConfigOverride deve ser o mesmo especificado durante a criação do nó). Certifique-se de que os tipos de disco dos nós selecionados para uma única chamada de API sejam os mesmos. Exemplo de configuração padrão: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" Os seguintes campos estão incluídos:
|
alpha.cce/preInstall |
String |
Script de pré-instalação.
NOTA:
O valor de entrada deve ser codificado em Base64. (Comando: echo -n "Content to be encoded" | base64) |
alpha.cce/postInstall |
String |
Script de pós-instalação.
NOTA:
O valor de entrada deve ser codificado em Base64. (Comando: echo -n "Content to be encoded" | base64) |
alpha.cce/NodeImageID |
String |
ID da imagem do usuário para executar o SO de destino. Quando alpha.cce/NodeImageID é especificado, o valor de os deve ser o mesmo que o SO da imagem personalizada. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
sshKey |
String |
Nome do par de chaves usado para logon. |
userPassword |
UserPassword object |
Senha usada para logon do nó. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
username |
String |
Conta de logon. O padrão é root. |
password |
String |
Se um nome de usuário e uma senha forem usados para criar um nó, esse campo será blindado no corpo da resposta. Uma senha deve atender aos seguintes requisitos de complexidade:
|
Parâmetro |
Tipo |
Descrição |
---|---|---|
name |
String |
Tempo de execução do contêiner. Valor padrão:
|
Exemplo de solicitações
-
Migre um nó executando EulerOS 2.5 para outro 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" } ] } }
-
Migre um nó executando EulerOS 2.5 e criado usando um ID de imagem especificado para outro 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" } ] } }
Exemplo de respostas
Código de status: 200
A tarefa para migrar um nó de um cluster especificado para outro cluster é entregue com êxito.
{ "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" } }
Códigos de status
Código de status |
Descrição |
---|---|
200 |
A tarefa para migrar um nó de um cluster especificado para outro cluster é entregue com êxito. |
Códigos de erro
Consulte Códigos de erro.