Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-09-10 GMT+08:00

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}

Tabela 1 Parâmetros de caminho

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

Tabela 2 Parâmetros de cabeçalho 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.

Tabela 3 Parâmetros do corpo da solicitação

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.

Tabela 4 MigrateNodesSpec

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.

Tabela 5 MigrateNodeExtendParam

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:

  • userLV (opcional): tamanho do espaço do usuário, por exemplo, vgpaas/20%VG.

  • userPath (opcional): monta o caminho do espaço do usuário, por exemplo, /home/wqt-test.

  • diskType: tipo de disco. Atualmente, apenas evs, hdd e ssd são suportados.

  • lvType: tipo de um volume lógico. O valor pode ser linear ou striped.

  • dockerThinpool: tamanho do espaço de Docker, por exemplo, vgpaas/60%VG.

  • kubernetesLV: tamanho do espaço de kubelet, por exemplo, vgpaas/20%VG.

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.

Tabela 6 Login

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ó.

Tabela 7 UserPassword

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:

  • Contém de 8 a 26 caracteres.

  • Contém pelo menos três dos seguintes tipos de caracteres: letras maiúsculas, minúsculas, dígitos e caracteres especiais (!@$%^-_=+[{}]:,./?~#*)

  • Não pode conter o nome de usuário ou o nome de usuário escrito ao contrário. O campo password deve ser salgado durante a criação do nó. Para obter detalhes, consulte Adição de um sal no campo de senha ao criar um nó.

Tabela 8 Runtime

Parâmetro

Obrigatório

Tipo

Descrição

name

Não

String

Tempo de execução do contêiner. Valor padrão:

  • Clusters anteriores à v1.25: o valor padrão é docker.

  • Clusters da v1.25 e posterior: o tempo de execução de contêiner padrão varia dependendo do sistema operacional. Para nós que executam EulerOS 2.5 ou EulerOS 2.8, o tempo de execução de contêiner padrão é docker; para nós que executam outros sistemas operacionais, o tempo de execução de contêiner padrão é containerd.

Tabela 9 NodeItem

Parâmetro

Obrigatório

Tipo

Descrição

uid

Sim

String

ID do nó.

Tabela 10 TaskStatus

Parâmetro

Obrigatório

Tipo

Descrição

jobID

Não

String

ID da tarefa, que é usado pelo chamador para consultar o andamento da tarefa.

Parâmetros de resposta

Código de status: 200

Tabela 11 Parâmetros do corpo de resposta

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.

Tabela 12 MigrateNodesSpec

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.

Tabela 13 MigrateNodeExtendParam

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:

  • userLV (opcional): tamanho do espaço do usuário, por exemplo, vgpaas/20%VG.

  • userPath (opcional): monta o caminho do espaço do usuário, por exemplo, /home/wqt-test.

  • diskType: tipo de disco. Atualmente, apenas evs, hdd e ssd são suportados.

  • lvType: tipo de um volume lógico. O valor pode ser linear ou striped.

  • dockerThinpool: tamanho do espaço de Docker, por exemplo, vgpaas/60%VG.

  • kubernetesLV: tamanho do espaço de kubelet, por exemplo, vgpaas/20%VG.

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.

Tabela 14 Login

Parâmetro

Tipo

Descrição

sshKey

String

Nome do par de chaves usado para logon.

userPassword

UserPassword object

Senha usada para logon do nó.

Tabela 15 UserPassword

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:

  • Contém de 8 a 26 caracteres.

  • Contém pelo menos três dos seguintes tipos de caracteres: letras maiúsculas, minúsculas, dígitos e caracteres especiais (!@$%^-_=+[{}]:,./?~#*)

  • Não pode conter o nome de usuário ou o nome de usuário escrito ao contrário. O campo password deve ser salgado durante a criação do nó. Para obter detalhes, consulte Adição de um sal no campo de senha ao criar um nó.

Tabela 16 Runtime

Parâmetro

Tipo

Descrição

name

String

Tempo de execução do contêiner. Valor padrão:

  • Clusters anteriores à v1.25: o valor padrão é docker.

  • Clusters da v1.25 e posterior: o tempo de execução de contêiner padrão varia dependendo do sistema operacional. Para nós que executam EulerOS 2.5 ou EulerOS 2.8, o tempo de execução de contêiner padrão é docker; para nós que executam outros sistemas operacionais, o tempo de execução de contêiner padrão é containerd.

Tabela 17 NodeItem

Parâmetro

Tipo

Descrição

uid

String

ID do nó.

Tabela 18 TaskStatus

Parâmetro

Tipo

Descrição

jobID

String

ID da tarefa, que é usado pelo chamador para consultar o andamento da tarefa.

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.