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
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
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 |
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. |
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. |
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.
|
extendParam |
Não |
ReinstallExtendParam object |
Parâmetro de reinstalação estendida, que é descartado. |
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 |
---|---|---|---|
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. |
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. |
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. |
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:
|
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. |
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. |
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. |
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. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
name |
Sim |
String |
Nome de um grupo de armazenamento virtual, que deve ser exclusivo.
NOTA:
|
|
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. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
name |
Sim |
String |
Nome de um virtualSpace.
|
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. |
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. |
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. |
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:
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
name |
Não |
String |
Tempo de execução do contêiner. Valor padrão:
|
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.
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:
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 |
"[{\"queue\":4}]" Os seguintes campos estão incluídos:
|
nicThreshold |
Não |
String |
"0.3:0.6"
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
key |
Sim |
String |
Chave. |
value |
Não |
String |
Valor. |
effect |
Sim |
String |
Efeito. |
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) |
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
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.