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.

