Redefinição de um nó
Função
Essa API é usada para redefinir 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/reset
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 ResetNode objects |
Lista dos nós a serem redefinidos. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
nodeID |
Sim |
String |
ID do nó. Para obter detalhes sobre como obter o valor, consulte Como obter parâmetros no URI da API. |
spec |
Sim |
ReinstallNodeSpec object |
Parâmetros de configuração de reinstalação de nó. Os nós em um pool de nós não podem ser especificados externamente. Esses nós serão reinstalados com base nas configurações do pool de nós. Por padrão, esse parâmetro é obrigatório para nós em um pool de nós. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
os |
Sim |
String |
Sistema operacional. 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:
Especificar 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 dá suporte ao 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 do 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
-
Redefina os nós que executam o EulerOS 2.5 no pool de nós padrão.
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/reset { "kind" : "List", "apiVersion" : "v3", "nodeList" : [ { "nodeID" : "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy", "spec" : { "name" : "my-ecs-0001", "os" : "EulerOS 2.5", "login" : { "sshKey" : "KeyPair-001" } } } ] }
-
Redefina um nó em um pool de nós (especificação inválida).
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/reset { "kind" : "List", "apiVersion" : "v3", "nodeList" : [ { "nodeID" : "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 redefinir 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 redefinir um nó em um cluster especificado é entregue com êxito. |
Códigos de erro
Consulte Códigos de erro.