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.
Central de ajuda/ Cloud Container Engine/ Referência de API/ Apêndice/ Especificação dos complementos a serem instalados durante a criação do cluster
Atualizado em 2024-09-10 GMT+08:00

Especificação dos complementos a serem instalados durante a criação do cluster

Ao criar um cluster, você pode adicionar um par chave-valor às annotations do campo metadata no corpo da solicitação para instalar um complemento no cluster. A chave é cluster.install.addons/install e o valor é uma matriz JSON de AddonTemplate.

Tabela 1 Estrutura de dados de valor

Parâmetro

Obrigatório

Tipo

Descrição

Value

Sim

JSON array of AddonTemplate string

Complemento a ser instalado no cluster. Se esse parâmetro não for especificado, os complementos coredns e storage-driver serão instalados por padrão para clusters do Kubernetes 1.13 e versões anteriores, e os complementos coredns, everest e npd serão instalados por padrão para clusters do Kubernetes 1.15 e versões posteriores. Para mais detalhes, consulte Tabela 2.

Tabela 2 Estrutura de dados do campo AddonTemplate

Parâmetro

Obrigatório

Tipo

Descrição

addonTemplateName

Sim

String

Nome do complemento.

O valor pode ser coredns, autoscaler, gpu-beta ou storage-driver.

version

Não

String

Versão do complemento.

Para ver as informações sobre a versão do complemento, faça logon no console do CCE, clique em Add-ons no painel de navegação. Clique no nome do complemento de destino. Na página de guia Version History, você pode exibir as versões do complemento. Se este parâmetro for deixado em branco, a versão mais recente é usada por padrão.

values

Não

Json Map

Parâmetros a serem definidos para instalar um complemento.

  • coredns: para mais detalhes, consulte Tabela 3.
  • autoscaler: para mais detalhes, consulte Tabela 7.
  • gpu-beta: para mais detalhes, consulte Tabela 9.
NOTA:

Você não precisa definir esse parâmetro ao instalar o complemento storage-driver.

Tabela 3 Pares especiais de chave-valor dos parâmetros de valores de coredns

Parâmetro

Obrigatório

Tipo

Descrição

flavor

Sim

flavor object

Especificações de complemento.

custom

Sim

custom object

Parâmetros de coredns personalizados.

Tabela 4 Estrutura de dados do campo flavor

Parâmetro

Obrigatório

Tipo

Descrição

description

Sim

String

Descrição da especificação.

name

Sim

String

Nome do flavor.

replicas

Sim

Integer

Número de pods.

resources

Sim

resource object

Recursos de complemento.

Tabela 5 Estrutura de dados do campo resource

Parâmetro

Obrigatório

Tipo

Descrição

name

Sim

String

Nome do recurso.

limitsCpu

Sim

String

Limite da cota de CPU.

limitsMem

Sim

String

Limite da cota de memória.

requestsCpu

Sim

String

CPU solicitada.

requestsMem

Sim

String

Memória solicitada.

Tabela 6 Estrutura de dados do campo custom

Parâmetro

Obrigatório

Tipo

Descrição

stub_domains

Não

Json Map

Mapa JSON que usa a chave de sufixo do DNS (como acme.local) e o valor composto pela matriz JSON do endereço IP DNS.

upstream_nameservers

Não

Json Array

O valor deste parâmetro substitui o valor do servidor de nomes obtido do /etc/resolv.conf do nó por padrão. Restrição: um máximo de três servidores de nome upstream pode ser especificado.

tenant_id

Sim

String

ID do projeto.

Tabela 7 Pares especiais de chave-valor dos parâmetros de valores do autoscaler

Parâmetro

Obrigatório

Tipo

Descrição

flavor

Sim

flavor Object

Especificações de complemento.

custom

Sim

custom object

Parâmetros personalizados do autoscaler.

Tabela 8 Estrutura de dados do campo custom

Parâmetro

Obrigatório

Tipo

Descrição

coresTotal

Sim

Integer

Número máximo e mínimo de núcleos de um cluster. O formato é <min>:<max>. O complemento autoscaler executa o dimensionamento de cluster dentro desse intervalo.

maxEmptyBulkDeleteFlag

Sim

Integer

Número máximo de nós vazios que podem ser excluídos por vez.

maxNodesTotal

Sim

Integer

Número máximo de nós em todos os grupos de nós. O complemento autoscaler executa o dimensionamento de cluster dentro desse intervalo.

memoryTotal

Sim

Integer

Tamanho máximo e mínimo da memória de um cluster. O formato é <min>:<max>. O complemento autoscaler executa o dimensionamento de cluster dentro desse intervalo.

scaleDownDelayAfterAdd

Sim

Integer

Intervalo para realizar a avaliação de redução após uma ampliação.

scaleDownDelayAfterDelete

Sim

Integer

Intervalo para realizar a avaliação de redução após os nós serem excluídos. O valor padrão é scanInterval.

scaleDownDelayAfterFailure

Sim

Integer

Intervalo para realização de avaliação de redução após uma falha de redução.

scaleDownEnabled

Sim

Boolean

Se deve ativar a redução do cluster.

scaleDownUnneededTime

Sim

Integer

Tempo de espera para iniciar uma redução depois que um nó atingiu o limite de redução.

scaleDownUtilizationThreshold

Sim

Float

Porcentagem de limite do total de CPU ou memória ocupada por todos os pods em execução no nó para os recursos alocáveis no nó. Quando a porcentagem real é menor que esse limite, a redução de escala do nó é acionada.

scaleUpCpuUtilizationThreshold

Sim

Float

Limite de uso da CPU para acionar o aumento de escala.

scaleUpMemUtilizationThreshold

Sim

Float

Limite de uso de memória para disparar o aumento de escala.

scaleUpUnscheduledPodEnabled

Sim

Boolean

O aumento de escala é acionado quando há pods não programados.

scaleUpUtilizationEnabled

Sim

Boolean

O aumento de escala é acionado quando o uso de recursos atinge o limite.

tenant_id

Sim

String

ID do projeto.

unremovableNodeRecheckTimeout

Sim

Integer

Intervalo para verificar se um nó pode ser removido.

Tabela 9 Chave-valor especial em valores de AddonTemplate (GPU-beta)

Parâmetro

Obrigatório

Tipo

Descrição

custom

Sim

custom object

Parâmetros do cliente da gpu-beta.

Tabela 10 Estrutura de dados do campo custom

Parâmetro

Obrigatório

Tipo

Descrição

is_driver_from_nvidia

Sim

Boolean

Se usar o driver NVIDIA.

Defina este parâmetro como true.

nvidia_driver_download_url

Sim

String

URL de baixar o driver.

Tabela 11 Estrutura de dados do campo spec

Parâmetro

Obrigatório

Tipo

Descrição

type

Sim

String

Tipo de cluster. Valores possíveis:

  • VirtualMachine: o cluster é um cluster híbrido.

    Um cluster híbrido gerencia um grupo de recursos de nó com base no Kubernetes. Ele pode gerenciar VMs, máquinas bare-metal ou uma combinação de ambos. O Kubernetes agenda automaticamente os contêineres nos nós disponíveis. Antes de criar uma carga de trabalho em contêiner, você deve ter um cluster disponível.

  • ARM64: o aglomerado é um cluster de Kunpeng.

    Os contêineres nos clusters de Kunpeng do CCE podem ser executados em servidores Kunpeng que usam arquitetura ARM e processadores Kunpeng. Os servidores em nuvem acelerados por Kunpeng são fáceis de implementar e fornecem desempenho de dimensionamento e agendamento comparável aos servidores em nuvem baseados em x86.

flavor

Sim

String

flavor de cluster, que não pode ser alterado após a criação do cluster.

  • cce.s1.small: cluster híbrido de pequena escala e mestre único (≤ 50 nós).
  • cce.s1.medium: cluster híbrido de escala média e mestre único (≤ 200 nós).
  • cce.s1.large: cluster híbrido de grande escala e mestre único (≤ 1.000 nós).
  • cce.s2.small: cluster híbrido de pequena escala e alta disponibilidade (≤ 50 nós).
  • cce.s2.medium: cluster híbrido de escala média e alta disponibilidade (≤ 200 nós).
  • cce.s2.large: cluster híbrido de grande escala e alta disponibilidade (≤ 1.000 nós).
NOTA:
  • s1: cluster híbrido de mestre único.
  • s2: cluster híbrido de alta disponibilidade.
  • dec: especificações de cluster híbrido dedicado. Por exemplo, cce.dec.s1.small é um cluster híbrido dedicado de pequena escala e mestre único (≤ 50 nós).
  • Por exemplo, ≤ 50 nodes indica que o número máximo de nós que podem ser gerenciados pelo cluster é 50.
  • Um cluster de mestre único tem apenas um nó mestre. Se o nó principal estiver inativo, o cluster ficará indisponível e deixará de atender novas cargas de trabalho. No entanto, as cargas de trabalho existentes no cluster não são afetadas.
  • Um cluster de alta disponibilidade tem vários nós principais. Falhas em um único nó principal não derrubarão o cluster. Para obter detalhes sobre como distinguir clusters de alta disponibilidade de clusters regulares, consulte Como verificar se um cluster está no modo multimestre?

version

Não

String

Versão básica do Kubernetes do cluster. Recomenda-se a versão mais recente.

  • Você pode criar clusters de duas versões mais recentes no console do CCE. Para saber quais versões de cluster estão disponíveis, escolha Dashboard > Buy Cluster no console do CCE e verifique o parâmetro Version.
  • Você pode chamar APIs para criar clusters de outras versões. No entanto, esses clusters serão gradualmente colocados off-line. Para obter detalhes sobre a política off-line, consulte o anúncio oficial do CCE.
NOTA:

Se esse parâmetro não for definido, o cluster da versão mais recente é criado por padrão.

description

Não

String

Descrição do cluster, por exemplo, qual finalidade o cluster se destina a servir. Por predefinição, este parâmetro é deixado por especificar. Para modificar a descrição do cluster depois que o cluster é criado, chame a API usada para atualizar as informações sobre um cluster especificado ou vá para a página de detalhes do cluster no console do CCE.

ipv6enable

Não

Boolean

Se o cluster suporta IPv6. Os clusters da versão 1.15 e posteriores suportam IPv6.

hostNetwork

Sim

HostNetwork object

Parâmetros de rede de nó, incluindo ID de VPC e sub-rede. hostNetwork é obrigatório porque os nós em um cluster se comunicam entre si usando uma VPC.

containerNetwork

Sim

ContainerNetwork object

Parâmetros de rede de contêiner, incluindo o modelo de rede de contêiner e o bloco CIDR de contêiner.

authentication

Não

Authentication object

Configurações do modo de autenticação de cluster.

kubernetesSvcIpRange

Não

String

Bloco CIDR de serviço ou o intervalo de endereços IP no qual o kubernetes clusterIp deve se enquadrar. Este parâmetro está disponível apenas para clusters v1.11.7 e posteriores.

billingMode

Não

Integer

Modo de cobrança de um cluster. Atualmente, apenas clusters de pagamento por uso podem ser criados.

O valor 0 indica pagamento por uso. Se este parâmetro não for especificado, o valor padrão 0 será usado.

masters

Não

MasterSpec object

Configurações avançadas do nó principal

extendParam

Não

Map<String,String>

Campos estendidos no formato de pares chave-valor.

Você pode configurar clusters de multi-AZ e clusters híbridos dedicados e criar clusters em projetos empresariais específicos.

Exemplo de solicitação

{
  "kind" : "Cluster",
  "apiVersion" : "v3",
  "metadata" : {
    "name" : "mycluster",
    "labels" : {
      "foo" : "bar"
    },
    "annotations" : {
      "cluster.install.addons/install" : "[{\"addonTemplateName\":\"autoscaler\",\"version\":\"1.15.11\",\"values\":{\"flavor\":{\"description\":\"Has only one instance\",\"name\":\"Single\",\"replicas\":1,\"resources\":[{\"limitsCpu\":\"90m\",\"limitsMem\":\"200Mi\",\"name\":\"autoscaler\",\"requestsCpu\":\"50m\",\"requestsMem\":\"100Mi\"}]},\"custom\":{\"coresTotal\":32000,\"maxEmptyBulkDeleteFlag\":10,\"maxNodesTotal\":1000,\"memoryTotal\":128000,\"scaleDownDelayAfterAdd\":10,\"scaleDownDelayAfterDelete\":10,\"scaleDownDelayAfterFailure\":3,\"scaleDownEnabled\":false,\"scaleDownUnneededTime\":10,\"scaleDownUtilizationThreshold\":0.5,\"scaleUpCpuUtilizationThreshold\":1,\"scaleUpMemUtilizationThreshold\":1,\"scaleUpUnscheduledPodEnabled\":true,\"scaleUpUtilizationEnabled\":true,\"tenant_id\":\"22a8a02394794b908d256103a5b63c65\",\"unremovableNodeRecheckTimeout\":5}}},{\"addonTemplateName\":\"coredns\",\"version\":\"1.15.3\",\"values\":{\"flavor\":{\"description\":\"Has two instances\",\"name\":2500,\"replicas\":2,\"resources\":[{\"limitsCpu\":\"500m\",\"limitsMem\":\"512Mi\",\"name\":\"coredns\",\"requestsCpu\":\"500m\",\"requestsMem\":\"512Mi\"}]},\"custom\":{\"stub_domains\":{},\"upstream_nameservers\":[],\"tenant_id\":\"22a8a02394794b908d256103a5b63c65\"}}},{\"addonTemplateName\":\"gpu-beta\",\"version\":\"1.1.7\",\"values\":{\"custom\":{\"is_driver_from_nvidia\":true,\"nvidia_driver_download_url\":\"https://us.download.nvidia.com/tesla/396.37/NVIDIA-Linux-x86_64-396.37.run\"}}},{\"addonTemplateName\":\"storage-driver\",\"version\":\"\"}]"
    }
  },
  "spec" : {
    "type" : "VirtualMachine",
    "flavor" : "cce.s1.small",
    "version" : "v1.15.11",
    "description" : "this is a demo cluster",
    "hostNetwork" : {
      "vpc" : "1cb74d47-8e09-4d14-a065-75f4fc03e5eb",
      "subnet" : "d44c089c-fbdc-49b3-ae8f-7b42c64219cf"
    },
    "containerNetwork" : {
      "mode" : "overlay_l2",
      "cidr" : "172.16.0.0/16"
    },
    "extendParam" : {
      "foo" : "bar"
    }
  }
}