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

Aceitação de um nó

Função

Essa API é usada para aceitar um nó em um cluster especificado.

O URL para gerenciamento de cluster está no formato https://Endpoint/uri. No URL, uri indica o caminho do recurso, ou seja, o caminho para o acesso à API.

URI

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/add

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.

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

Sim

String

Versão da API. O valor é fixado em v3.

kind

Sim

String

Tipo de API. O valor é fixado em List.

nodeList

Sim

Array of AddNode objects

Lista dos nós a serem aceitos.

Tabela 4 AddNode

Parâmetro

Obrigatório

Tipo

Descrição

serverID

Sim

String

ID do servidor. Para obter detalhes sobre como obter o ID do servidor, consulte a documentação do ECS ou do BMS.

spec

Sim

ReinstallNodeSpec object

Parâmetros de configuração de reinstalação de nó. Atualmente, nós aceitos não podem ser adicionados em pools de nós.

Tabela 5 ReinstallNodeSpec

Parâmetro

Obrigatório

Tipo

Descrição

os

Sim

String

Sistema operacional de Windows. Se você especificar uma imagem personalizada, a versão real do sistema operacional na imagem do IMS será usada. Selecione uma versão do SO suportada pelo cluster atual, por exemplo, EulerOS 2.5, CentOS 7.6 ou EulerOS 2.8.

login

Sim

Login object

Modo de logon do nó. O par de chaves ou a senha devem ser usados para o logon.

name

Não

String

Nome do nó.

NOTA:

Especifique esse campo durante a reinstalação alterará o nome do nó e o nome do servidor será alterado de acordo. Por padrão, o nome do servidor atual é usado como o nome do nó. Digite de 1 a 56 caracteres que comecem com uma letra e não terminem com um hífen (-).

serverConfig

Não

ReinstallServerConfig object

Configuração do servidor.

volumeConfig

Não

ReinstallVolumeConfig object

Configuração do gerenciamento de volumes.

runtimeConfig

Não

ReinstallRuntimeConfig object

Configuração do tempo de execução do contêiner.

k8sOptions

Não

ReinstallK8sOptionsConfig object

Configuração do nó do Kubernetes.

lifecycle

Não

NodeLifecycleConfig object

Configuração personalizada do ciclo de vida de um nó.

initializedConditions

Não

Array of strings

Sinalizador de inicialização personalizado.

Antes que os nós do CCE sejam inicializados, eles são contaminados com node.cloudprovider.kubernetes.io/uninitialized para evitar que os pods sejam programados para eles.

O CCE oferece suporte a sinalizadores de inicialização personalizados. Depois de receber o parâmetro initializedConditions, o CCE converte o valor do parâmetro em um rótulo de nó e provisiona o rótulo com o nó, por exemplo, cloudprovider.openvessel.io/inject-initialized-conditions=CCEInitial_CustomedInitial.

Depois que o nó é rotulado, seu status.Conditions é pesquisado para verificar se o type de conditions tem um nome de sinalizador, como CCEInitial e CustomedInitial. Se todos os sinalizadores de entrada existirem e seu status for True, a inicialização do nó será concluída e a mancha de inicialização será removida.

  • Use apenas letras e dígitos. Máximo de caracteres: 20.

  • Máximo de sinalizadores: 2.

extendParam

Não

ReinstallExtendParam object

Parâmetro de reinstalação estendida, que é descartado.

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 ReinstallServerConfig

Parâmetro

Obrigatório

Tipo

Descrição

userTags

Não

Array of UserTag objects

Rótulos de servidor de nuvem. A chave de um rótulo deve ser exclusiva. O número máximo de rótulos definidos pelo usuário suportados pelo CCE depende da região. Na região que suporta o menor número de rótulos, você ainda pode criar até 5 rótulos para um servidor de nuvem.

rootVolume

Não

ReinstallVolumeSpec object

Configurações de disco do sistema usadas na reinstalação.

Tabela 9 UserTag

Parâmetro

Obrigatório

Tipo

Descrição

key

Não

String

Chave do rótulo do servidor de nuvem. O valor não pode começar com CCE- ou __type_baremetal.

value

Não

String

Valor do rótulo do servidor de nuvem.

Tabela 10 ReinstallVolumeSpec

Parâmetro

Obrigatório

Tipo

Descrição

imageID

Não

String

ID de imagem personalizada.

cmkID

Não

String

ID da chave mestra do usuário. Se este parâmetro for deixado em branco por padrão, o disco EVS não é criptografado.

Tabela 11 ReinstallVolumeConfig

Parâmetro

Obrigatório

Tipo

Descrição

lvmConfig

Não

String

Configurações do disco de dados do Docker.

Este é um exemplo de configuração padrão:

"lvmConfig":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear"

Os seguintes campos estão incluídos:

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

  • userPath: 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.

storage

Não

Storage object

Parâmetro de gerenciamento de inicialização de disco.

Este parâmetro é complexo de configurar. Para obter detalhes, consulte Anexação de discos a um nó.

Se esse parâmetro mantiver seu padrão, os discos serão gerenciados com base no parâmetro DockerLVMConfigOverride (descartado) em extendParam. Este parâmetro é suportado pelos clusters da versão 1.15.11 e posterior.

NOTA:

Se uma especificação de nó envolver discos locais e discos EVS ao mesmo tempo, não retenha o valor padrão deste parâmetro para evitar partições de disco inesperadas.

Tabela 12 Storage

Parâmetro

Obrigatório

Tipo

Descrição

storageSelectors

Sim

Array of StorageSelectors objects

Seleção de disco. Os discos correspondentes são gerenciados de acordo com matchLabels e storageType.

storageGroups

Sim

Array of StorageGroups objects

Um grupo de armazenamento consiste em vários dispositivos de armazenamento. É usado para dividir o espaço de armazenamento.

Tabela 13 StorageSelectors

Parâmetro

Obrigatório

Tipo

Descrição

name

Sim

String

Nome do seletor, usado como índice de selectorNames em storageGroup. Portanto, o nome de cada seletor deve ser exclusivo.

storageType

Sim

String

Especifica o tipo de armazenamento. Atualmente, apenas evs (volumes EVS) e local (volumes locais) são suportados. O armazenamento local não suporta a seleção de disco. Todos os discos locais formarão um VG. Portanto, somente um storageSelector do tipo local é permitido.

matchLabels

Não

matchLabels object

Campo correspondente de um volume do EVS. Os campos size, volumeType, metadataEncrypted, metadataCmkid e count são suportados.

Tabela 14 matchLabels

Parâmetro

Obrigatório

Tipo

Descrição

size

Não

String

Tamanho do disco correspondente. Se este parâmetro não for especificado, o tamanho do disco não é limitado. Exemplo: 100

volumeType

Não

String

Tipos de disco EVS. SSD, GPSSD, SAS, ESSD e SATA são suportados.

metadataEncrypted

Não

String

Identificador de criptografia do disco. 0 indica que o disco não está encriptado e 1 indica que o disco está encriptado.

metadataCmkid

Não

String

ID da chave mestra do cliente de um disco criptografado. O valor é uma cadeia de 36 bytes.

count

Não

String

Número de discos a serem selecionados. Se este parâmetro for deixado em branco, todos os discos deste tipo serão selecionados.

Tabela 15 StorageGroups

Parâmetro

Obrigatório

Tipo

Descrição

name

Sim

String

Nome de um grupo de armazenamento virtual, que deve ser exclusivo.

NOTA:

|

  • Se cceManaged for definido como true, o nome deve ser definido como vgpass.

  • Se o disco de dados for usado como um volume de armazenamento temporário, o nome deverá ser vg-everest-localvolume-ephemeral.

  • Se o disco de dados for usado como um volume de armazenamento persistente, o nome deverá ser vg-everest-localvolume-persistent.

cceManaged

Não

Boolean

Espaço de armazenamento para Kubernetes e componentes de tempo de execução. Apenas um grupo pode ser definido como true. Se esse parâmetro for deixado em branco, o valor padrão false será usado.

selectorNames

Sim

Array of strings

Este parâmetro corresponde a name em storageSelectors. Um grupo pode corresponder a vários seletores, mas um seletor pode corresponder a apenas um grupo.

virtualSpaces

Sim

Array of VirtualSpace objects

Gerenciamento detalhado da configuração do espaço em um grupo.

Tabela 16 VirtualSpace

Parâmetro

Obrigatório

Tipo

Descrição

name

Sim

String

Nome de um virtualSpace.

  • Kubernetes: configuração do espaço do Kubernetes. lvmConfig precisa ser configurado.

  • runtime: configuração do espaço de tempo de execução. runtimeConfig precisa ser configurado.

  • user: configuração do espaço do usuário. lvmConfig precisa ser configurado.

size

Sim

String

Tamanho de um virtualSpace. O valor deve ser um inteiro em porcentagem. Exemplo: 90%.

NOTA:

A soma das porcentagens de todos os virtualSpaces em um grupo não pode exceder 100%.

lvmConfig

Não

LVMConfig object

Configurações de LVM, aplicáveis a kubernetes e espaços de user. Observe que um espaço virtual suporta apenas uma configuração.

runtimeConfig

Não

RuntimeConfig object

Configurações de tempo de execução, aplicável ao espaço de runtime. Observe que um espaço virtual suporta apenas uma configuração.

Tabela 17 LVMConfig

Parâmetro

Obrigatório

Tipo

Descrição

lvType

Sim

String

Modo de gravação de LVM. linear indica o modo linear. striped indica o modo repartido, no qual vários discos são usados para formar uma distribuição para melhorar o desempenho do disco.

path

Não

String

Caminho ao qual o disco está anexado. Este parâmetro tem efeito somente na configuração do usuário. O valor é um caminho absoluto. Dígitos, letras, pontos (.), hifens (-) e sublinhados (_) são permitidos.

Tabela 18 RuntimeConfig

Parâmetro

Obrigatório

Tipo

Descrição

lvType

Sim

String

Modo de gravação de LVM. linear indica o modo linear. striped indica o modo repartido, no qual vários discos são usados para formar uma distribuição para melhorar o desempenho do disco.

Tabela 19 ReinstallRuntimeConfig

Parâmetro

Obrigatório

Tipo

Descrição

dockerBaseSize

Não

Integer

Espaço em disco disponível de um único contêiner em um nó, em GB.

Se este parâmetro for deixado em branco ou for definido como 0, o valor padrão será usado. No modo de Device Mapper, o valor padrão é 10. No modo de OverlayFS, o espaço disponível de um único contêiner não é limitado por padrão, e a configuração dockerBaseSize só entra em vigor nos nós EulerOS no cluster da nova versão.

Para obter detalhes sobre como alocar o espaço para o tempo de execução do contêiner, consulte Alocação de espaço em disco de dados.

Quando Device Mapper é usado, é aconselhável definir dockerBaseSize para um valor menor ou igual a 80 GB. Se o valor for muito grande, o tempo de execução do contêiner pode falhar ao ser iniciado devido à inicialização longa. Se houver requisitos especiais para o espaço em disco do contêiner, você poderá montar um dispositivo de armazenamento externo ou local.

runtime

Não

Runtime object

Tempo de execução do contêiner:

  • Clusters da v1.25 ou anterior: docker.

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

Tabela 20 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 21 ReinstallK8sOptionsConfig

Parâmetro

Obrigatório

Tipo

Descrição

labels

Não

Map<String,String>

Definido em pares chave-valor. Um máximo de 20 pares chave-valor são permitidos.

  • Key: digite 1 a 63 caracteres começando com uma letra ou dígito. Apenas letras, dígitos, hifens (-), sublinhados (_) e pontos (.) são permitidos. Um subdomínio do DNS pode ser prefixo para uma chave e conter um máximo de 253 caracteres. Exemplo de subdomínio do DNS: example.com/my-key

  • Value: o valor pode ser deixado em branco ou conter de 1 a 63 caracteres que começam com uma letra ou dígito. Somente letras, dígitos, hifens (-), sublinhados (_) e pontos (.) são permitidos na cadeia de caracteres.

Exemplo:

"k8sTags": {
  "key": "value"
}

taints

Não

Array of Taint objects

Manchas podem ser adicionadas para antiafinidade ao criar nós. Um máximo de 20 manchas podem ser adicionadas. Cada mancha contém os seguintes parâmetros:

  • Key: uma chave deve conter de 1 a 63 caracteres, começando com uma letra ou dígito. Apenas letras, dígitos, hifens (-), sublinhados (_) e pontos (.) são permitidos. Um nome de subdomínio do DNS pode ser usado como prefixo de uma chave.

  • Value: um valor deve começar com uma letra ou dígito e pode conter no máximo 63 caracteres, incluindo letras, dígitos, hifens (-) e pontos (.).

  • Effect: as opções disponíveis são NoSchedule, PreferNoSchedule e NoExecute.

Exemplo:

"taints": [{
  "key": "status",
  "value": "unavailable",
  "effect": "NoSchedule"
}, {
  "key": "looks",
  "value": "bad",
  "effect": "NoSchedule"
}]

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.

nicMultiqueue

Não

String

  • Número de filas da ENI. Exemplo de configuração:

"[{\"queue\":4}]"

Os seguintes campos estão incluídos:

  • queue: número de filas da ENI.

  • Este campo pode ser configurado somente para nós do BMS em um cluster do CCE Turbo.

  • As proporções suportadas são {"1":128, "2":92, "4":92, "8":32, "16":16, "28":9}. Ou seja, se houver uma fila, um máximo de 128 ENIs podem ser vinculadas. Se houver duas filas, um máximo de 92 ENIs podem ser vinculadas para duas filas.

  • Um número maior de filas da ENI indica um desempenho mais alto, mas menos ENIs podem ser vinculadas. As configurações de fila não podem ser alteradas após a criação do pool de nós.

nicThreshold

Não

String

  • Limites de pré-vinculação da ENI. Exemplo de configuração:

"0.3:0.6"
  • Low threshold (L): determina o número mínimo de ENIs pré-vinculadas (mín.). Fórmula: mín. = número total de ENIs do nó x L

  • Low threshold (L): determina o número máximo de ENIs pré-vinculadas (máx.). Fórmula: máx. = número total de ENIs do nó x H

  • Número de ENI vinculadas a um nó do BMS (B) e número de ENI utilizadas pelos pods (U): U + mín. < B < U + máx.

  • Se o número de ENIs pré-vinculadas em um nó do BMS for menor do que o mínimo permitido, o sistema vinculará mais ENIs para tornar os números iguais.

  • Se o número de ENIs pré-vinculadas em um nó do BMS for maior do que o máximo permitido, o sistema periodicamente desvincula ENIs (aproximadamente a cada 2 minutos) para tornar os números iguais.

  • Ambos os limiares são valores de um lugar decimal variando de 0,0 a 1,0. O limiar baixo deve ser menor ou igual ao alto.

  • Este campo pode ser configurado somente para nós do BMS em um cluster do CCE Turbo.

  • Os ENIs pré-vinculadas podem acelerar a criação de cargas de trabalho, mas ocupam endereços IP.

Tabela 22 Taint

Parâmetro

Obrigatório

Tipo

Descrição

key

Sim

String

Chave.

value

Não

String

Valor.

effect

Sim

String

Efeito.

Tabela 23 NodeLifecycleConfig

Parâmetro

Obrigatório

Tipo

Descrição

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)

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)

Tabela 24 ReinstallExtendParam

Parâmetro

Obrigatório

Tipo

Descrição

alpha.cce/NodeImageID

Não

String

(Descartado) ID da imagem do usuário para executar o sistema operacional de destino. Especificar esse parâmetro é equivalente a especificar imageID em ReinstallVolumeSpec. O valor original será substituído.

Parâmetros de resposta

Código de status: 200

Tabela 25 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

jobid

String

ID da tarefa retornado depois que a tarefa é entregue. O ID da tarefa pode ser usado para consultar o status de execução da tarefa.

Exemplo de solicitações

Adicione um nó executando o EulerOS 2.5 a um cluster.

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/add

{
  "kind" : "List",
  "apiVersion" : "v3",
  "nodeList" : [ {
    "serverID" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "spec" : {
      "name" : "my-ecs-0001",
      "os" : "EulerOS 2.5",
      "login" : {
        "sshKey" : "KeyPair-001"
      }
    }
  } ]
}

Exemplo de respostas

Código de status: 200

A tarefa para aceitar um nó em um cluster especificado é entregue com êxito.

{
  "jobid" : "2ec9b78d-9368-46f3-8f29-d1a95622a568"
}

Códigos de status

Código de status

Descrição

200

A tarefa para aceitar um nó em um cluster especificado é entregue com êxito.

Códigos de erro

Consulte Códigos de erro.