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

Criação de um pool de nós

Função

Essa API é usada para criar um pool de nós em um cluster especificado. Essa API pode ser chamada somente quando o cluster estiver no estado disponível, de expansão ou de expansão.

Ao criar um pool de nós em um cluster v1.21, você pode vincular grupos de segurança ao pool de nós. Um máximo de cinco grupos de segurança podem ser vinculados a um pool de nós.

Depois que os grupos de segurança de um pool de nós forem atualizados, a atualização entrará em vigor apenas para pods recém-criados. Você é aconselhado a expulsar os pods originais no nó.

Se não houver cluster, crie um. 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}/nodepools

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

kind

Sim

String

Tipo de API. O valor é fixado em NodePool.

apiVersion

Sim

String

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

metadata

Sim

NodePoolMetadata object

Informações de metadados do pool de nós

spec

Sim

NodePoolSpec object

Especificações do pool de nós

status

Não

NodePoolStatus object

Status do pool de nós

Tabela 4 NodePoolMetadata

Parâmetro

Obrigatório

Tipo

Descrição

name

Sim

String

Nome do pool de nós.

NOTA:

Regras para nomeação:

Digite 1 a 50 caracteres, começando com uma letra minúscula e não terminando com um hífen (-). Somente letras minúsculas, dígitos e hifens (-) são permitidos.

  • Não é possível criar pools de nós denominados DefaultPool.

uid

Não

String

UID do pool de nós. O valor é gerado automaticamente após a atualização do objeto. Um valor definido pelo usuário não terá efeito.

annotations

Não

Map<String,String>

Anotações de um pool de nós em pares chave-valor. Este parâmetro é usado apenas para consulta e não pode ser inserido por meio de uma solicitação. Os dados inseridos deste parâmetro são inválidos.

updateTimestamp

Não

String

Hora da atualização.

creationTimestamp

Não

String

Hora de criação.

Tabela 5 NodePoolSpec

Parâmetro

Obrigatório

Tipo

Descrição

type

Não

String

Tipo de pool de nós. Se este parâmetro for deixado em branco, o valor vm é usado por padrão.

  • vm: ECS
  • ElasticBMS: BMS C6 de computação geral avançada. Um exemplo de flavor é c6.22xlarge.2.physical.
  • bms: BMS

nodeTemplate

Sim

NodeSpec object

Parâmetros detalhados do modelo de pool de nós.

initialNodeCount

Não

Integer

Número inicial de nós para o pool de nós. Quando consultado, o valor é o número de nós de destino no pool de nós.

autoscaling

Não

NodePoolNodeAutoscaling object

Parâmetros de dimensionamento automático

nodeManagement

Não

NodeManagement object

Configuração de gerenciamento de nó

podSecurityGroups

Não

Array of SecurityID objects

Configuração do grupo de segurança. Este parâmetro está disponível apenas para clusters do CCE Turbo.

customSecurityGroups

Não

Array of strings

Configurações de grupo de segurança personalizadas para um pool de nós. Novos nós dimensionados em um pool de nós podem ser vinculados a um grupo de segurança especificado.

Tabela 6 NodeSpec

Parâmetro

Obrigatório

Tipo

Descrição

flavor

Sim

String

Especificações do nó. Para obter detalhes sobre as especificações de nó suportadas pelo CCE, consulte Descrição do flavor do nó.

az

Sim

String

Nome da AZ onde o nó a ser criado está localizado. Para obter detalhes sobre as AZs suportadas pelo CCE, consulte Regiões e pontos de extremidade.

os

Não

String

O tipo de SO do nó. Para obter detalhes sobre os sistemas operacionais compatíveis, consulte [Descrição do sistema operacional do nó] (node-os.xml).

NOTA:
  • O sistema seleciona automaticamente o SO suportado com base na versão do cluster. Se o cluster atual não oferecer suporte ao SO, um erro será relatado.
  • Se alpha.cce/NodeImageID em extendParam for especificado durante a criação do nó, não será necessário configurar esse parâmetro.
  • Esse parâmetro é obrigatório ao criar um pool de nós.

login

Sim

Login object

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

rootVolume

Sim

Volume object

Informações sobre discos no nó

dataVolumes

Sim

Array of Volume objects

Parâmetros do disco de dados do nó. Atualmente, você pode adicionar o segundo disco de dados para o seu nó no console do CCE. Esse disco de dados é usado pelo tempo de execução do contêiner e pelo kubelet. Não desinstale este disco. Caso contrário, o nó ficará indisponível. Para nós de DeC, a descrição do parâmetro é a mesma que para rootVolume.

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.

publicIP

Não

NodePublicIP object

EIP de um nó.

NOTA:

Este parâmetro não é suportado quando adiciona um nó a um pool de nós.

nodeNicSpec

Não

NodeNicSpec object

NIC do nó

count

Não

Integer

Número de nós a serem criados em um lote. O valor deve ser um inteiro positivo maior ou igual a 1 e menor ou igual ao limite definido. Esse parâmetro pode ser deixado em branco quando é usado para um pool de nós.

billingMode

Não

Integer

Modo de cobrança de nó.

  • 0: pagamento por uso
  • 1: anual/mensal
  • 2: (descartado) cobrança anual/mensal com pagamento automático ativado

taints

Não

Array of Taint objects

Você pode adicionar manchas aos nós criados para configurar a antiafinidade. 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. Ao criar um nó, você pode especificar o valor inicial para este parâmetro e este campo não é retornado durante a consulta. Ao usar pools de nós, o valor inicial pode ser especificado no modelo de nó e esse campo é retornado durante a consulta. Em outros cenários, esse campo não é retornado durante a consulta.

Exemplo:

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

k8sTags

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. Ao criar um nó, você pode especificar o valor inicial para este parâmetro e este campo não é retornado durante a consulta. Ao usar pools de nós, o valor inicial pode ser especificado no modelo de nó e esse campo é retornado durante a consulta. Em outros cenários, esse campo não é retornado durante a consulta.

Exemplo:

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

ecsGroupId

Não

String

ID do grupo do servidor de nuvem. Se esse campo for especificado, o nó será criado no grupo de servidores de nuvem especificado.

dedicatedHostId

Não

String

ID do DeH para o qual o nó está agendado.

NOTA:

Não há suporte para esse parâmetro quando você adiciona um nó durante a criação do pool de nós.

userTags

Não

Array of UserTag objects

Tag do servidor de nuvem. A chave de tag deve ser exclusiva. O número máximo de tags personalizadas suportadas pelo CCE depende da região e não pode exceder 8. Ao criar um nó, você pode especificar o valor inicial para este parâmetro e este campo não é retornado durante a consulta. Ao usar pools de nós, o valor inicial pode ser especificado no modelo de nó e esse campo é retornado durante a consulta. Em outros cenários, esse campo não é retornado durante a consulta.

NOTA:

Use apenas letras, caracteres Unicode, dígitos, caracteres especiais (-,_). Máximo de caracteres: 36

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.

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

NodeExtendParam object

Parâmetros estendidos para criar um nó.

Tabela 7 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 8 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 9 Volume

Parâmetro

Obrigatório

Tipo

Descrição

size

Sim

Integer

Tamanho do disco, em GB.

  • Disco do sistema: 40 a 1024 -faixa de valores para discos de dados: 100 a 32768

volumetype

Sim

String

Tipo de disco. Para obter detalhes sobre valores possíveis, consulte a descrição do parâmetro root_volume na API usada para criar um ECS.

  • SAS: disco SAS de I/O alta
  • SSD: disco SSD de I/O ultra-alta
  • SATA: disco SATA de I/O comum. Os discos SATA foram removidos do EVS. Você pode encontrá-los anexados apenas em nós existentes.
  • ESSD: general-purpose SSD disk
  • GPSDD: general-purpose SSD disk .

extendParam

Não

Map<String,Object>

Parâmetros de disco estendido, definidos em extendparam na API usada para criar um ECS. Para obter detalhes, consulte Criação de um ECS.

cluster_id

Não

String

ID do pool de armazenamento usado pelo disco do sistema do ECS. Esse campo é usado somente para clusters de DeC, que funcionam como dssPoolID, ou seja, o ID do pool de armazenamento DSS.

Para obter o valor, consulte o campo ID na API usada para obter detalhes de um pool de armazenamento DSS.

cluster_type

Não

String

Classe de armazenamento do disco do sistema do servidor em nuvem. O valor é sempre dss. Este campo é usado somente para clusters de DeC.

hw:passthrough

Não

Boolean

  • Preste atenção a este campo se o seu ECS for compatível com SDI. Se o valor desse campo for true, um disco SCSI será criado.
  • Se o tipo de pool de nós for ElasticBMS, esse campo deve ser definido como true.
  • Se uma especificação de nó envolver discos locais e discos EVS ao mesmo tempo, defina os parâmetros de inicialização do disco. Para obter detalhes, consulte Anexação de discos a um nó.

metadata

Não

VolumeMetadata object

Informações de criptografia de disco EVS. Este campo é obrigatório somente quando você precisa criptografar o disco do sistema ou discos de dados do nó a ser criado.

Tabela 10 VolumeMetadata

Parâmetro

Obrigatório

Tipo

Descrição

__system__encrypted

Não

String

Se o disco EVS é criptografado. O valor 0 indica que o disco EVS não está criptografado e o valor 1 indica que o disco EVS está criptografado.

Se este parâmetro não for especificado, o disco EVS não será criptografado por padrão.

__system__cmkid

Não

String

ID de CMK, que indica criptografia em metadata. Este campo é usado com __system__encrypted.

Tabela 11 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 12 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 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.

Tabela 13 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 14 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 15 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 16 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 17 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 18 NodePublicIP

Parâmetro

Obrigatório

Tipo

Descrição

ids

Não

Array of strings

IDs de EIPs existentes. A quantidade não pode ser maior que o número de nós a serem criados.

NOTA:

Se ids foi definido, você não precisa definir count e eip.

count

Não

Integer

Número de EIPs a serem criados dinamicamente.

NOTA:

count e eip devem ser definidos ao mesmo tempo.

eip

Não

NodeEIPSpec object

Configuração do EIP.

Tabela 19 NodeEIPSpec

Parâmetro

Obrigatório

Tipo

Descrição

iptype

Sim

String

Tipo de EIP, especificado em publicip.type na API para atribuir um EIP. Para obter detalhes, consulte Atribuição de um EIP.

bandwidth

Não

NodeBandwidth object

Parâmetros de largura de banda do EIP

Tabela 20 NodeBandwidth

Parâmetro

Obrigatório

Tipo

Descrição

chargemode

Não

String

Modo de cobrança de largura de banda.

  • Se este campo não for especificado, a cobrança é baseada em largura de banda. - Se o campo for nulo, a cobrança é baseada na largura de banda.
  • Se o valor for traffic, a cobrança será baseado no tráfego.
  • Se o valor estiver fora das opções anteriores, o servidor de nuvem falhará ao ser criado.
NOTA:
  • Cobrança por largura de banda: a cobrança será baseada na taxa de transmissão de dados (em Mbps) das redes públicas. Este modo de cobrança é recomendado se o uso da largura de banda for superior a 10%.
  • Cobrança por tráfego: a cobrança baseia-se na quantidade total de dados (em GB) transmitidos através da rede pública. Esse modo está disponível somente quando você está criando um nó de pagamento por uso. Esse modo de cobrança é recomendado se o uso da largura de banda for inferior a 10%.

size

Não

Integer

Tamanho da largura de banda, especificado em bandwidth.size na API para atribuir um EIP. Para obter detalhes, consulte Atribuição de um EIP.

sharetype

Não

String

Tipo de compartilhamento de largura de banda. Opções de valor: PER (largura de banda exclusiva)

Tabela 21 NodeNicSpec

Parâmetro

Obrigatório

Tipo

Descrição

primaryNic

Não

NicSpec object

Descrição da NIC primária.

extNics

Não

Array of NicSpec objects

NIC de extensão

NOTA:

Este parâmetro não é suportado quando adiciona um nó a um pool de nós.

Tabela 22 NicSpec

Parâmetro

Obrigatório

Tipo

Descrição

subnetId

Não

String

ID da sub-rede à qual a NIC pertence. Se subnetId não for especificado ao criar a ENI primária, a sub-rede do cluster será usada. Ao criar uma ENI de extensão, você deve especificar subnetId.

fixedIps

Não

Array of strings

O endereço IP da ENI primária é especificado usando fixedIps. O número de endereços IP não pode ser maior que o número de nós criados. fixedIps ou ipBlock podem ser especificados. fiexdIps não pode ser especificado para ENIs de extensão.

ipBlock

Não

String

Formato CIDR do intervalo de IP da NIC primária. O endereço IP do nó criado cai nesse intervalo. fixedIps e ipBlock não podem ser especificados ao mesmo tempo.

Tabela 23 Taint

Parâmetro

Obrigatório

Tipo

Descrição

key

Sim

String

Chave.

value

Não

String

Valor.

effect

Sim

String

Efeito.

Tabela 24 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 25 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 26 NodeExtendParam

Parâmetro

Obrigatório

Tipo

Descrição

ecs:performancetype

Não

String

Tipos de flavors do ECS. Esse campo é retornado na resposta.

orderID

Não

String

ID do pedido. Este parâmetro é retornado na resposta quando o nó é faturado anualmente/mensalmente com o pagamento automático ativado (somente em cenários de criação).

productID

Não

String

ID do produto. Este campo é retornado na resposta quando o nó é faturado anualmente/mensal com o pagamento automático ativado.

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.

O número de pods que podem ser criados em um nó é determinado por vários parâmetros. Para obter detalhes, consulte Número máximo de pods que podem ser criados em um nó.

periodType

Não

String

  • month: a unidade é mês.
  • year: a unidade é ano.
NOTA:

Parâmetro de solicitação, que é válido e obrigatório somente quando billingMode é definido como 1 (cobrança anual/mensal) ou 2 (cobrança anual/mensal com renovação automática ativada) (descartado). Parâmetro de resposta, que é retornado somente quando um nó anual/mensal é criado.

periodNum

Não

Integer

Duração da assinatura. O valor pode ser:

  • Se periodType for month, o valor varia de 1 a 9.
  • Se periodType for year, o valor será 1.
NOTA:

Parâmetro de solicitação, que é válido e obrigatório quando billingMode é definido como 1 ou 2 (descartado). Parâmetro de resposta, que é retornado somente quando um nó anual/mensal é criado.

isAutoRenew

Não

String

Se a renovação automática está ativada.

  • true: a renovação automática está ativada.
  • false: a renovação automática não está ativada.
NOTA:

Este campo é válido quando billingMode é definido como 1 ou 2 (descartado). Se não for especificado, a renovação automática não está ativada.

isAutoPay

Não

String

Se deduzir taxas automaticamente.

  • true: ative a dedução automática de taxas.
  • false: não ative a dedução automática de taxas.
NOTA:

Este campo é válido quando billingMode é definido como 1 ou 2 (descartado). Se não for especificado quando billingMode estiver definido como 1, a dedução automática da taxa não estará ativada. (Descartado: se não for especificado quando billingMode estiver definido como 2, a dedução automática da taxa será ativada.)

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.) Exemplo de configuração padrão:

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

Por padrão, se nenhum disco VD estiver disponível, ocorrerá um erro porque o disco de dados não foi encontrado. Defina diskType com base no tipo de letra de unidade real. 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.

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.

publicKey

Não

String

Chave pública de um nó.

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

Este parâmetro é necessário quando uma imagem personalizada é usada para criar um nó do BMS.

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.

chargingMode

Não

Integer

Modo de cobrança de um nó. Este parâmetro foi obsoleto. Use o parâmetro billingMode no NodeSpec.

agency_name

Não

String

Nome de uma agência

Uma agência é criada por um administrador de locatário no Identity and Access Management (IAM) para fornecer credenciais temporárias para que os nós do CCE acessem os serviços em nuvem. Este parâmetro é retornado somente quando é transferido durante a criação do nó.

kube-reserved-mem

Não

Integer

Memória de nó reservada, que é reservada para componentes do Kubernetes.

system-reserved-mem

Não

Integer

Memória de nó reservada, que é reservada para componentes do sistema.

Tabela 27 NodePoolNodeAutoscaling

Parâmetro

Obrigatório

Tipo

Descrição

enable

Não

Boolean

Se deve ativar o dimensionamento automático.

minNodeCount

Não

Integer

Número mínimo de nós permitidos se o dimensionamento automático estiver ativado. O valor não pode ser maior que o número máximo de nós permitidos pelas especificações do cluster.

maxNodeCount

Não

Integer

Número máximo de nós permitidos se o dimensionamento automático estiver ativado. Esse valor deve ser maior ou igual ao valor de minNodeCount e não pode exceder o número máximo de nós nas especificações do cluster.

scaleDownCooldownTime

Não

Integer

Intervalo entre duas operações de dimensionar, em minutos. Durante esse período, os nós adicionados após uma ampliação não serão excluídos.

priority

Não

Integer

Peso de um pool de nós. Um pool de nós com um peso maior tem uma prioridade mais alta durante o dimensionamento.

Tabela 28 NodeManagement

Parâmetro

Obrigatório

Tipo

Descrição

serverGroupReference

Não

String

ID do grupo do servidor de nuvem. Se esse campo for especificado, todos os nós no pool de nós serão criados nesse grupo. O ID do grupo pode ser especificado somente quando você cria o pool de nós e não pode ser modificado. Quando você especifica um grupo de servidores de nuvem, o número de nós no pool de nós não pode exceder a cota do grupo.

Tabela 29 SecurityID

Parâmetro

Obrigatório

Tipo

Descrição

id

Não

String

ID do grupo de segurança

Tabela 30 NodePoolStatus

Parâmetro

Obrigatório

Tipo

Descrição

currentNode

Não

Integer

Número total de nós no pool de nós atual (excluindo os nós que estão sendo excluídos)

creatingNode

Não

Integer

Número de nós no processo de criação no pool de nós

deletingNode

Não

Integer

Número de nós que estão sendo excluídos no pool de nós atual.

phase

Não

String

Status do pool de nós.

  • Null: disponível (o número de nós atuais no pool de nós atingiu o valor esperado e nenhum dimensionamento de nó está sendo executado.)
  • Synchronizing: dimensionamento em andamento (o número de nós atuais no pool de nós não atinge o valor esperado e nenhum dimensionamento de nó está sendo executado.)
  • Synchronized: dimensionamento pendente (o número de nós atuais no pool de nós não atinge o valor esperado ou o dimensionamento de nós está sendo executado.)
  • SoldOut: o pool de nós não pode ser dimensionado. (Este campo é usado em vários cenários, por exemplo, os recursos no pool de nós foram esgotados ou a cota de recursos é insuficiente.)
NOTA:

Este status de pool de nós foi descartado e está reservado apenas para compatibilidade. Você não é aconselhado a usá-lo. As substituições são as seguintes:

  • Status do dimensionamento do pool de nós: você pode obter o status preciso do pool de nós atual com base em parâmetros como currentNode, creatingNode ou deletingNode.
  • Expansão do pool de nós: você pode usar conditions para obter o status detalhado de um pool de nós. Scalable pode substituir SoldOut.
  • Deleting: o ECS está sendo excluído.
  • Error: ocorre um erro.

jobId

Não

String

ID de uma tarefa executads no pool de nós

conditions

Não

Array of NodePoolCondition objects

Detalhes do status do pool de nós. Para obter detalhes, consulte a definição de Condition.

Tabela 31 NodePoolCondition

Parâmetro

Obrigatório

Tipo

Descrição

type

Não

String

Tipo de condição. As opções são as seguintes:

  • Scalable: se um pool de nós pode ser dimensionado. Se o status for False, o dimensionamento do pool de nós não será acionado novamente.
  • QuotaInsufficient: as cotas das quais depende o dimensionamento do pool de nós são insuficientes, afetando o status do dimensionamento do pool de nós.
  • ResourceInsufficient: os recursos dos quais depende o dimensionamento do pool de nós são insuficientes, afetando o status do dimensionamento do pool de nós.
  • UnexpectedError: o pool de nós falha em ser dimensionado devido a motivos inesperados, afetando o status de dimensionamento do pool de nós.
  • LockedByOrder: o pool de nós faturado anualmente/mensal está bloqueado devido a um pedido. O valor de Reason é o ID do pedido pendente.
  • Error: ocorre um erro de pool de nós. Um gatilho comum é a falha de exclusão.

status

Não

String

Status atual de Condition. As opções são as seguintes:

  • "True"
  • "False"

lastProbeTime

Não

String

Hora em que o status foi verificado pela última vez

lastTransitTime

Não

String

Hora em que o status foi alterado pela última vez

reason

Não

String

Motivo pelo qual o status foi alterado pela última vez

message

Não

String

Descrição detalhada da condição

Parâmetros de resposta

Código de status: 201

Tabela 32 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

kind

String

Tipo de API. O valor é fixado em NodePool.

apiVersion

String

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

metadata

NodePoolMetadata object

Informações de metadados do pool de nós

spec

NodePoolSpec object

Especificações do pool de nós

status

NodePoolStatus object

Status do pool de nós

Tabela 33 NodePoolMetadata

Parâmetro

Tipo

Descrição

name

String

Nome do pool de nós.

NOTA:

Regras para nomeação:

Digite 1 a 50 caracteres, começando com uma letra minúscula e não terminando com um hífen (-). Somente letras minúsculas, dígitos e hifens (-) são permitidos.

  • Não é possível criar pools de nós denominados DefaultPool.

uid

String

UID do pool de nós. O valor é gerado automaticamente após a atualização do objeto. Um valor definido pelo usuário não terá efeito.

annotations

Map<String,String>

Anotações de um pool de nós em pares chave-valor. Este parâmetro é usado apenas para consulta e não pode ser inserido por meio de uma solicitação. Os dados inseridos deste parâmetro são inválidos.

updateTimestamp

String

Hora da atualização.

creationTimestamp

String

Hora de criação.

Tabela 34 NodePoolSpec

Parâmetro

Tipo

Descrição

type

String

Tipo de pool de nós. Se este parâmetro for deixado em branco, o valor vm é usado por padrão.

  • vm: ECS
  • ElasticBMS: BMS C6 de computação geral avançada. Um exemplo de flavor é c6.22xlarge.2.physical.
  • bms: BMS

nodeTemplate

NodeSpec object

Parâmetros detalhados do modelo de pool de nós.

initialNodeCount

Integer

Número inicial de nós para o pool de nós. Quando consultado, o valor é o número de nós de destino no pool de nós.

autoscaling

NodePoolNodeAutoscaling object

Parâmetros de dimensionamento automático

nodeManagement

NodeManagement object

Configuração de gerenciamento de nó

podSecurityGroups

Array of SecurityID objects

Configuração do grupo de segurança. Este parâmetro está disponível apenas para clusters do CCE Turbo.

customSecurityGroups

Array of strings

Configurações de grupo de segurança personalizadas para um pool de nós. Novos nós dimensionados em um pool de nós podem ser vinculados a um grupo de segurança especificado.

Tabela 35 NodeSpec

Parâmetro

Tipo

Descrição

flavor

String

Especificações do nó. Para obter detalhes sobre as especificações de nó suportadas pelo CCE, consulte Descrição do flavor do nó.

az

String

Nome da AZ onde o nó a ser criado está localizado. Para obter detalhes sobre as AZs suportadas pelo CCE, consulte Regiões e pontos de extremidade.

os

String

O tipo de SO do nó. Para obter detalhes sobre os sistemas operacionais compatíveis, consulte [Descrição do sistema operacional do nó] (node-os.xml).

NOTA:
  • O sistema seleciona automaticamente o SO suportado com base na versão do cluster. Se o cluster atual não oferecer suporte ao SO, um erro será relatado.
  • Se alpha.cce/NodeImageID em extendParam for especificado durante a criação do nó, não será necessário configurar esse parâmetro.
  • Esse parâmetro é obrigatório ao criar um pool de nós.

login

Login object

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

rootVolume

Volume object

Informações sobre discos no nó

dataVolumes

Array of Volume objects

Parâmetros do disco de dados do nó. Atualmente, você pode adicionar o segundo disco de dados para o seu nó no console do CCE. Esse disco de dados é usado pelo tempo de execução do contêiner e pelo kubelet. Não desinstale este disco. Caso contrário, o nó ficará indisponível. Para nós de DeC, a descrição do parâmetro é a mesma que para rootVolume.

storage

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.

publicIP

NodePublicIP object

EIP de um nó.

NOTA:

Este parâmetro não é suportado quando adiciona um nó a um pool de nós.

nodeNicSpec

NodeNicSpec object

NIC do nó

count

Integer

Número de nós a serem criados em um lote. O valor deve ser um inteiro positivo maior ou igual a 1 e menor ou igual ao limite definido. Esse parâmetro pode ser deixado em branco quando é usado para um pool de nós.

billingMode

Integer

Modo de cobrança de nó.

  • 0: pagamento pelo uso
  • 1: anual/mensal
  • 2: (descartado) cobrança anual/mensal com pagamento automático ativado

taints

Array of Taint objects

Você pode adicionar manchas aos nós criados para configurar a antiafinidade. 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. Ao criar um nó, você pode especificar o valor inicial para este parâmetro e este campo não é retornado durante a consulta. Ao usar pools de nós, o valor inicial pode ser especificado no modelo de nó e esse campo é retornado durante a consulta. Em outros cenários, esse campo não é retornado durante a consulta.

Exemplo:

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

k8sTags

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. Ao criar um nó, você pode especificar o valor inicial para este parâmetro e este campo não é retornado durante a consulta. Ao usar pools de nós, o valor inicial pode ser especificado no modelo de nó e esse campo é retornado durante a consulta. Em outros cenários, esse campo não é retornado durante a consulta.

Exemplo:

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

ecsGroupId

String

ID do grupo do servidor de nuvem. Se esse campo for especificado, o nó será criado no grupo de servidores de nuvem especificado.

dedicatedHostId

String

ID do DeH para o qual o nó está agendado.

NOTA:

Não há suporte para esse parâmetro quando você adiciona um nó durante a criação do pool de nós.

userTags

Array of UserTag objects

Tag do servidor de nuvem. A chave de tag deve ser exclusiva. O número máximo de tags personalizadas suportadas pelo CCE depende da região e não pode exceder 8. Ao criar um nó, você pode especificar o valor inicial para este parâmetro e este campo não é retornado durante a consulta. Ao usar pools de nós, o valor inicial pode ser especificado no modelo de nó e esse campo é retornado durante a consulta. Em outros cenários, esse campo não é retornado durante a consulta.

NOTA:

Use apenas letras, caracteres Unicode, dígitos, caracteres especiais (-,_). Máximo de caracteres: 36

runtime

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.

initializedConditions

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

NodeExtendParam object

Parâmetros estendidos para criar um nó.

Tabela 36 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 37 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 38 Volume

Parâmetro

Tipo

Descrição

size

Integer

Tamanho do disco, em GB.

  • Disco do sistema: 40 a 1024 -faixa de valores para discos de dados: 100 a 32768

volumetype

String

Tipo de disco. Para obter detalhes sobre valores possíveis, consulte a descrição do parâmetro root_volume na API usada para criar um ECS.

  • SAS: disco SAS de I/O alta
  • SSD: disco SSD de I/O ultra-alta
  • SATA: disco SATA de I/O comum. Os discos SATA foram removidos do EVS. Você pode encontrá-los anexados apenas em nós existentes.
  • ESSD: general-purpose SSD disk
  • GPSDD: general-purpose SSD disk.

extendParam

Map<String,Object>

Parâmetros de disco estendido, definidos em extendparam na API usada para criar um ECS. Para obter detalhes, consulte Criação de um ECS.

cluster_id

String

ID do pool de armazenamento usado pelo disco do sistema do ECS. Esse campo é usado somente para clusters de DeC, que funcionam como dssPoolID, ou seja, o ID do pool de armazenamento DSS.

Para obter o valor, consulte o campo ID na API usada para obter detalhes de um pool de armazenamento DSS.

cluster_type

String

Classe de armazenamento do disco do sistema do servidor em nuvem. O valor é sempre dss. Este campo é usado somente para clusters de DeC.

hw:passthrough

Boolean

  • Preste atenção a este campo se o seu ECS for compatível com SDI. Se o valor desse campo for true, um disco SCSI será criado.
  • Se o tipo de pool de nós for ElasticBMS, esse campo deve ser definido como true.
  • Se uma especificação de nó envolver discos locais e discos EVS ao mesmo tempo, defina os parâmetros de inicialização do disco. Para obter detalhes, consulte Anexação de discos a um nó.

metadata

VolumeMetadata object

Informações de criptografia de disco EVS. Este campo é obrigatório somente quando você precisa criptografar o disco do sistema ou discos de dados do nó a ser criado.

Tabela 39 VolumeMetadata

Parâmetro

Tipo

Descrição

__system__encrypted

String

Se o disco EVS é criptografado. O valor 0 indica que o disco EVS não está criptografado e o valor 1 indica que o disco EVS está criptografado.

Se este parâmetro não for especificado, o disco EVS não será criptografado por padrão.

__system__cmkid

String

ID de CMK, que indica criptografia em metadata. Este campo é usado com __system__encrypted.

Tabela 40 Storage

Parâmetro

Tipo

Descrição

storageSelectors

Array of StorageSelectors objects

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

storageGroups

Array of StorageGroups objects

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

Tabela 41 StorageSelectors

Parâmetro

Tipo

Descrição

name

String

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

storageType

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

matchLabels object

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

Tabela 42 matchLabels

Parâmetro

Tipo

Descrição

size

String

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

volumeType

String

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

metadataEncrypted

String

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

metadataCmkid

String

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

count

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 43 StorageGroups

Parâmetro

Tipo

Descrição

name

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

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

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

Array of VirtualSpace objects

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

Tabela 44 VirtualSpace

Parâmetro

Tipo

Descrição

name

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

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

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

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 45 LVMConfig

Parâmetro

Tipo

Descrição

lvType

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

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 46 RuntimeConfig

Parâmetro

Tipo

Descrição

lvType

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 47 NodePublicIP

Parâmetro

Tipo

Descrição

ids

Array of strings

IDs de EIPs existentes. A quantidade não pode ser maior que o número de nós a serem criados.

NOTA:

Se ids foi definido, você não precisa definir count e eip.

count

Integer

Número de EIPs a serem criados dinamicamente.

NOTA:

count e eip devem ser definidos ao mesmo tempo.

eip

NodeEIPSpec object

Configuração do EIP.

Tabela 48 NodeEIPSpec

Parâmetro

Tipo

Descrição

iptype

String

Tipo de EIP, especificado em publicip.type na API para atribuir um EIP. Para obter detalhes, consulte Atribuição de um EIP.

bandwidth

NodeBandwidth object

Parâmetros de largura de banda do EIP

Tabela 49 NodeBandwidth

Parâmetro

Tipo

Descrição

chargemode

String

Modo de cobrança de largura de banda.

  • Se este campo não for especificado, a cobrança é baseada em largura de banda. - Se o campo for nulo, a cobrança é baseada na largura de banda.
  • Se o valor for traffic, a cobrança será baseado no tráfego.
  • Se o valor estiver fora das opções anteriores, o servidor de nuvem falhará ao ser criado.
NOTA:
  • Cobrança por largura de banda: a cobrança será baseada na taxa de transmissão de dados (em Mbps) das redes públicas. Este modo de cobrança é recomendado se o uso da largura de banda for superior a 10%.
  • Cobrança por tráfego: a cobrança baseia-se na quantidade total de dados (em GB) transmitidos através da rede pública. Esse modo está disponível somente quando você está criando um nó de pagamento por uso. Esse modo de cobrança é recomendado se o uso da largura de banda for inferior a 10%.

size

Integer

Tamanho da largura de banda, especificado em bandwidth.size na API para atribuir um EIP. Para obter detalhes, consulte Atribuição de um EIP.

sharetype

String

Tipo de compartilhamento de largura de banda. Opções de valor: PER (largura de banda exclusiva)

Tabela 50 NodeNicSpec

Parâmetro

Tipo

Descrição

primaryNic

NicSpec object

Descrição da NIC primária.

extNics

Array of NicSpec objects

NIC de extensão

NOTA:

Este parâmetro não é suportado quando adiciona um nó a um pool de nós.

Tabela 51 NicSpec

Parâmetro

Tipo

Descrição

subnetId

String

ID da sub-rede à qual a NIC pertence. Se subnetId não for especificado ao criar a ENI primária, a sub-rede do cluster será usada. Ao criar uma ENI de extensão, você deve especificar subnetId.

fixedIps

Array of strings

O endereço IP da ENI primária é especificado usando fixedIps. O número de endereços IP não pode ser maior que o número de nós criados. fixedIps ou ipBlock podem ser especificados. fiexdIps não pode ser especificado para ENIs de extensão.

ipBlock

String

Formato CIDR do intervalo de IP da NIC primária. O endereço IP do nó criado cai nesse intervalo. fixedIps e ipBlock não podem ser especificados ao mesmo tempo.

Tabela 52 Taint

Parâmetro

Tipo

Descrição

key

String

Chave.

value

String

Valor.

effect

String

Efeito.

Tabela 53 UserTag

Parâmetro

Tipo

Descrição

key

String

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

value

String

Valor do rótulo do servidor de nuvem.

Tabela 54 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 55 NodeExtendParam

Parâmetro

Tipo

Descrição

ecs:performancetype

String

Tipos de flavors do ECS. Esse campo é retornado na resposta.

orderID

String

ID do pedido. Este parâmetro é retornado na resposta quando o nó é faturado anualmente/mensalmente com o pagamento automático ativado (somente em cenários de criação).

productID

String

ID do produto. Este campo é retornado na resposta quando o nó é faturado anualmente/mensal com o pagamento automático ativado.

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.

O número de pods que podem ser criados em um nó é determinado por vários parâmetros. Para obter detalhes, consulte Número máximo de pods que podem ser criados em um nó.

periodType

String

  • month: a unidade é mês.
  • year: a unidade é ano.
NOTA:

Parâmetro de solicitação, que é válido e obrigatório somente quando billingMode é definido como 1 (cobrança anual/mensal) ou 2 (cobrança anual/mensal com renovação automática ativada) (descartado). Parâmetro de resposta, que é retornado somente quando um nó anual/mensal é criado.

periodNum

Integer

Duração da assinatura. O valor pode ser:

  • Se periodType for month, o valor varia de 1 a 9.
  • Se periodType for year, o valor será 1.
NOTA:

Parâmetro de solicitação, que é válido e obrigatório quando billingMode é definido como 1 ou 2 (descartado). Parâmetro de resposta, que é retornado somente quando um nó anual/mensal é criado.

isAutoRenew

String

Se a renovação automática está ativada.

  • true: a renovação automática está ativada.
  • false: a renovação automática não está ativada.
NOTA:

Este campo é válido quando billingMode é definido como 1 ou 2 (descartado). Se não for especificado, a renovação automática não está ativada.

isAutoPay

String

Se deduzir taxas automaticamente.

  • true: ative a dedução automática de taxas.
  • false: não ative a dedução automática de taxas.
NOTA:

Este campo é válido quando billingMode é definido como 1 ou 2 (descartado). Se não for especificado quando billingMode estiver definido como 1, a dedução automática da taxa não estará ativada. (Descartado: se não for especificado quando billingMode estiver definido como 2, a dedução automática da taxa será ativada.)

DockerLVMConfigOverride

String

Item de configuração do disco de dados do Docker. (Este parâmetro foi descartado. Use o campo storage em vez disso.) Exemplo de configuração padrão:

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

Por padrão, se nenhum disco VD estiver disponível, ocorrerá um erro porque o disco de dados não foi encontrado. Defina diskType com base no tipo de letra de unidade real. 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.

dockerBaseSize

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.

publicKey

String

Chave pública de um nó.

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

Este parâmetro é necessário quando uma imagem personalizada é usada para criar um nó do BMS.

nicMultiqueue

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

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.

chargingMode

Integer

Modo de cobrança de um nó. Este parâmetro foi obsoleto. Use o parâmetro billingMode no NodeSpec.

agency_name

String

Nome de uma agência

Uma agência é criada por um administrador de locatário no Identity and Access Management (IAM) para fornecer credenciais temporárias para que os nós do CCE acessem os serviços em nuvem. Este parâmetro é retornado somente quando é transferido durante a criação do nó.

kube-reserved-mem

Integer

Memória de nó reservada, que é reservada para componentes do Kubernetes.

system-reserved-mem

Integer

Memória de nó reservada, que é reservada para componentes do sistema.

Tabela 56 NodePoolNodeAutoscaling

Parâmetro

Tipo

Descrição

enable

Boolean

Se deve ativar o dimensionamento automático.

minNodeCount

Integer

Número mínimo de nós permitidos se o dimensionamento automático estiver ativado. O valor não pode ser maior que o número máximo de nós permitidos pelas especificações do cluster.

maxNodeCount

Integer

Número máximo de nós permitidos se o dimensionamento automático estiver ativado. Esse valor deve ser maior ou igual ao valor de minNodeCount e não pode exceder o número máximo de nós nas especificações do cluster.

scaleDownCooldownTime

Integer

Intervalo entre duas operações de dimensionar, em minutos. Durante esse período, os nós adicionados após uma ampliação não serão excluídos.

priority

Integer

Peso de um pool de nós. Um pool de nós com um peso maior tem uma prioridade mais alta durante o dimensionamento.

Tabela 57 NodeManagement

Parâmetro

Tipo

Descrição

serverGroupReference

String

ID do grupo do servidor de nuvem. Se esse campo for especificado, todos os nós no pool de nós serão criados nesse grupo. O ID do grupo pode ser especificado somente quando você cria o pool de nós e não pode ser modificado. Quando você especifica um grupo de servidores de nuvem, o número de nós no pool de nós não pode exceder a cota do grupo.

Tabela 58 SecurityID

Parâmetro

Tipo

Descrição

id

String

ID do grupo de segurança

Tabela 59 NodePoolStatus

Parâmetro

Tipo

Descrição

currentNode

Integer

Número total de nós no pool de nós atual (excluindo os nós que estão sendo excluídos)

creatingNode

Integer

Número de nós no processo de criação no pool de nós

deletingNode

Integer

Número de nós que estão sendo excluídos no pool de nós atual.

phase

String

Status do pool de nós.

  • Null: disponível (o número de nós atuais no pool de nós atingiu o valor esperado e nenhum dimensionamento de nó está sendo executado.)
  • Synchronizing: dimensionamento em andamento (o número de nós atuais no pool de nós não atinge o valor esperado e nenhum dimensionamento de nó está sendo executado.)
  • Synchronized: dimensionamento pendente (o número de nós atuais no pool de nós não atinge o valor esperado ou o dimensionamento de nós está sendo executado.)
  • SoldOut: o pool de nós não pode ser dimensionado. (Este campo é usado em vários cenários, por exemplo, os recursos no pool de nós foram esgotados ou a cota de recursos é insuficiente.)
NOTA:

Este status de pool de nós foi descartado e está reservado apenas para compatibilidade. Você não é aconselhado a usá-lo. As substituições são as seguintes:

  • Status do dimensionamento do pool de nós: você pode obter o status preciso do pool de nós atual com base em parâmetros como currentNode, creatingNode ou deletingNode.
  • Expansão do pool de nós: você pode usar conditions para obter o status detalhado de um pool de nós. Scalable pode substituir SoldOut.
  • Deleting: o ECS está sendo excluído.
  • Error: ocorre um erro.

jobId

String

ID de uma tarefa executads no pool de nós

conditions

Array of NodePoolCondition objects

Detalhes do status do pool de nós. Para obter detalhes, consulte a definição de Condition.

Tabela 60 NodePoolCondition

Parâmetro

Tipo

Descrição

type

String

Tipo de condição. As opções são as seguintes:

  • Scalable: se um pool de nós pode ser dimensionado. Se o status for False, o dimensionamento do pool de nós não será acionado novamente.
  • QuotaInsufficient: as cotas das quais depende o dimensionamento do pool de nós são insuficientes, afetando o status do dimensionamento do pool de nós.
  • ResourceInsufficient: os recursos dos quais depende o dimensionamento do pool de nós são insuficientes, afetando o status do dimensionamento do pool de nós.
  • UnexpectedError: o pool de nós falha em ser dimensionado devido a motivos inesperados, afetando o status de dimensionamento do pool de nós.
  • LockedByOrder: o pool de nós faturado anualmente/mensal está bloqueado devido a um pedido. O valor de Reason é o ID do pedido pendente.
  • Error: ocorre um erro de pool de nós. Um gatilho comum é a falha de exclusão.

status

String

Status atual de Condition. As opções são as seguintes:

  • "True"
  • "False"

lastProbeTime

String

Hora em que o status foi verificado pela última vez

lastTransitTime

String

Hora em que o status foi alterado pela última vez

reason

String

Motivo pelo qual o status foi alterado pela última vez

message

String

Descrição detalhada da condição

Exemplo de solicitações

Crie um pool de nós faturado com base em pagamento por uso com as seguintes configurações: o número de nós é 0. O flavor do pool de nós é de 2 vCPUs e 4 GiB de memória. O SO do nó é EulerOS 2.5. Contêineres do Docker são implementados. Os tamanhos do disco do sistema e do disco de dados do nó são 40 GB e 100 GB, respectivamente. Ambos os discos são do tipo I/O alta.

{
  "kind" : "NodePool",
  "apiVersion" : "v3",
  "metadata" : {
    "name" : "lc-it-nodepool-79796"
  },
  "spec" : {
    "initialNodeCount" : 0,
    "type" : "vm",
    "autoscaling" : {
      "enable" : false,
      "minNodeCount" : 0,
      "maxNodeCount" : 1,
      "scaleDownCooldownTime" : 0,
      "priority" : 0
    },
    "nodeManagement" : {
      "serverGroupReference" : ""
    },
    "nodeTemplate" : {
      "flavor" : "s6.large.2",
      "az" : "******",
      "os" : "EulerOS 2.5",
      "login" : {
        "sshKey" : "KeyPair-001"
      },
      "rootVolume" : {
        "volumetype" : "SAS",
        "size" : 40
      },
      "dataVolumes" : [ {
        "volumetype" : "SAS",
        "size" : 100,
        "extendParam" : {
          "useType" : "docker"
        }
      } ],
      "billingMode" : 0,
      "extendParam" : {
        "alpha.cce/preInstall" : "",
        "alpha.cce/postInstall" : "",
        "alpha.cce/NodeImageID" : "",
        "maxPods" : 110
      },
      "nodeNicSpec" : {
        "primaryNic" : {
          "subnetId" : "7e767d10-7548-4df5-ad72-aeac1d08bd8a"
        }
      }
    },
    "podSecurityGroups" : [ {
      "id" : ""
    } ]
  }
}

Exemplo de respostas

Código de status: 201

A tarefa para criar um pool de nós em um cluster especificado é entregue com êxito.

{
  "kind" : "NodePool",
  "apiVersion" : "v3",
  "metadata" : {
    "name" : "lc-it-nodepool-79796",
    "uid" : "99addaa2-69eb-11ea-a592-0255ac1001bb"
  },
  "spec" : {
    "type" : "vm",
    "nodeTemplate" : {
      "flavor" : "s6.large.2",
      "az" : "******",
      "os" : "EulerOS 2.5",
      "login" : {
        "sshKey" : "KeyPair-001"
      },
      "rootVolume" : {
        "volumetype" : "SAS",
        "size" : 40
      },
      "dataVolumes" : [ {
        "volumetype" : "SAS",
        "size" : 100,
        "extendParam" : {
          "useType" : "docker"
        }
      } ],
      "publicIP" : {
        "eip" : {
          "bandwidth" : { }
        }
      },
      "nodeNicSpec" : {
        "primaryNic" : {
          "subnetId" : "7e767d10-7548-4df5-ad72-aeac1d08bd8a"
        }
      },
      "billingMode" : 0,
      "extendParam" : {
        "alpha.cce/NodeImageID" : "",
        "alpha.cce/postInstall" : "",
        "alpha.cce/preInstall" : "",
        "maxPods" : 110
      },
      "k8sTags" : {
        "cce.cloud.com/cce-nodepool" : "lc-it-nodepool-79796"
      }
    },
    "autoscaling" : {
      "maxNodeCount" : 1
    },
    "nodeManagement" : { }
  },
  "status" : {
    "phase" : ""
  }
}

Códigos de status

Código de status

Descrição

201

A tarefa para criar um pool de nós em um cluster especificado é entregue com êxito.

Códigos de erro

Consulte Códigos de erro.