Ficheiro de configuração do cluster de utilizadores 1.30 e superior

Este documento descreve os campos no ficheiro de configuração do cluster de utilizadores para o Google Distributed Cloud das versões 1.30 e superiores.

Gerar um modelo para o seu ficheiro de configuração

Se usou o comando gkeadm para criar a estação de trabalho de administrador, o comando gkeadm gerou um modelo para o ficheiro de configuração do cluster de utilizadores. Além disso, o gkeadm preencheu alguns dos campos por si.

Se não usou o gkeadm para criar a sua estação de trabalho de administrador, pode usar o gkectl para gerar um modelo para o ficheiro de configuração do cluster de utilizadores.

Para gerar um modelo para o ficheiro de configuração do cluster de utilizadores:

gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION

Substitua o seguinte:

OUTPUT_FILENAME: um caminho à sua escolha para o modelo gerado. Se omitir esta flag, gkectl atribui o nome user-cluster.yaml ao ficheiro e coloca-o no diretório atual.

VERSION: o número da versão do Google Distributed Cloud. Por exemplo: gkectl create-config cluster --gke-on-prem-version=1.33.0-gke.799.

Modelo

Campos obrigatórios e valores predefinidos

Se um campo estiver marcado como Obrigatório, o ficheiro de configuração concluído tem de ter um valor preenchido para o campo.

Alguns campos são obrigatórios condicionalmente. Por exemplo, loadBalancer.metalLB.addressPools é obrigatório se loadBalancer.kind for igual a MetalLB.

Se for indicado um valor Predefinição para um campo, o cluster usa esse valor se não introduzir nada no campo. Pode substituir um valor predefinido introduzindo um valor.

Se um campo não estiver marcado como Obrigatório, é opcional. Pode preenchê-lo se for relevante para si, mas não tem de o fazer.

Preencher o ficheiro de configuração

No ficheiro de configuração, introduza os valores dos campos conforme descrito nas secções seguintes.

enableAdvancedCluster

1,33 e superior

Todos os novos clusters são criados como clusters avançados. Se incluir este campo no ficheiro de configuração ao criar um novo cluster, tem de o definir como true. Se definir este campo como false, a criação de clusters é bloqueada.

1,32

Opcional
Mutável (permitem-se valores de false a true)
Booleano
Pré-preenchido: verdadeiro
Predefinição: verdadeiro

Defina enableAdvancedCluster como false se não quiser ativar o cluster avançado quando criar um novo cluster. Quando esta flag está definida como true (cluster avançado ativado), o software Google Distributed Cloud subjacente implementa controladores que permitem uma arquitetura mais extensível. A ativação do cluster avançado dá-lhe acesso a novas funcionalidades e capacidades, como os domínios de topologia. Este campo tem de ter o mesmo valor que o campo enableAdvancedCluster do cluster de administração.

Certifique-se de que revê as diferenças quando executa clusters avançados antes de ativar o cluster avançado.

Para atualizar um cluster existente para um cluster avançado, consulte o artigo Atualize um cluster para um cluster avançado. Após a atualização para o cluster avançado, não é permitido desativá-lo.

1.31

Disponível apenas para novos clusters
Pré-visualização
Opcional
Imutável
Booleano
Pré-preenchido: false
Predefinição: false

Defina enableAdvancedCluster como true se quiser ativar o cluster avançado quando criar um novo cluster. Quando esta flag está definida como true (cluster avançado ativado), o software Google Distributed Cloud subjacente implementa controladores que permitem uma arquitetura mais extensível. A ativação do cluster avançado dá-lhe acesso a novas funcionalidades e capacidades, como os domínios de topologia. Este campo tem de ter o mesmo valor que o campo enableAdvancedCluster do cluster de administração.

1,30 e inferior

Não disponível.

name

Obrigatório
String

Um nome à sua escolha para o cluster de utilizadores. O nome tem de:

  • Conter, no máximo, 40 carateres
  • conter apenas carateres alfanuméricos minúsculos ou um hífen (-)
  • Começar com um caráter alfabético
  • Terminar com um caráter alfanumérico

Exemplo:

name: "my-user-cluster"

gkeOnPremVersion

Obrigatório
Mutável
String

A versão do Google Distributed Cloud para o cluster de utilizadores.

Exemplo:

gkeOnPremVersion: "1.29.0-gke.1456"

preparedSecrets.namespace

Se infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador, remova este campo. Caso contrário, se quiser usar credenciais preparadas, preencha este campo.

Imutável
String
Valores possíveis: uma string que começa com "gke-onprem-secrets-"

O nome de um espaço de nomes do Kubernetes no cluster de administrador onde os segredos preparados estão armazenados para este cluster de utilizador.

Exemplo:

preparedSecrets:
  namespace: "gke-onprem-secrets-alice"

enableControlplaneV2

1,30 e superior

Mutável (permite alterar de false para true)
Booleano
Pré-preenchido: verdadeiro
Predefinição: verdadeiro

Na versão 1.30 e superior, o Controlplane V2 é necessário para novos clusters de utilizadores. Se incluir este campo no ficheiro de configuração, tem de o definir como true.

Para migrar um cluster existente para o Controlplane V2, consulte o artigo Migre um cluster de utilizadores para funcionalidades recomendadas. Após a migração para o Controlplane V2, não é permitido desativá-lo.

Com o Controlplane V2, o plano de controlo de um cluster de utilizadores é executado num ou mais nós no próprio cluster de utilizadores. As vantagens do Controlplane V2 incluem:

  • Consistência arquitetónica entre clusters de administrador e de utilizador.

  • Isolamento de falhas. Uma falha do cluster de administrador não afeta os clusters de utilizadores.

  • Separação operacional. Uma atualização do cluster de administrador não causa tempo de inatividade para os clusters de utilizadores.

  • Separação da implementação. Pode colocar os clusters de administrador e de utilizador em domínios de falha ou sites geográficos diferentes. Por exemplo, um cluster de utilizadores numa localização periférica pode estar num site geográfico diferente do cluster de administração.

1,29 e inferior

Imutável
Booleano
Pré-preenchido: verdadeiro
Predefinição: verdadeiro

Para ativar o Controlplane V2, defina enableControlplaneV2 como true ou remova a definição do ficheiro de configuração do cluster de utilizadores. Caso contrário, defina-o como false. Com o plano de controlo V2, o plano de controlo de um cluster de utilizadores é executado num ou mais nós no próprio cluster de utilizadores. Quando o Controlplane V2 não está ativado, o plano de controlo do cluster de utilizadores é executado no cluster de administrador.

Recomendamos que ative o Controlplane V2.

Exemplo:

enableControlplaneV2: true

vCenter

Esta secção contém informações sobre o seu ambiente vSphere e a sua ligação ao vCenter Server.

Se infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador, remova toda esta secção.

Se incluiu a secção vCenter no ficheiro de configuração do cluster de administrador:

  • Se quiser que um campo nesta secção seja igual ao que especificou para o cluster de administrador, remova o campo ou deixe-o comentado.

  • Se quiser que um campo seja diferente do que especificou para o cluster de administrador, preencha-o aqui. Todos os campos que preencher aqui na secção vCenter substituem os campos correspondentes no ficheiro de configuração do cluster de administrador.

vCenter.address

Imutável
String
Predefinição: herdar do cluster de administrador

O endereço IP ou o nome do anfitrião da instância do vCenter Server que quer usar para este cluster de utilizadores.

Para mais informações, consulte o artigo Encontrar o endereço do servidor vCenter.

Se especificar um valor diferente da instância do vCenter Server usada pelo cluster de administrador, tem de ativar Controlplane V2 e fornecer valores para network.vCenter.networkName e todos os campos obrigatórios na secção vCenter.

Exemplos:

vCenter:
  address: "203.0.113.101"
vCenter:
  address: "my-vcenter-server-2.my-domain.example"

vCenter.datacenter

Imutável
String
Predefinição: herdar do cluster de administrador

O caminho relativo de um centro de dados do vSphere.

Se especificar um valor para este campo, também tem de especificar:

  • vCenter.networkName
  • vCenter.datastore ou vCenter.storagePolicyName
  • vCenter.cluster ou vCenter.resourcePool

O valor que especificar é relativo à pasta raiz denominada /.

Se o centro de dados estiver na pasta raiz, o valor é o nome do centro de dados.

Exemplo:

vCenter:
  datacenter: "my-uc-data-center"

Caso contrário, o valor é um caminho relativo que inclui uma ou mais pastas juntamente com o nome do centro de dados.

Exemplo:

vCenter:
  datacenter: "data-centers/data-center-2"

vCenter.cluster

Imutável
String
Predefinição: herdar do cluster de administrador

O caminho relativo de um cluster do vSphere que representa os anfitriões ESXi onde as VMs do cluster de utilizadores são executadas. Este cluster do vSphere representa um subconjunto dos anfitriões ESXi físicos no seu centro de dados do vCenter.

Se especificar um valor para este campo, também tem de especificar:

  • vCenter.networkName
  • vCenter.datacenter
  • vCenter.datastore ou vCenter.storagePolicyName

O valor que especificar é relativo a /.../DATA_CENTER/vm/.

Se o cluster do vSphere estiver na pasta /.../DATA_CENTER/vm/, o valor é o nome do cluster do vSphere

Exemplo:

vCenter:
  cluster: "my-uc-vsphere-cluster"

Caso contrário, o valor é um caminho relativo que inclui uma ou mais pastas, juntamente com o nome do cluster do vSphere.

Exemplo:

vCenter:
  cluster: "clusters/vsphere-cluster-2"

vCenter.resourcePool

Imutável
String
Predefinição: herdar do cluster de administrador

Um pool de recursos do vCenter para as VMs do cluster de utilizadores.

Se quiser usar o conjunto de recursos predefinido, defina esta opção como VSPHERE_CLUSTER/Resources.

Exemplo:

vCenter:
  resourcePool: "my-uc-vsphere-cluster/Resources"

O valor que especificar é relativo a /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/

Se o conjunto de recursos for um filho direto de /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/ o valor é o nome do conjunto de recursos.

Exemplo:

vCenter:
  resourcePool: "my-uc-resource-pool"

Caso contrário, o valor é um caminho relativo que tem dois ou mais conjuntos de recursos.

Exemplo:

vCenter:
  resourcePool: "uc-resource-pool-1/uc-resource-pool-2"

vCenter.datastore

Opcional
Imutável
String
Predefinição: herdar do cluster de administrador

O nome de um repositório de dados do vSphere para o seu cluster de utilizadores.

O valor especificado tem de ser um nome, não um caminho. Não inclua pastas no valor.

Exemplo:

vCenter:
  datastore: "my-datastore"

Se especificar um valor para este campo, não especifique um valor para vCenter.storagePolicyName. O campo vCenter.datastore é imutável, exceto quando o define como uma string vazia quando migra um arquivo de dados para a gestão baseada em políticas de armazenamento (SPBM).

vCenter.storagePolicyName

Opcional
Imutável
String

O nome de uma política de armazenamento de VMs para os nós do cluster.

Também pode especificar uma política de armazenamento de VMs para os nós num conjunto de nós específico. No entanto, a política especificada aqui aplica-se a qualquer conjunto de nós que não tenha a sua própria política.

Para mais informações, consulte o artigo Configure uma política de armazenamento.

Se especificar um valor para este campo, não especifique um valor para vCenter.datastore.

vCenter.caCertPath

Mutável
String
Predefinição: herdar do cluster de administrador

O caminho do certificado da AC para o seu servidor vCenter. Para mais informações, consulte o artigo Obter o certificado da AC do vCenter.

Exemplo:

vCenter:
  caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert-2.pem"

Para obter informações sobre como atualizar este campo, consulte o artigo Atualize as referências de certificados do vCenter.

vCenter.credentials.fileRef.path

Mutável
String
Predefinição: herdar do cluster de administrador

Se fornecer um valor para preparedSecrets.namespace, não forneça um valor para este campo. Em alternativa, indique um valor para vCenter.credentials.secretRef.version.

O caminho de um ficheiro de configuração de credenciais que contém o nome de utilizador e a palavra-passe da sua conta de utilizador do vCenter. A conta de utilizador tem de ter a função de administrador ou privilégios equivalentes. Consulte os requisitos do vSphere.

Pode usar gkectl update credentials para atualizar este campo num cluster existente. Para mais informações, consulte o artigo Rotação das chaves da conta de serviço.

Para ver informações sobre como atualizar as credenciais do vCenter, consulte o artigo Atualizar credenciais do cluster.

Exemplo:

vCenter:
  credentials:
    fileRef:
      path: "my-config-directory/my-credentials-2.yaml"

vCenter.credentials.fileRef.entry

Mutável
String
Predefinição: herdar do cluster de administrador

O nome do bloco de credenciais no ficheiro de configuração de credenciais que contém o nome de utilizador e a palavra-passe da sua conta de utilizador do vCenter.

Exemplo:

vCenter:
  credentials:
    fileRef:
      entry: "vcenter-credentials-2"

vCenter.credentials.secretRef.version

String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"

Se fornecer um valor para preparedSecrets.namespace, preencha este campo. Caso contrário, remova este campo ou deixe-o comentado.

A versão de um segredo preparado no cluster de administrador que contém o nome de utilizador e a palavra-passe para a instância do vCenter Server que pretende usar para este cluster de utilizador.

Exemplo:

vCenter:
  credentials:
    secretRef:
      version: "1"

vCenter.folder

Imutável
String
Predefinição: herdar do cluster de administrador

O caminho relativo de uma pasta do vSphere que já criou. Esta pasta vai conter as VMs do cluster de utilizadores.

Se não especificar um valor, as VMs do cluster de utilizadores são colocadas em /.../DATA_CENTER/vm/.

Se especificar um valor, este é relativo a /.../DATA_CENTER/vm/.

O valor pode ser o nome de uma pasta.

Exemplo:

vCenter:
  folder: "my-uc-folder"

Em alternativa, o valor pode ser um caminho relativo que inclua mais do que uma pasta.

Exemplo:

vCenter:
  folder: "folders/folder-2"

componentAccessServiceAccountKeyPath

Mutável
String
Predefinição: herdar do cluster de administrador

O caminho do ficheiro de chave JSON para a sua conta de serviço de acesso a componentes.

Exemplo:

componentAccessServiceAccountKeyPath: "my-key-folder/uc-access-key.json"

componentAccessServiceAccountKey.secretRef.version

Mutável
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"

A versão de um segredo preparado no cluster de administrador que contém uma chave JSON para a sua conta do serviço de acesso a componentes.

Exemplo:

componentAccessServiceAccountKey:
  secretRef:
    version: "1"

privateRegistry

Preencha esta secção se o cluster de administrador estiver a usar um registo de contentores privado e quiser que o cluster de utilizadores use um registo privado diferente ou definições diferentes. Se quiser usar um endereço de registo privado diferente, o seu cluster tem de ter o Controlplane V2 ativado. As novas definições são selecionadas durante a criação e a atualização do cluster.

Se quiser usar as mesmas definições que o cluster de administrador, remova esta secção ou deixe-a comentada.

privateRegistry.address

Imutável
String
Predefinição: herdar do cluster de administrador

O endereço IP ou o FQDN (nome do domínio totalmente qualificado) da máquina que executa o seu registo Docker privado.

Exemplos:

privateRegistry:
  address: "203.0.113.10"
privateRegistry:
  address: "fqdn.example.com"

privateRegistry.credentials.fileRef.path

Mutável
String
Predefinição: herdar do cluster de administrador

Se planeia usar o segredo preparado para o registo privado, não faculte um valor para este campo. Em alternativa, indique um valor para privateRegistry.credentials.secretRef.version.

O caminho de um ficheiro de configuração de credenciais que contém o nome de utilizador e a palavra-passe de uma conta que o Google Distributed Cloud pode usar para aceder ao seu registo Docker privado.

Exemplo:

privateRegistry:
  credentials:
    fileRef:
      path: "my-config-folder/admin-creds.yaml"

privateRegistry.credentials.fileRef.entry

Mutável
String
Predefinição: herdar do cluster de administrador

O nome do bloco de credenciais no seu ficheiro de configuração de credenciais que contém o nome de utilizador e a palavra-passe da sua conta de registo Docker privado.

privateRegistry:
  credentials:
    fileRef:
      entry: "private-registry-creds"

privateRegistry.credentials.secretRef.version

String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"

Se fornecer um valor para preparedSecrets.namespace e quiser usar o segredo preparado para um registo privado, preencha este campo. Caso contrário, remova este campo ou deixe-o comentado.

A versão de um segredo preparado no cluster de administrador que contém o nome de utilizador e a palavra-passe para a instância do vCenter Server que pretende usar para este cluster de utilizador.

Exemplo:

privateRegistry:
  credentials:
    secretRef:
      version: "1"

privateRegistry.caCertPath

Mutável
String
Predefinição: herdar do cluster de administrador

Quando o Docker extrai uma imagem do seu registo privado, o registo tem de comprovar a sua identidade apresentando um certificado. O certificado do registo é assinado por uma autoridade de certificação (AC). O Docker usa o certificado da CA para validar o certificado do registo.

Defina este campo para o caminho do certificado da AC.

Exemplo:

privateRegistry:
  caCertPath: "my-cert-folder/registry-ca.crt"

network

Esta secção contém informações acerca da sua rede de clusters de utilizadores.

network.hostConfig

1,30 e superior

Esta secção contém informações sobre os servidores NTP, os servidores DNS e os domínios de pesquisa DNS usados pelas VMs que são os nós do cluster.

Se infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador (disponível na versão 1.31 e superior), remova toda esta secção. Caso contrário, esta secção é obrigatória se uma ou mais das seguintes condições se aplicarem:

  • A definição de network.ipMode.type é static.
  • enableControlplaneV2 está definido como true ou tem autorização para usar true por predefinição. Tenha em atenção que o Controlplane V2 é necessário para novos clusters de utilizadores.

1,29 e inferior

Esta secção contém informações sobre os servidores NTP, os servidores DNS e os domínios de pesquisa DNS usados pelas VMs que são os nós do cluster. Se estiver a usar o balanceador de carga do Seesaw, estas informações também se aplicam às suas VMs do Seesaw.

Esta secção é obrigatória se uma ou mais das seguintes afirmações for verdadeira:

  • A definição de network.ipMode.type é static.
  • enableControlplaneV2 está definido como true ou tem autorização para usar true por predefinição. O equilibrador de carga do Seesaw não é suportado em clusters com o Controlplane V2 ativado.
  • A definição de loadBalancer.kind é "Seesaw".

network.hostConfig.dnsServers

Obrigatório
Imutável
Matriz de strings.
O número máximo de elementos na matriz é três.

Os endereços dos servidores DNS para as VMs.

Exemplo:

network:
  hostConfig:
    dnsServers:
    - "172.16.255.1"
    - "172.16.255.2"

network.hostConfig.ntpServers

Obrigatório
Imutável
Matriz de strings

Os endereços dos servidores de tempo que as VMs devem usar.

Exemplo:

network:
  hostConfig:
    ntpServers:
    - "216.239.35.0"

network.hostConfig.searchDomainsForDNS

Imutável
Matriz de strings

Domínios de pesquisa de DNS para os anfitriões usarem. Estes domínios são usados como parte de uma lista de pesquisa de domínios.

Exemplo:

network:
  hostConfig:
    searchDomainsForDNS:
    - "my.local.com"

network.ipMode.type

Imutável
String
Preenchido previamente: "static"
Predefinição: "dhcp"

Se quiser que os nós do cluster obtenham o respetivo endereço IP a partir de um servidor DHCP, defina esta opção como "dhcp". Se quiser que os nós do cluster tenham endereços IP estáticos escolhidos a partir de uma lista que fornecer, defina esta opção como "static". Se enableControlplaneV2 estiver definido como true, esta definição aplica-se apenas aos nós de trabalho.

Exemplo:

network:
  ipMode:
    type: "static"

network.ipMode.ipBlockFilePath

Este campo é obrigatório se network.ipMode.type = static ou se infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador.

Imutável
String

O caminho absoluto ou relativo do ficheiro de blocos de IP para o seu cluster.

Exemplo:

network:
  ipMode:
    ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"

network.serviceCIDR

Imutável
String
Pré-preenchido: "10.96.0.0/20"
>

Um intervalo de endereços IP, no formato CIDR, a ser usado para os serviços no seu cluster. Tem de ser, pelo menos, um intervalo /24.

Exemplo:

network:
  serviceCIDR: "10.96.0.0/20"

network.podCIDR

Imutável
String
Pré-preenchido: "192.168.0.0/16"
Predefinição: "192.168.0.0/16"

Um intervalo de endereços IP, no formato CIDR, a usar para os pods no seu cluster. Tem de ser, pelo menos, um intervalo /18.

Exemplo:

network:
  podCIDR: "192.168.0.0/16"

O intervalo de serviço não pode sobrepor-se ao intervalo de agrupamento.

Os intervalos de serviços e de pods não podem sobrepor-se a nenhum endereço fora do cluster ao qual quer aceder a partir do interior do cluster.

Por exemplo, suponhamos que o seu intervalo de serviços é 10.96.232.0/24 e o seu intervalo de pods é 192.168.0.0/16. Todo o tráfego enviado de um pod para um endereço num desses intervalos é tratado como no cluster e não chega a nenhum destino fora do cluster.

Em particular, os intervalos de serviços e pods não podem sobrepor-se a:

  • Endereços IP de nós em qualquer cluster

  • Endereços IP usados por máquinas do balanceador de carga

  • VIPs usados por nós do plano de controlo e balanceadores de carga

  • Endereço IP dos servidores vCenter, servidores DNS e servidores NTP

Recomendamos que os intervalos de serviços e pods estejam no espaço de endereços RFC 1918.

Segue-se um motivo para a recomendação de usar endereços RFC 1918. Suponhamos que o intervalo do seu pod ou serviço contém endereços IP externos. Qualquer tráfego enviado de um pod para um desses endereços externos é tratado como tráfego no cluster e não chega ao destino externo.

network.vCenter.networkName

Se infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador, remova este campo. Caso contrário, este campo é obrigatório se vCenter.address for diferente do endereço do vCenter que está a usar para o cluster de administrador.

Imutável
String

O nome da rede vSphere para os nós do cluster de utilizadores.

Exemplo:

network:
  vCenter:
    networkName: "my-network"

Se o nome contiver um carater especial, tem de usar uma sequência de escape para o mesmo.

Carateres especiais Sequência de escape
Barra (/) %2f
Barra invertida (\) %5c
Sinal de percentagem (%) %25

Se o nome da rede não for exclusivo no seu centro de dados, pode especificar um caminho completo.

Exemplo:

network:
  vCenter:
    networkName: "/my-uc-datacenter/network/my-network"

network.additionalNodeInterfaces

Se definir multipleNetworkInterfaces como true, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.

Imutável

Uma matriz de objetos, cada um dos quais descreve uma interface de rede que pode ser usada em todos ou alguns dos nós do cluster.

network.additionalNodeInterfaces[i].networkName

Obrigatório se multipleNetworkInterfaces = true
Imutável
String

O nome da rede vSphere à qual esta interface de nó adicional se vai ligar.

Exemplo:

network:
  additionalNodeInterfaces:
  - networkName: "my-node-interface-1"

network.additionalNodeInterfaces[i].type

Obrigatório se multipleNetworkInterfaces = true
Imutável
String

Exemplo:

network:
  additionalNodeInterfaces:
  - name: "my-node-interface-1"
    type: "static"

network.additionalNodeInterfaces[i].ipBlockFilePath

Obrigatório se network.additionalNodeInterfaces[i].type = static
Imutável
String

O caminho de um ficheiro de bloco de IP que contém endereços IP a serem usados para esta interface de rede nos nós que têm esta interface de rede.

Exemplo:

network:
  additionalNodeInterfaces:
  - name: "my-node-interface-1"
    type: "static"
    ipBlockFilePath: "my-ipblock-file-1"

network.controlPlaneIPBlock

Se infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador, remova toda esta secção.

Caso contrário, a inclusão desta secção depende do valor que definir em enableControlplaneV2:

  • Se enableControlplaneV2 for true, preencha esta secção.
  • Se enableControlplaneV2 for false, remova esta secção.

network.controlPlaneIPBlock.netmask

Obrigatório se enableControlplaneV2 = true
Imutável
String

Exemplo:

network:
  controlPlaneIPBlock:
    netmask: "255.255.255.0"

network.controlPlaneIPBlock.gateway

Obrigatório se enableControlplaneV2 = true
Imutável
String

Exemplo:

network:
  controlPlaneIPBlock:
    gateway: "172.16.21.1"

network.controlPlaneIPBlock.ips

Obrigatório se enableControlplaneV2 = true
Immutable
Matriz de objetos, cada um com um endereço IP e um nome do anfitrião. O nome do anfitrião é obrigatório para a migração do plano de controlo V2 e opcional nos restantes casos.

Para um cluster de utilizadores de alta disponibilidade (HA), a matriz tem três elementos. Para um cluster de utilizadores não HA, a matriz tem um elemento.

Exemplo:

network:
  controlPlaneIPBlock:
    ips:
    - ip: "172.16.21.6"
      hostname: "cp-vm-1"
    - ip: "172.16.21.7"
      hostname: "cp-vm-2"
    - ip: "172.16.21.8"
      hostname: "cp-vm-3"

loadBalancer

Esta secção contém informações acerca do equilibrador de carga para o cluster de utilizadores.

loadBalancer.vips.controlPlaneVIP

Obrigatório
Imutável
String

O endereço IP que escolheu configurar no equilibrador de carga para o servidor da API Kubernetes do cluster de utilizadores.

Exemplo:

loadBalancer:
  vips:
    controlplaneVIP: "203.0.113.3"

loadBalancer.vips.ingressVIP

Obrigatório
Imutável
String

O endereço IP que escolheu para configurar no balanceador de carga para o proxy de entrada.

Exemplo:

loadBalancer:
  vips:
    ingressVIP: "203.0.113.4"

loadBalancer.kind

Especifique o tipo de balanceador de carga a usar.

1.32 e superior

Obrigatório
Imutável
String
Pré-preenchido: "MetalLB"

O tipo de equilibrador de carga que pode usar depende de configurar o cluster para usar domínios de topologia. Assume-se que o cluster usa domínios de topologia se o campo infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador.

  • Com domínios de topologia: defina esta opção como "ManualLB". Tem de configurar um equilibrador de carga de terceiros (como o F5 BIG-IP ou o Citrix) se quiser usar domínios de topologia.

  • Sem domínios de topologia: defina esta opção como "ManualLB" ou "MetalLB". Use "ManualLB" se tiver um equilibrador de carga de terceiros ou "MetalLB" para a nossa solução integrada. Opcionalmente, pode configurar um tipo diferente de equilibrador de carga para o tráfego do plano de controlo. Para mais informações, consulte masterNode.controlPlaneLoadBalancer.

1.31

Obrigatório
Imutável
String
Pré-preenchido: "MetalLB"

O tipo de equilibrador de carga que pode usar depende de configurar o cluster para usar domínios de topologia. Assume-se que o cluster usa domínios de topologia se o campo infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador.

  • Com domínios de topologia: defina esta opção como "ManualLB". Tem de configurar um equilibrador de carga de terceiros (como o F5 BIG-IP ou o Citrix) se quiser usar domínios de topologia.

  • Sem domínios de topologia: defina esta opção como "ManualLB" ou "MetalLB". Use "ManualLB" se tiver um equilibrador de carga de terceiros ou "MetalLB" para a nossa solução integrada.

1,30

Obrigatório
Imutável
String
Pré-preenchido: "MetalLB"

Defina esta opção como "ManualLB" ou "MetalLB". Use "ManualLB" se tiver um balanceador de carga de terceiros (como F5 BIG-IP ou Citrix) ou "MetalLB" para a nossa solução integrada.

Embora possa atualizar um cluster que tenha kind definido como "F5BigIP" ou "Seesaw", não pode criar novos clusters. Para obter informações sobre a migração de configurações de equilíbrio de carga, consulte o artigo Planeie a migração de clusters para funcionalidades recomendadas.

Exemplo:

loadBalancer:
  kind: "MetalLB"

1.29 e anteriores

Obrigatório
Imutável
String
Pré-preenchido: "MetalLB"

Defina esta opção como "ManualLB", "F5BigIP", "Seesaw" ou "MetalLB".

Para ativar o Dataplane V2 e o Controlplane V2, recomendamos que use "ManualLB" se tiver um equilibrador de carga de terceiros (como o F5 BIG-IP ou o Citrix) ou "MetalLB" para a nossa solução integrada.

Exemplo:

loadBalancer:
  kind: "MetalLB"

Quando cria clusters de utilizadores através da Google Cloud consola, da CLI gcloud ou do Terraform, o tipo de equilibrador de carga para o cluster de administrador e os respetivos clusters de utilizadores tem de ser o mesmo. A única exceção é se o cluster de administrador usar o Seesaw. Nesse caso, os clusters de utilizador podem usar o MetalLB. Se quiser que os clusters de administrador e de utilizador usem diferentes tipos de equilibradores de carga, tem de criar clusters de utilizador com a ferramenta de linha de comandos gkectl.

loadBalancer.manualLB

Se definir loadbalancer.kind como "manualLB", preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.

loadBalancer.manualLB.ingressHTTPNodePort

Obrigatório se loadBalancer.kind = ManualLB (consulte a nota de versão)
Imutável
Número inteiro
Pré-preenchido: 30243

O proxy de entrada num cluster de utilizador é exposto por um serviço Kubernetes do tipo LoadBalancer. O serviço tem uma ServicePort para HTTP. Escolha um valor nodePort para o HTTP ServicePort e defina este campo para o valor nodePort.

Nota sobre a versão: na versão 1.30 e superior, as portas dos nós de entrada são opcionais para clusters que usam o Controlplane V2.

Exemplo:

loadBalancer:
  manualLB:
    ingressHTTPNodePort: 32527

loadBalancer.manualLB.ingressHTTPSNodePort

Obrigatório se loadBalancer.kind = ManualLB (see Version note)
Imutável
Número inteiro
Pré-preenchido: 30879

O proxy de entrada num cluster de utilizadores é exposto por um serviço do tipo LoadBalancer. O serviço tem um ServicePort para HTTPS. Escolha um valor para o ServicePort HTTPS e defina este campo para o valor.nodePortnodePort

Nota sobre a versão: na versão 1.30 e superior, as portas dos nós de entrada são opcionais para clusters que usam o Controlplane V2.

Exemplo:

loadBalancer:
  manualLB:
    ingressHTTPSNodePort: 30139

loadBalancer.manualLB.controlPlaneNodePort

Obrigatório se loadBalancer.kind = ManualLB e enableControlplaneV2 = false
Imutável
Número inteiro
Pré-preenchido: 30562

O servidor da API Kubernetes de um cluster de utilizador é executado no cluster de administrador e é exposto por um serviço do tipo LoadBalancer. Tem de escolher um valor para o serviço.nodePort

Defina este campo para o valor nodePort.

Exemplo:

loadBalancer:
  manualLB:
    controlPlaneNodePort: 30968

loadBalancer.manualLB.konnectivityServerNodePort

Obrigatório se loadBalancer.kind = ManualLB e enableControlplaneV2 = false
Imutável
Número inteiro
Preenchido previamente: 30563

O servidor da API Kubernetes de um cluster de utilizador que usa o kubeception é executado no cluster de administrador e é exposto por um serviço do tipo LoadBalancer. O servidor Konnectivity reutiliza este serviço com um valor nodePort diferente. Tem de escolher um valor nodePort para o servidor Konnectivity.

Defina este campo com o valor nodePort para o servidor Konnectivity.

Exemplo:

loadBalancer:
  manualLB:
    konnectivityServerNodePort: 30969

loadBalancer.f5BigIP

1,30 e superior

Na versão 1.30 e superior, o valor "F5BigIP" não é permitido para loadbalancer.kind para novos clusters de utilizadores. Se a secção loadBalancer.f5BigIP estiver no ficheiro de configuração, remova-a ou comente-a.

Pode continuar a usar o seu equilibrador de carga F5 BIG-IP com novos clusters de utilizadores, mas a configuração é diferente. Para ver detalhes da configuração, consulte o artigo Ativar o modo de equilíbrio de carga manual.

Se um cluster existente tiver esta secção configurada, as atualizações para a versão 1.32 são bloqueadas. Tem de migrar os seus clusters para as funcionalidades recomendadas antes de atualizar para a versão 1.32.

1,29 e inferior

Se definir loadbalancer.kind como "F5BigIP", preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.

Para ativar funcionalidades novas e avançadas, recomendamos que configure o equilíbrio de carga manual para o seu equilibrador de carga F5 BIG-IP. Para ativar o equilíbrio de carga manual, defina loadbalancer.kind como"ManualLB" e preencha a secção loadBalancer.manualLB. Para mais informações, consulte o artigo Ativar o modo de equilíbrio de carga manual.

Se tiver um equilibrador de carga F5-BIG-IP existente e a configuração do cluster usar esta secção, após a atualização para a versão 1.29 ou superior, recomendamos que migre para o equilíbrio de carga manual.

loadBalancer.f5BigIP.address

1,30 e superior

Não permitido para novos clusters
Obrigatório se loadBalancer.kind = "F5BigIP"
String

O endereço do seu equilibrador de carga F5 BIG-IP.

Exemplo:

loadBalancer:
  f5BigIP:
      address: "203.0.113.2"

1,29 e inferior

Obrigatório se loadBalancer.kind = "F5BigIP"
String

O endereço do seu equilibrador de carga F5 BIG-IP.

Exemplo:

loadBalancer:
  f5BigIP:
      address: "203.0.113.2"

loadBalancer.f5BigIP.credentials.fileRef.path

1,30 e superior

Não permitido para novos clusters
Obrigatório se loadBalancer.kind = "F5BigIP"
String

O caminho de um ficheiro de credenciais que contém o nome de utilizador e a palavra-passe de uma conta que o Google Distributed Cloud pode usar para se ligar ao seu equilibrador de carga F5 BIG-IP.

A conta de utilizador tem de ter uma função de utilizador com autorizações suficientes para configurar e gerir o equilibrador de carga. A função de administrador ou a função de administrador de recursos é suficiente.

Para ver informações sobre como atualizar as suas credenciais do F5 BIG-IP, consulte o artigo Atualizar credenciais do cluster.

Exemplo:

loadBalancer:
  f5BigIP:
    credentials:
      fileRef:
        path: "my-config-folder/user-creds.yaml"

1,29 e inferior

Obrigatório se loadBalancer.kind = "F5BigIP"
String

O caminho de um ficheiro de credenciais que contém o nome de utilizador e a palavra-passe de uma conta que o Google Distributed Cloud pode usar para se ligar ao seu equilibrador de carga F5 BIG-IP.

A conta de utilizador tem de ter uma função de utilizador com autorizações suficientes para configurar e gerir o equilibrador de carga. A função de administrador ou a função de administrador de recursos é suficiente.

Para ver informações sobre como atualizar as suas credenciais do F5 BIG-IP, consulte o artigo Atualizar credenciais do cluster.

Exemplo:

loadBalancer:
  f5BigIP:
    credentials:
      fileRef:
        path: "my-config-folder/user-creds.yaml"

loadBalancer.f5BigIP.credentials.fileRef.entry

1,30 e superior

Não permitido para novos clusters
Obrigatório se loadBalancer.kind = "F5BigIP"
String

O nome do bloco de credenciais no ficheiro de configuração de credenciais que contém o nome de utilizador e a palavra-passe da sua conta F5 BIG-IP.

Exemplo:

loadBalancer:
  f5BigIP:
    credentials:
      fileRef:
        entry: "f5-creds"

1,29 e inferior

Obrigatório se loadBalancer.kind = "F5BigIP"
String

O nome do bloco de credenciais no ficheiro de configuração de credenciais que contém o nome de utilizador e a palavra-passe da sua conta F5 BIG-IP.

Exemplo:

loadBalancer:
  f5BigIP:
    credentials:
      fileRef:
        entry: "f5-creds"

loadBalancer.f5BigIP.partition

1,30 e superior

Não permitido para novos clusters
Obrigatório se loadBalancer.kind = "F5BigIP"
String

O nome de uma partição BIG-IP que criou para o seu cluster de utilizadores.

Exemplo:

loadBalancer:
  f5BigIP:
    partition: "my-f5-user-partition"

1,29 e inferior

Obrigatório se loadBalancer.kind = "F5BigIP"
String

O nome de uma partição BIG-IP que criou para o seu cluster de utilizadores.

Exemplo:

loadBalancer:
  f5BigIP:
    partition: "my-f5-user-partition"

loadBalancer.f5BigIP.snatPoolName

1,30 e superior

Não permitido para novos clusters
Obrigatório se loadBalancer.kind = "F5BigIP" e estiver a usar SNAT
String

O nome do seu conjunto de SNAT.

Exemplo:

loadBalancer:
  f5BigIP:
    snatPoolName: "my-snat-pool"

1,29 e inferior

Obrigatório se loadBalancer.kind = "F5BigIP" e estiver a usar SNAT
String

O nome do seu conjunto de SNAT.

Exemplo:

loadBalancer:
  f5BigIP:
    snatPoolName: "my-snat-pool"

loadBalancer.seesaw

1,30 e superior

Na versão 1.30 e superior, o valor "Seesaw" não é permitido para loadbalancer.kind para novos clusters de utilizadores porque este equilibrador de carga não é suportado com funcionalidades novas e avançadas. Se a secção loadBalancer.seesaw estiver no ficheiro de configuração, remova-a ou comente-a.

Em alternativa, pode configurar o balanceador de carga MetalLB incluído. Para ativar o balanceador de carga do MetalLB, defina loadbalancer.kind como "MetalLB" e preencha a secção loadBalancer.metalLB. Para mais informações, consulte o artigo Balanceamento de carga integrado com o MetalLB.

1,29 e inferior

Se definir loadbalancer.kind como "Seesaw", preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.

Tenha em atenção as seguintes limitações com o equilibrador de carga SeeSaw:

Para usar estas funcionalidades, recomendamos que configure o balanceador de carga do MetalLB. Para ativar o balanceador de carga do MetalLB, defina loadbalancer.kind como"MetalLB" e preencha a secção loadBalancer.metalLB. Para mais informações, consulte o artigo Balanceamento de carga integrado com o MetalLB.

loadBalancer.seesaw.ipBlockFilePath

1,30 e superior

Não permitido para novos clusters
Obrigatório se loadBalancer.kind = Seesaw
Imutável
String

O caminho do ficheiro de bloco de IP para as suas VMs do Seesaw.

Exemplo:

loadBalancer:
  seesaw:
    ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"

1,29 e inferior

Obrigatório se loadBalancer.kind = Seesaw
Imutável
String

O caminho do ficheiro de bloco de IP para as suas VMs do Seesaw.

Exemplo:

loadBalancer:
  seesaw:
    ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"

loadBalancer.seesaw.vrid

1,30 e superior

Não permitido para novos clusters
Obrigatório se loadBalancer.kind = Seesaw
Imutável
Número inteiro
Valores possíveis: 1 a 255
Pré-preenchido: 0

O identificador do router virtual da sua VM do Seesaw. Este identificador, que é um número inteiro à sua escolha, tem de ser exclusivo numa VLAN.

Exemplo:

loadBalancer:
  seesaw:
    vrid: 125

1,29 e inferior

Obrigatório se loadBalancer.kind = Seesaw
Imutável
Número inteiro
Valores possíveis: 1 a 255
Pré-preenchido: 0

O identificador do router virtual da sua VM do Seesaw. Este identificador, que é um número inteiro à sua escolha, tem de ser exclusivo numa VLAN.

Exemplo:

loadBalancer:
  seesaw:
    vrid: 125

loadBalancer.seesaw.masterIP

1,30 e superior

Não permitido para novos clusters
Obrigatório se loadBalancer.kind = Seesaw
Imutável
String

O endereço IP virtual configurado na VM principal do Seesaw.

Exemplo:

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

1,29 e inferior

Obrigatório se loadBalancer.kind = Seesaw
Imutável
String

O endereço IP virtual configurado na VM principal do Seesaw.

Exemplo:

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

loadBalancer.seesaw.cpus

1,30 e superior

Não permitido para novos clusters
Obrigatório se loadBalancer.kind = Seesaw
Mutável
Número inteiro
Pré-preenchido: 4

O número de CPUs para cada uma das suas VMs do Seesaw.

Exemplo:

loadBalancer:
  seesaw:
    cpus: 8

1,29 e inferior

Obrigatório se loadBalancer.kind = Seesaw
Mutável
Número inteiro
Pré-preenchido: 4

O número de CPUs para cada uma das suas VMs do Seesaw.

Exemplo:

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

1,30 e superior

Não permitido para novos clusters
Obrigatório se loadBalancer.kind = Seesaw
Mutável
Número inteiro
Pré-preenchido: 3072

O número de mebibytes de memória para cada uma das suas VMs do Seesaw.

Exemplo:

loadBalancer:
  seesaw:
    memoryMB: 8192

Nota: este campo especifica o número de mebibytes de memória e não o número de megabytes. Um mebibyte é 220 = 1 048 576 bytes. Um megabyte é 106 = 1 000 000 bytes.

1,29 e inferior

Obrigatório se loadBalancer.kind = Seesaw
Mutável
Número inteiro
Pré-preenchido: 3072

O número de mebibytes de memória para cada uma das suas VMs do Seesaw.

Exemplo:

loadBalancer:
  seesaw:
    memoryMB: 8192

Nota: este campo especifica o número de mebibytes de memória e não o número de megabytes. Um mebibyte é 220 = 1 048 576 bytes. Um megabyte é 106 = 1 000 000 bytes.

loadBalancer.seesaw.vCenter.networkName

1,30 e superior

Não permitido para novos clusters
Imutável
String
Predefinição: igual aos nós do cluster

O nome da rede do vCenter que contém as suas VMs do Seesaw.

Exemplo:

loadBalancer:
  seesaw:
    vCenter:
      networkName: "my-seesaw-network"

1,29 e inferior

Imutável
String
Predefinição: igual aos nós do cluster

O nome da rede do vCenter que contém as suas VMs do Seesaw.

Exemplo:

loadBalancer:
  seesaw:
    vCenter:
      networkName: "my-seesaw-network"

loadBalancer.seesaw.enableHA

1,30 e superior

Não permitido para novos clusters
Imutável
Relevante se loadBalancer.kind = Seesaw
Booleano
Preenchido previamente: false
Predefinição: false

Se quiser criar um balanceador de carga Seesaw de alta disponibilidade (AD), defina esta opção como true. Caso contrário, defina este valor como false. Um balanceador de carga do Seesaw de HA usa um par(principal, cópia de segurança) de VMs.

Exemplo:

loadBalancer:
  seesaw:
    enableHA: true

1,29 e inferior

Imutável
Relevante se loadBalancer.kind = Seesaw
Booleano
Preenchido previamente: falso
Predefinição: falso

Se quiser criar um balanceador de carga Seesaw de alta disponibilidade (AD), defina esta opção como true. Caso contrário, defina este valor como false. Um balanceador de carga do Seesaw de HA usa um par(principal, cópia de segurança) de VMs.

Exemplo:

loadBalancer:
  seesaw:
    enableHA: true

loadBalancer.seesaw.disableVRRPMAC

1,30 e superior

Não permitido para novos clusters
Imutável
Relevante se loadBalancer.kind = Seesaw
Booleano
Pré-preenchido: true
Predefinição: true

Se estiver definido como true (recomendado), o balanceador de carga do Seesaw não usa a aprendizagem de MAC para a comutação por falha. Em alternativa, usa o ARP gratuito. Se este campo estiver definido como false, o equilibrador de carga do Seesaw usa a aprendizagem de MAC. Se estiver a usar o vSphere 7 ou posterior e tiver um balanceador de carga Seesaw de alta disponibilidade, este campo tem de estar definido como true.

Exemplo:

loadBalancer:
  seesaw:
    disableVRRPMAC: true

1,29 e inferior

Imutável
Relevante se loadBalancer.kind = Seesaw
Booleano
Pré-preenchido: verdadeiro
Predefinição: verdadeiro

Se definir esta opção como true (recomendado), o balanceador de carga do Seesaw não usa a aprendizagem de MAC para a comutação por falha. Em alternativa, usa o ARP gratuito. Se definir esta opção como false, o equilibrador de carga do Seesaw usa a aprendizagem de MAC. Se estiver a usar o vSphere 7 ou posterior e tiver um equilibrador de carga Seesaw de alta disponibilidade, tem de definir esta opção como true.

Exemplo:

loadBalancer:
  seesaw:
    disableVRRPMAC: true

loadBalancer.metalLB

Se definir loadbalancer.kind como "MetalLB", preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.

Para mais informações, consulte o artigo Equilíbrio de carga integrado com o MetalLB.

loadBalancer.metalLB.addressPools

Obrigatório se loadBalancer.kind = MetalLB
Mutável (consulte a exceção)

Matriz de objetos, cada um dos quais contém informações sobre um conjunto de endereços a ser usado pelo equilibrador de carga do MetalLB.

1.32 e superior

O comportamento deste campo é o mesmo quando enableAdvancedCluster está definido como true (cluster avançado ativado) ou false (cluster avançado não ativado). Em ambos os casos, a matriz não é totalmente mutável. Pode adicionar conjuntos de endereços, mas não é suportado remover conjuntos de endereços de uma matriz de conjuntos de endereços existente.

1.31

O comportamento deste campo depende de enableAdvancedCluster estar definido como true (cluster avançado ativado) ou false (cluster avançado não ativado):

  • Se o cluster avançado estiver ativado: a matriz não é totalmente mutável. Pode adicionar conjuntos de endereços, mas não é possível remover conjuntos de endereços de uma matriz de conjuntos de endereços existente.

  • Se o cluster avançado não estiver ativado: a matriz é mutável. Pode adicionar e remover conjuntos de endereços de uma matriz de conjuntos de endereços existente.

1.30 e anterior

Pode adicionar e remover conjuntos de endereços de uma matriz de conjuntos de endereços existente.

loadBalancer.metalLB.addressPools[i].name

Obrigatório se loadBalancer.kind = MetalLB
Mutável (consulte a exceção)
String

Um nome à sua escolha para o conjunto de endereços.

1.32 e superior

O comportamento deste campo é o mesmo que quando enableAdvancedCluster está definido como true (cluster avançado ativado) ou false (cluster avançado não ativado). Em ambos os casos, não é possível alterar o nome após a criação do cluster.

1.31

O comportamento deste campo depende de enableAdvancedCluster estar definido como true (cluster avançado ativado) ou false (cluster avançado não ativado):

  • Se o agrupamento avançado estiver ativado: não é suportada a alteração do nome após a criação do agrupamento.

  • Se o cluster avançado não estiver ativado: pode alterar o nome do conjunto depois de criar o cluster.

1.30 e anterior

Pode alterar o nome do conjunto após a criação do cluster.

Exemplo:

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
loadBalancer.metalLB.addressPools[i].addresses

Obrigatório se loadBalancer.kind = MetalLB
Mutável (consulte a exceção)

Matriz de strings, cada uma das quais é um intervalo de endereços. Cada intervalo tem de estar no formato CIDR ou no formato de intervalo com hífen.

1.32 e superior

O comportamento deste campo é o mesmo que quando enableAdvancedCluster está definido como true (cluster avançado ativado) ou false (cluster avançado não ativado). Em ambos os casos, pode adicionar endereços a um conjunto de endereços existente, mas não é possível remover endereços.

1.31

O comportamento deste campo depende de enableAdvancedCluster estar definido como true (cluster avançado ativado) ou false (cluster avançado não ativado):

  • Se o cluster avançado estiver ativado: pode adicionar endereços a um conjunto de endereços existente, mas a remoção de endereços não é suportada.

  • Se o cluster avançado não estiver ativado: pode adicionar e remover endereços de um conjunto de endereços existente.

1.30 e anterior

Pode adicionar e remover endereços de um conjunto de endereços existente.

Exemplo:

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
      addresses:
      - "192.0.2.0/26"
      - "192.0.2.64-192.0.2.72"
loadBalancer.metalLB.addressPools[i].avoidBuggyIPs

Relevante se loadBalancer.kind = MetalLB
Mutable
Boolean
Prepopulated: false
Default: false

Se definir esta opção como true, o controlador MetalLB não atribui endereços IP que terminem em .0 ou .255 aos serviços. Isto evita o problema de dispositivos de consumo com erros que eliminam por engano o tráfego enviado para esses endereços IP especiais.

Exemplo:

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
      - "192.0.2.0/26"
      - "192.0.2.64-192.0.2.72"
      avoidBuggyIPs: true
loadBalancer.metalLB.addressPools[i].manualAssign

Relevante se loadBalancer.kind = MetalLB
Mutable
Boolean
Prepopulated: false
Default: false

Se não quiser que o controlador MetalLB atribua automaticamente endereços IP deste conjunto a serviços, defina esta opção como true. Em seguida, um programador pode criar um serviço do tipo LoadBalancer e especificar manualmente um dos endereços do conjunto.

Caso contrário, defina este valor como false.

Exemplo:

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
      manualAssign: true

enableDataplaneV2

1,30 e superior

Mutável (de false para true é permitido)
Booleano
Pré-preenchido: verdadeiro
Predefinição: falso

Este campo controla a interface de rede do contentor (CNI) que o cluster usa. A ativação do Dataplane V2 é necessária para usar o Controlplane V2. Pode alterar o campo de false para true para ativar o Dataplane V2, mas não é permitido desativar o Dataplane V2.

As vantagens do Dataplane V2 incluem o seguinte:

  • O plano de dados V2 oferece-lhe uma interface de rede de contentores (CNI) mais avançada e capaz em comparação com a opção CNI anterior, o Calico. O Calico está no modo de manutenção, o que significa que recebe apenas correções de erros críticos e atualizações de segurança, mas não recebe desenvolvimento de novas funcionalidades. Por outro lado, o Dataplane V2 é ativamente desenvolvido e melhorado, o que garante que tem acesso às mais recentes inovações e capacidades de rede.

  • O Dataplane V2 é o CNI preferencial para o GKE e outros produtos do Google Distributed Cloud.

1,29 e inferior

Imutável
Booleano
Pré-preenchido: verdadeiro
Predefinição: falso

Se quiser ativar o Dataplane V2, ou se quiser usar o Controlplane V2, defina esta opção como true. Caso contrário, defina este valor como false.

Recomendamos que ative o Dataplane V2.

Exemplo:

  enableDataplaneV2: true

Consulte o artigo Resolva problemas do Google Distributed Cloud NFS e do DataPlane v2 para ver os passos de resolução de problemas.

dataplaneV2.forwardMode

Mutável
String
Valores possíveis: "snat", "dsr"
Pré-preenchido: "snat"
Predefinição: "snat"

O modo de encaminhamento para um cluster que tem o Dataplane V2 ativado.

Com o modo de tradução de endereços de rede de origem (SNAT), um pacote é traduzido por SNAT quando é encaminhado de um nó do equilibrador de carga para um pod de back-end. O Pod não consegue ver o endereço IP de origem original e o pacote de retorno tem de passar pelo nó do balanceador de carga.

Com o modo de retorno direto do servidor (DSR), um pacote retém o seu endereço IP de origem original quando é encaminhado de um nó do equilibrador de carga para um pod de back-end. O pod pode ver o endereço IP de origem original e o pacote de retorno vai diretamente para o cliente sem passar pelo nó do balanceador de carga.

Exemplo:

dataplaneV2:
  forwardMode: "dsr"

multipleNetworkInterfaces

Imutável
Booleano
Pré-preenchido: false
Predefinição: false

Se infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador, este campo tem de ser false.

Se quiser ativar várias interfaces de rede para os pods, defina esta opção como true.

Para mais informações, consulte o artigo Configure várias interfaces de rede para pods.

Exemplo:

multipleNetworkInterfaces: true

advancedNetworking

Imutável
booleano
Preenchido previamente: false
Predefinição: false

Se planeia criar um gateway de NAT de saída, defina esta opção como true. Caso contrário, defina-o como false.

Se definir este campo como true, também tem de definir enableDataplaneV2 como true.

Exemplo:

advancedNetworking: true

disableBundledIngress

Defina esta opção como true se quiser desativar a entrada agrupada para o cluster. Caso contrário, defina-o como false.

Booleano
Mutável
Preenchido previamente: falso
Predefinição: falso

Exemplo:

disableBundledIngress: true

storage.vSphereCSIDisabled

Se quiser desativar a implementação de componentes do CSI do vSphere, defina esta opção como true. Caso contrário, defina-o como false.

Se infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador, este campo tem de ser true.

Mutável
Booleano
Pré-preenchido: falso
Predefinição: falso

Exemplo:

storage:
  vSphereCSIDisabled: false

masterNode

Esta secção contém informações acerca dos nós que servem como nós do plano de controlo para este cluster de utilizadores.

masterNode.controlPlaneLoadBalancer

1.32 e superior

Opcionalmente, inclua esta secção para especificar o tipo de equilibrador de carga a usar para o tráfego do plano de controlo no cluster de utilizador. Inclua masterNode.controlPlaneLoadBalancer.mode no ficheiro de configuração se quiser definir explicitamente o tipo de equilibrador de carga a usar em vez de confiar no valor predefinido. Além disso, tem de definir loadBalancer.kind no ficheiro de configuração para especificar o tipo de equilibrador de carga a usar para o plano de dados.

masterNode.controlPlaneLoadBalancer.mode

Opcional
Imutável
String
Predefinição: depende de o cluster usar domínios de topologia

O tipo de equilibrador de carga que pode usar depende de configurar o cluster para usar domínios de topologia. Assume-se que o cluster usa domínios de topologia se o campo infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador.

  • Com domínios de topologia: especifique "manual", que é o valor predefinido. Tem de configurar um equilibrador de carga de terceiros (como o F5 BIG-IP ou o Citrix) se quiser usar domínios de topologia.

  • Sem domínios de topologia: especifique "manual" ou "bundled". Use "manual" se tiver um equilibrador de carga de terceiros ou "bundled" para a nossa solução integrada, que usa keepalived + haproxy em execução nos nós do plano de controlo. O valor predefinido é "bundled".

Exemplo:

adminMaster:
  controlPlaneLoadBalancer:
    mode: "manual"

1,31 e inferior

Esta secção não está disponível. Em alternativa, use loadBalancer.kind para especificar o tipo de equilibrador de carga que o cluster de utilizadores deve usar.

masterNode.cpus

Mutável
Número inteiro
Pré-preenchido: 4
Predefinição: 4

O número de CPUs para cada nó que funciona como um plano de controlo para este cluster de utilizadores.

Exemplo:

masterNode:
  cpus: 8

masterNode.memoryMB

Mutável
Número inteiro
Pré-preenchido: 8192
Predefinição: 8192

Os mebibytes de memória para cada nó que serve como um plano de controlo para este cluster de utilizadores. Tem de ser um múltiplo de 4.

Exemplo:

masterNode:
  memoryMB: 8192

Nota: este campo especifica o número de mebibytes de memória e não o número de megabytes. Um mebibyte é 2^20 = 1.048.576 bytes. Um megabyte é 10^6 = 1 000 000 bytes.

masterNode.replicas

Imutável
Número inteiro
Valores possíveis: 1 ou 3
Pré-preenchido: 1
Padrão: 1

O número de nós do plano de controlo para este cluster de utilizadores. Não é possível alterar este número depois de criar o cluster. Se quiser atualizar o número de réplicas mais tarde, tem de recriar o cluster de utilizadores.

Se o campo enableAdvancedCluster for true, tem de definir este campo como 3. Apenas são suportados clusters de utilizadores de alta disponibilidade (HA) em clusters avançados.

Exemplo:

masterNode:
  replicas: 3

masterNode.autoResize.enabled

Mutável
Booleano
Pré-preenchido: falso
Predefinição: falso

Defina esta opção como true para ativar a alteração automática do tamanho dos nós do plano de controlo para o cluster de utilizadores. Caso contrário, defina este valor como false.

Para mais informações, consulte o artigo Ative a alteração do tamanho dos nós para os nós do plano de controlo de um cluster de utilizadores.

Exemplo:

masterNode:
  autoResize:
    enabled: true

masterNode.vsphere

Se infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador, remova toda esta secção.

masterNode.vsphere.datastore

Opcional
Imutável
String
Predefinição: o valor de vCenter.datastore

O armazenamento de dados onde os nós do plano de controlo para este cluster de utilizadores vão ser criados.

O valor especificado tem de ser um nome, não um caminho. Não inclua pastas no valor.

Exemplo:

masterNode:
  vSphere:
    datastore: "control-plane-datastore"

Se especificar um valor para este campo, não especifique um valor para masterNode.vsphere.storagePolicyName. O campo masterNode.vsphere.datastore é imutável, exceto quando o define como uma string vazia quando migra um arquivo de dados para a gestão baseada em políticas de armazenamento (SPBM).

masterNode.vsphere.storagePolicyName

Opcional
Imutável
String
Predefinição: o valor de vCenter.storagePolicyName

O nome de uma política de armazenamento de VMs para os nós do plano de controlo.

Para mais informações, consulte o artigo Configure uma política de armazenamento.

Exemplo:

masterNode:
  vSphere:
    storagePolicyName: "control-plane-storage-policy"

Se especificar um valor para este campo, não especifique um valor para masterNode.vsphere.datastore.

masterNode.topologyDomains

1.32 e superior

Preview
Opcional
Matriz de strings | Permite um elemento ou três elementos diferentes
Imutável
Predefinição: vSphereInfraConfig.defaultTopologyDomain se especificado no ficheiro de configuração da infraestrutura do vSphere

Uma matriz de domínios de topologia. Se infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador (o que indica que o cluster vai usar domínios de topologia), inclua opcionalmente este campo. O número de domínios de topologia na matriz determina como os nós do plano de controlo do cluster de utilizador são implementados, da seguinte forma:

  • Um elemento: todos os nós do plano de controlo do cluster de utilizadores serão implementados no domínio de topologia especificado.
  • Três elementos: cada nó do plano de controlo do cluster de utilizadores é implementado num domínio de topologia diferente (ou seja, um nó por domínio de topologia).

1.31

Preview
Opcional
Matriz de strings | Mas apenas um elemento é suportado
Imutável
Predefinição: vSphereInfraConfig.defaultTopologyDomain se especificado no ficheiro de configuração da infraestrutura do vSphere

Uma matriz de domínios de topologia. Se infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador (que indica que o cluster vai usar domínios de topologia), inclua este campo opcionalmente. Os nós do plano de controlo do cluster de utilizadores são implementados no domínio de topologia especificado.

1,30 e inferior

Não disponível.

nodePools

Obrigatório
Mutável
Matriz de objetos, cada um dos quais descreve um conjunto de nós.

Para mais informações, consulte o artigo Criar e gerir conjuntos de nós.

nodePools[i].name

Obrigatório
Imutável
String

Um nome à sua escolha para o conjunto de nós. O nome tem de:

  • Conter, no máximo, 40 carateres
  • conter apenas carateres alfanuméricos minúsculos ou um hífen (-)
  • Começar com um caráter alfabético
  • Terminar com um caráter alfanumérico

Exemplo:

nodePools:
- name: "my-node-pool-1"

nodePools[i].gkeOnPremVersion

Quando atualiza um cluster de utilizadores, pode especificar que os conjuntos de nós selecionados permaneçam na versão anterior.

Se quiser que este conjunto de nós permaneça na versão anterior, defina esta opção para a versão anterior. Caso contrário, remova este campo ou defina-o como a string vazia. Para mais informações, consulte o artigo Atualize um cluster de utilizadores.

Mutável
String
Predefinição: o cluster gkeOnPremVersion

Exemplo:

nodePools:
- name: "my-node-pool"
  gkeOnPremVersion: "1.13.0-gke.16"

nodePools[i].cpus

Obrigatório
Mutável
Número inteiro
Pré-preenchido: 4

O número de vCPUs para cada nó no conjunto.

Exemplo:

nodePools"
- name: "my-node-pool"
  cpus: 8

nodePools[i].memoryMB

Obrigatório
Mutável
Número inteiro
Pré-preenchido: 8192

Os mebibytes de memória para cada nó no conjunto. Tem de ser um múltiplo de 4.

Exemplo:

nodePools"
- name: "my-node-pool"
  memoryMB: 8192

Nota: este campo especifica o número de mebibytes de memória e não o número de megabytes. Um mebibyte é 2^20 = 1.048.576 bytes. Um megabyte é 10^6 = 1 000 000 bytes.

nodePools[i].replicas

Obrigatório
Mutável
Número inteiro
Pré-preenchido: 3
Valores possíveis: o número total de nós não contaminados em todos os conjuntos de nós no cluster tem de ser, pelo menos, 3.

O número de nós no conjunto.

Exemplo:

nodePools:
- name: "my-node-pool"
  replicas: 5

nodePools[i].bootDiskSizeGB

Mutável
Integer
Preenchido previamente: 40
Predefinição: 40

O tamanho do disco de arranque em gibibytes para cada nó no conjunto.

Exemplo:

nodePools
- name: "my-node-pool"
  bootDiskSizeGB: 40

nodePools[i].osImageType

Mutable
String
Valores possíveis: "ubuntu_containerd", "cos", "ubuntu_cgv2", "cos_cgv2"
Pré-preenchido: "ubuntu_cgv2"
Predefinição: "ubuntu_containerd"

O tipo de imagem do SO a executar nas VMs no node pool.

Na versão 1.32, os pools de nós do Windows Server foram descontinuados e vão ficar indisponíveis na versão 1.33 e superior. O apoio técnico para pools de nós do Windows Server termina a 5 de maio de 2026. Recomendamos que não use "windows" como o tipo de imagem do SO em novos clusters.

Tenha em atenção a seguinte limitação com os clusters avançados:

  • Versão 1.31: se o campo enableAdvancedCluster for true, apenas ubuntu-cgroupv2 e ubuntu_containerd são suportados em clusters avançados.

  • Versão 1.32: todos os tipos de imagens de SO, exceto "windows", são suportados em clusters avançados.

Exemplo:

nodePools
- name: "my-node-pool"
  osImageType: "ubuntu_cgv2"

nodePools[i].osImage

Obrigatório se nodePools[i].osImageType = windows
Mutável
String

O nome de um modelo de VM do Windows. O modelo tem de se basear numa ISO do Windows Server 2019 que tenha a etiqueta de idioma/região en-US.

Para mais informações, consulte o manual do utilizador para pools de nós do SO Windows Server.

nodePools[i].labels

Mutable
Mapping

Etiquetas a aplicar a cada objeto de nó do Kubernetes no conjunto.

Exemplo:

nodePools:
- name: "my-node-pool"
  labels:
    environment: "production"
    tier: "cache"

O kubelet não pode aplicar etiquetas a si próprio em determinados espaços de nomes por motivos de segurança.

Os espaços de nomes de etiquetas de nós reservados são : kubernetes.io, k8s.io e googleapis.com.

nodePools[i].taints

Mutável
Matriz de objetos, cada um dos quais descreve uma Kubernetes taint que é aplicada a cada nó no conjunto. As restrições são pares de chave-valor associados a um effect. As restrições são usadas com tolerâncias para o agendamento de pods. Especifique uma das seguintes opções para effect: NoSchedule, PreferNoSchedule, NoExecute.

Exemplo:

nodePools:
- name: "my-node-pool"
  taints:
  - key: "staging"
    value: "true"
    effect: "NoSchedule"

nodePools[i].vsphere

Se infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador, remova todos os campos na secção nodePools[i].vsphere, exceto nodePools[i].vsphere.tags.

nodePools[i].vsphere.datastore

Mutável
String
Predefinição: o valor de vCenter.datastore

O nome do repositório de dados do vCenter onde os nós vão ser criados.

Exemplo:

nodePools:
- name: "my-node-pool"
  vsphere:
    datastore: "my-datastore"

Se especificar um valor para este campo, não especifique um valor para nodePools[i].vsphere.storagePolicyName.

nodePools[i].vsphere.storagePolicyName

Mutável
String
Predefinição: o valor de vCenter.storagePolicyName

O nome de uma política de armazenamento de VMs para os nós no conjunto.

Para mais informações, consulte o artigo Configure uma política de armazenamento.

Exemplo:

nodePools:
- name: "my-node-pool"
  vsphere:
    storagePolicyName: "my-storage-policy"

Se especificar um valor para este campo, não especifique um valor para nodePools[i].vsphere.datastore.

nodePools[i].vsphere.hostgroups

Preencha esta secção se quiser configurar o cluster para usar a afinidade de anfitriões de VMs.

Mutável
Matriz de strings, cada uma das quais é o nome de um grupo DRS anfitrião.

A matriz só pode ter um elemento.

Exemplo:

nodePools:
- name: "my-node-pool"
  vsphere:
    hostgroups:
    - "my-hostgroup"

nodePools[i].vsphere.tags

Mutable
Matriz de objetos, cada um dos quais descreve uma etiqueta do vSphere a colocar nas VMs no node pool.

Cada etiqueta tem uma categoria e um nome.

Exemplo:

nodePools:
- name: "my-node-pool"
  vsphere:
    tags:
    - category: "purpose"
      name: "testing"

Se quiser anexar etiquetas a todas as VMs num conjunto de nós, a sua conta de utilizador do vCenter tem de ter estes privilégios de etiquetagem do vSphere:

  • Etiquetagem do vSphere.Atribua ou desatribua uma etiqueta do vSphere
  • Etiquetagem do vSphere.Atribua ou retire a atribuição de uma etiqueta do vSphere a um objeto (vSphere 7)

nodePools[i].autoscaling

Mutável

Se quiser ativar o dimensionamento automático para o conjunto de nós, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.

nodePools[i].autoscaling.minReplicas

Mutável
Número inteiro
Valores possíveis: superior ou igual a 1
Pré-preenchido: 0

O número mínimo de nós que o escalador automático pode definir para o conjunto.

Exemplo:

nodePools:
- name: "my-node-pool"
  autoscaling:
    minReplicas: 5

nodePools[i].autoscaling.maxReplicas

Mutável
Número inteiro
Pré-preenchido: 0

O número máximo de nós que o escalador automático pode definir para o conjunto.

Exemplo:

nodePools:
- name: "my-node-pool"
  autoscaling:
    maxReplicas: 10

nodePools[i].enableLoadBalancer

Relevante se loadBalancer.kind = "MetalLB"
Mutável
Booleano
Pré-preenchido: verdadeiro
Predefinição: falso

1.32 e superior

O comportamento deste campo é o mesmo quando enableAdvancedCluster está definido como true (cluster avançado ativado) ou false (cluster avançado não ativado). Em ambos os casos, defina esta opção como true se quiser permitir que o altifalante do MetalLB seja executado nos nós no conjunto. Caso contrário, defina-o como false.

1.31

O comportamento deste campo depende de enableAdvancedCluster estar definido como true (cluster avançado ativado) ou false (cluster avançado não ativado):

  • Se o cluster avançado estiver ativado: este campo não tem efeito porque o orador do MetalLB é sempre executado nos nós do plano de controlo do cluster de utilizador.

  • Se o cluster avançado não estiver ativado: defina esta opção como true se quiser permitir que o altifalante do MetalLB seja executado nos nós no conjunto. Caso contrário, defina-o como false.

1,29 e inferior

Defina esta opção como true se quiser permitir que o altifalante do MetalLB seja executado nos nós no conjunto. Caso contrário, defina-o como false.

Para mais informações, consulte o artigo Equilíbrio de carga integrado com o MetalLB.

Exemplo:

nodePools:
- name: "my-node-pool"
  enableLoadBalancer: true

nodePools[i].updateStrategy.rollingUpdate.maxSurge

Pré-visualização
Mutável
Inteiro
Predefinição: 1

O número máximo de máquinas no node pool que podem ser atualizadas em simultâneo durante uma atualização.

nodePools:
- name: "my-node-pool"
  updateStrategy:
    rollingUpdate:
      maxSurge: 3

nodePools[i].topologyDomains

1.31 e superior

Se infraConfigFilePath estiver configurado no ficheiro de configuração do cluster de administrador (que ativa os domínios de topologia), inclua opcionalmente este campo.

Matriz de strings | Mas apenas um elemento é suportado
Imutável
Predefinição: vSphereInfraConfig.defaultTopologyDomain se especificado no ficheiro de configuração da infraestrutura do vSphere

Os nós neste conjunto de nós são colocados no domínio de topologia especificado por este campo. Para cada conjunto de nós, só é permitido um domínio de topologia. Todos os nós num conjunto de nós são colocados num único domínio de topologia.

1,30 e inferior

Não disponível.

schedulerConfiguration

1.32 e superior

Pré-visualização
Opcional

Ao configurar domínios de topologia, pode configurar opcionalmente configurações adicionais que serão transmitidas para kube-scheduler.

schedulerConfiguration.defaultTopologySpreadConstraint

Pré-visualização
Opcional
Imutável

Um objeto que define uma regra de restrição de dispersão de topologia predefinida ao nível do cluster que é aplicada ao agendamento de pods. Quando o cluster de utilizadores é criado com domínios de topologia, se esta regra estiver configurada, o kube-scheduler usa a chave de topologia predefinida e distribui os pods de implementações, StatefulSets e ReplicaSets por predefinição. A estrutura é a mesma que as restrições predefinidas ao nível do cluster do Kubernetes.

Exemplo:

schedulerConfiguration:
  defaultTopologySpreadConstraint:
    defaultConstraints:
    - maxSkew: 1
      topologyKey: topology.kubernetes.io/zone
      whenUnsatisfiable: ScheduleAnyway
    defaultingType: List

Para obter detalhes, consulte o artigo Restrições predefinidas ao nível do cluster na documentação do Kubernetes.

1,31 e inferior

Não disponível.

antiAffinityGroups.enabled

Mutável
Booleano
Preenchido previamente: verdadeiro
Predefinição: verdadeiro

Se este campo for true, o Google Distributed Cloud cria regras de anti-afinidade do VMware Distributed Resource Scheduler (DRS) para os nós do cluster de utilizador, o que faz com que sejam distribuídos por, pelo menos, três anfitriões ESXi físicos no seu centro de dados.

Esta funcionalidade requer que o seu ambiente vSphere cumpra as seguintes condições:

  • O VMware DRS está ativado. O VMware DRS requer a edição vSphere Enterprise Plus.

  • A sua conta de utilizador do vSphere tem o privilégio Host.Inventory.Modify cluster.

  • Estão disponíveis, pelo menos, quatro anfitriões ESXi.

Embora a regra exija que os nós do cluster estejam distribuídos por três anfitriões ESXi, recomendamos vivamente que tenha, pelo menos, quatro anfitriões ESXi disponíveis.

Lembre-se de que, se tiver uma licença vSphere Standard, não pode ativar o VMware DRS.

Se não tiver o DRS ativado ou não tiver, pelo menos, quatro anfitriões onde as VMs do vSphere podem ser agendadas, defina antiAffinityGroups.enabled como false.

Tenha em atenção a seguinte limitação com os clusters avançados:

  • Versão 1.31: se o campo enableAdvancedCluster for true, as regras de anti-afinidade não são suportadas em clusters avançados e tem de definir antiAffinityGroups.enabled como false.

  • Versão 1.32: as regras de antiafinidade são suportadas em clusters avançados.

Exemplo:

antiAffinityGroups:
  enabled: false

enableVMTracking

Pré-visualização
Imutável
Preenchido previamente: false

Defina esta opção como true para ativar o acompanhamento de VMs com etiquetas do vSphere. Caso contrário, defina-o como false.

Para mais informações, consulte o artigo Ative o acompanhamento de VMs.

Exemplo:

enableVMTracking: true

nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate

Mutável
Número inteiro
Valores possíveis: 0 ou 1
Pré-preenchido: 0 Predefinição: 0

O número de node pools a atualizar de cada vez. Um valor de 1 especifica que é possível atualizar um conjunto de nós de cada vez. Um valor de 0 especifica que é possível atualizar um número ilimitado de pools de nós de cada vez.

Tenha em atenção a seguinte limitação com os clusters avançados:

  • Versão 1.31: se o campo enableAdvancedCluster for true, as políticas de atualização do conjunto de nós não são suportadas em clusters avançados, pelo que deve remover esta secção do ficheiro de configuração.

  • Versão 1.32: as políticas de atualização de node pool são suportadas em clusters avançados.

Exemplo:

nodePoolUpdatePolicy:
  maximumConcurrentNodePoolUpdate: 1

nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge

Pré-visualização
Mutável
Inteiro
Predefinição: 1

O número máximo de máquinas num node pool que podem ser atualizadas em simultâneo durante uma atualização. Aplica-se a qualquer node pool que não especifique a sua própria estratégia de atualização.

nodePools:
- name: "my-node-pool"
  updateStrategy:
    rollingUpdate:
      maxSurge: 3

authentication

Esta secção contém informações sobre como os utilizadores do cluster são autenticados e autorizados.

authentication.oidc

Não use esta secção. Em alternativa, após a criação do cluster, edite o recurso personalizado ClientConfig conforme descrito no artigo Configurar clusters para o Anthos Identity Service com OIDC .

authentication.sni

Se quiser fornecer um certificado de publicação adicional para o servidor da API Kubernetes do cluster, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.

authentication.sni.certPath

String

O caminho de um certificado de serviço para o servidor da API Kubernetes.

Exemplo:

authentication:
  sni:
    certPath: "my-cert-folder/example.com.crt"

authentication.sni.keyPath

Opcional
String

O caminho do ficheiro de chave privada do certificado.

Exemplo:

authentication:
  sni:
    keyPath: "my-cert-folder/example.com.key"

gkeConnect

Obrigatório
Imutável

Esta secção contém informações sobre o Google Cloud projeto e a conta de serviço que quer usar para registar o seu cluster numa Google Cloud frota.

gkeConnect.projectID

Obrigatório
Imutável
String

O ID do seu projeto anfitrião da frota. Para novos clusters, este ID do projeto tem de ser igual ao ID definido em stackdriver.projectID e cloudAuditLogging.projectID. Se os IDs dos projetos não forem iguais, a criação do cluster falha. Este requisito não é aplicado aos clusters existentes.

Exemplo:

gkeConnect:
  projectID: "my-fleet-host-project"

gkeConnect.location

Imutável
String
Predefinição: global

A associação de frotas de cada cluster é gerida pelo serviço Fleet (gkehub.googleapis.com) e pelo serviço Connect (gkeconnect.googleapis.com). A localização dos serviços pode ser global ou regional. Na versão 1.28 e posteriores, pode especificar opcionalmente a Google Cloud região em que os serviços Fleet e Connect são executados. Se não for especificado, são usadas as instâncias globais dos serviços. Tenha em conta o seguinte:

  • Os clusters de utilizadores criados antes da versão 1.28 são geridos pelos serviços globais Fleet e Connect.

  • Os novos clusters criados com os clientes da API GKE On-Prem ( Google Cloud consola, CLI do Google Cloud ou Terraform) usam a mesma região que especificar para a API GKE On-Prem.

  • Para novos clusters, se incluir este campo, a região especificada tem de ser igual à região configurada em cloudAuditLogging.clusterLocation, stackdriver.clusterLocation e gkeOnPremAPI.location. Se as regiões não forem iguais, a criação do cluster falha.

Exemplo:

gkeConnect:
  location: "us-central1"

gkeConnect.registerServiceAccountKeyPath

Obrigatório
Mutável
String

O caminho do ficheiro de chave JSON para a sua conta de serviço connect-register.

Para atualizar o valor deste campo, use gkectl update cluster.

Para obter informações sobre como alterar a chave da conta de serviço de associação/registo, consulte o artigo Alternar chaves da conta de serviço.

Exemplo:

gkeConnect:
  registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"

gkeConnect.registerServiceAccountKey.secretRef.version

Mutável
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"

A versão de um segredo preparado no cluster de administrador que contém uma chave JSON para a sua conta de serviço de registo de ligação.

Exemplo:

gkeConnect:
  registerServiceAccountKey:
    secretRef:
      version: "1"

gkeOnPremAPI

Na versão 1.16 e posteriores, se a API GKE On-Prem estiver ativada no seu Google Cloud projeto, todos os clusters no projeto são inscritos na API GKE On-Prem automaticamente na região configurada em stackdriver.clusterLocation.

  • Se quiser inscrever todos os clusters no projeto na API GKE On-Prem, certifique-se de que executa os passos em Antes de começar para ativar e usar a API GKE On-Prem no projeto.

  • Se não quiser inscrever o cluster na API GKE On-Prem, inclua esta secção e defina gkeOnPremAPI.enabled como false. Se não quiser inscrever nenhum cluster no projeto, desative gkeonprem.googleapis.com (o nome do serviço para a API GKE On-Prem) no projeto. Para ver instruções, consulte o artigo Desativar serviços.

A inscrição do cluster de utilizadores na API GKE On-Prem permite-lhe usar as ferramentas padrão, ou seja, a Google Cloud consola, a CLI do Google Cloud e o Terraform, para gerir o ciclo de vida do cluster. Além disso, a inscrição do cluster permite-lhe usar a consola ou a CLI gcloud para ver detalhes do cluster. Por exemplo, pode executar comandos gcloud para obter informações sobre o seu cluster de utilizadores.

Depois de adicionar esta secção e criar ou atualizar o cluster, se posteriormente remover a secção e atualizar o cluster, a atualização falha.

gkeOnPremAPI.enabled

Mutable
Boolean
Predefinição: true

Por predefinição, o cluster está inscrito na API GKE On-Prem se a API GKE On-Prem estiver ativada no seu projeto. Defina como false se não quiser inscrever o cluster.

Depois de o cluster ser inscrito na API GKE On-Prem, se precisar de anular a inscrição do cluster, faça a seguinte alteração e, em seguida, atualize o cluster:

gkeOnPremAPI:
  enabled: false

gkeOnPremAPI.location

Imutável
String
Predefinição: stackdriver.clusterLocation

A Google Cloud região onde a API GKE On-Prem é executada e armazena metadados do cluster. Escolha uma das regiões suportadas. Tem de usar a mesma região configurada em gkeConnect.location, stackdriver.clusterLocation e cloudAuditLogging.clusterLocation. Se gkeOnPremAPI.enabled for false, não inclua este campo.

stackdriver

Obrigatório
Mutável

Esta secção contém as configurações necessárias para o Cloud Logging e o Cloud Monitoring.

stackdriver.projectID

Obrigatório para o registo e a monitorização
Imutável
String

O ID do seu projeto anfitrião da frota. Para novos clusters, este ID do projeto tem de ser igual ao ID definido em gkeConnect.projectID e cloudAuditLogging.projectID. Se os IDs dos projetos não forem iguais, a criação do cluster falha. Este requisito não é aplicado aos clusters existentes.

Se necessário, pode configurar um router de registos neste projeto para encaminhar registos para contentores de registos noutro projeto. Para ver informações sobre como configurar o Log Router, consulte o artigo Destinos suportados.

Exemplo:

stackdriver:
  projectID: "my-fleet-host-project"

stackdriver.clusterLocation

Obrigatório para registo e monitorização
Imutável
String
Pré-preenchido: "us-central1"

A Google Cloud região onde quer encaminhar e armazenar as métricas do Cloud Monitoring. Recomendamos que escolha uma região próxima do seu centro de dados no local.

Especifica o encaminhamento de registos e a localização de armazenamento do Cloud Logging na configuração do Log Router. Para mais informações sobre o encaminhamento de registos, consulte o artigo Vista geral do encaminhamento e armazenamento.

O operador do Stackdriver (stackdriver-operator) anexa o valor deste campo a cada entrada de registo e métrica antes de serem encaminhadas para Google Cloud. Estas etiquetas anexadas podem ser úteis para filtrar os registos e as métricas no Explorador de registos e no Explorador de métricas, respetivamente.

Para novos clusters, se incluir as secções gkeOnPremAPI e cloudAuditLogging no ficheiro de configuração, a região que definir aqui tem de ser a mesma que definir em gkeConnect.location, gkeOnPremAPI.location e cloudAuditLogging.clusterLocation. Se as regiões não forem as mesmas, a criação de clusters falha.

Exemplo:

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

Imutável
Booleano
Preenchido previamente: falso

Se a rede do cluster for controlada por uma VPC, defina esta opção como true. Isto garante que toda a telemetria flui através dos endereços IP restritos da Google. Caso contrário, defina este valor como false.

Exemplo:

stackdriver:
  enableVPC: false

stackdriver.serviceAccountKeyPath

Obrigatório para o registo e a monitorização
Mutável
String

O caminho do ficheiro de chave JSON para a sua conta de serviço de registo e monitorização.

Para atualizar o valor deste campo, use gkectl update cluster.

Para obter informações sobre como alterar a chave da conta de serviço de monitorização de registos, consulte o artigo Alternar chaves de contas de serviço.

Exemplo:

stackdriver:
  serviceAccountKeyPath: "my-key-folder/log-mon-key.json"

stackdriver.serviceAccountKey.secretRef.version

Mutável
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"

A versão de um segredo preparado no cluster de administrador que contém uma chave JSON para a sua conta do serviço de monitorização de registos.

Exemplo:

stackdriver:
  serviceAccountKey:
    secretRef:
      version: "1"

stackdriver.disableVsphereResourceMetrics

Mutável
Booleano
Pré-preenchido: falso
Predefinição: falso

Defina esta opção como true para desativar a recolha de métricas do vSphere. Caso contrário, defina-o como false.

Exemplo:

stackdriver:
  disableVsphereResourceMetrics: true

usageMetering

1.32 e superior

A funcionalidade de medição da utilização não é suportada na versão 1.32 e superiores. Não inclua esta secção quando criar novos clusters. No entanto, os clusters existentes que usam esta funcionalidade continuam a funcionar. Em alternativa, recomendamos que use o painel de controlo predefinido Medição da utilização do cluster do Anthos para compreender a utilização de recursos a diferentes níveis. Contacte o Cloud Customer Care se a alternativa não satisfizer os seus exemplos de utilização.

1.30 e 1.31

Recomendamos que não use esta funcionalidade de pré-visualização quando criar novos clusters. No entanto, os clusters existentes que usam esta funcionalidade continuam a funcionar. Em alternativa, recomendamos que use o painel de controlo predefinido, Anthos Cluster Utilization Metering, para compreender a utilização de recursos a diferentes níveis.

Se o campo enableAdvancedCluster for true, remova esta secção. A medição da utilização não é suportada em clusters avançados.

1,29 e inferior

Pré-visualizar
Imutável

Recomendamos que não use esta funcionalidade de pré-visualização quando criar novos clusters. No entanto, os clusters existentes que usam esta funcionalidade continuam a funcionar. Em alternativa, recomendamos que use o painel de controlo predefinido, Anthos Cluster Utilization Metering, para compreender a utilização de recursos a diferentes níveis.

usageMetering.bigQueryProjectID

Pré-visualização
Obrigatório para a medição da utilização
Imutável
String

O ID do Google Cloud projeto onde quer armazenar os dados de medição da utilização

Exemplo:

usageMetering:
bigQueryProjectID: "my-bq-project"

usageMetering.bigQueryDatasetID

Pré-visualização
Obrigatório para a medição da utilização
Imutável
String

O ID do conjunto de dados do BigQuery onde quer armazenar os dados de medição da utilização. Exemplo:

usageMetering:
bigQueryDatasetID: "my-bq-dataset"

usageMetering.bigQueryServiceAccountKeyPath

Pré-visualização
Obrigatório para a medição da utilização
Imutável
String.

O caminho do ficheiro de chave JSON para a sua conta de serviço do BigQuery.

Para atualizar o valor deste campo, use gkectl update cluster.

Para obter informações sobre como alterar a chave da conta de serviço do BigQuery, consulte o artigo Rotação das chaves da conta de serviço.

Exemplo:

usageMetering:
bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"

usageMetering.bigQueryServiceAccountKey.secretRef.version

Mutável
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"

A versão de um segredo preparado no cluster de administrador que contém uma chave JSON para a sua conta de serviço do BigQuery.

Exemplo:

gkeConnect:
bigQueryServiceAccountKey:
  secretRef:
    version: "1"

usageMetering.enableConsumptionMetering

Pré-visualização
Obrigatório para a medição da utilização
Imutável
Booleano
Pré-preenchido: falso

Defina esta opção como true se quiser ativar a medição baseada no consumo. Caso contrário, defina este valor como falso.

Exemplo:

usageMetering:
enableConsumptionMetering: true

cloudAuditLogging

Se quiser integrar os registos de auditoria do servidor da API Kubernetes do seu cluster com os registos de auditoria do Cloud, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.

cloudAuditLogging.projectID

Obrigatório para registos de auditoria do Cloud
Imutável
String

O ID do seu projeto anfitrião da frota. Para novos clusters, este ID do projeto tem de ser igual ao ID definido em gkeConnect.projecID e stackdriver.projectID. Se os IDs dos projetos não forem iguais, a criação do cluster falha. Este requisito não é aplicado aos clusters existentes.

Se necessário, pode configurar um router de registos neste projeto para encaminhar registos para contentores de registos noutro projeto. Para ver informações sobre como configurar o Log Router, consulte o artigo Destinos suportados.

Exemplo:

cloudAuditLogging:
  projectID: "my-fleet-host-project"

cloudAuditLogging.clusterLocation

Obrigatório para registos de auditoria do Cloud
Imutável
String

A Google Cloud região onde quer armazenar os registos de auditoria. É recomendável escolher uma região perto do seu centro de dados no local

Para novos clusters, se incluir as secções gkeOnPremAPI e stackdriver no ficheiro de configuração, a região que definir aqui tem de ser a mesma que definir em gkeConnect.location, gkeOnPremAPI.location e stackdriver.clusterLocation. Se as regiões não forem iguais, a criação do cluster falha.

Exemplo:

cloudAuditLogging:
  clusterLocation: "us-central1"

cloudAuditLogging.serviceAccountKeyPath

Obrigatório para os registos de auditoria do Cloud
Mutável
String

O caminho do ficheiro de chave JSON para a sua conta de serviço de registo de auditoria.

Se vai criar o cluster com enableAdvancedCluster definido como true (o que é necessário para configurar domínios de topologia), defina cloudAuditLogging.serviceAccountKeyPath para o mesmo caminho que stackdriver.serviceAccountKeyPath.

Para atualizar o valor deste campo, use gkectl update cluster.

Para obter informações sobre como alterar a chave da conta de serviço de registo de auditoria, consulte o artigo Alternar chaves de contas de serviço.

Exemplo:

cloudAuditLogging:
  serviceAccountKeyPath: "my-key-folder/audit-log-key.json"

cloudAuditLogging.serviceAccountKey.secretRef.version

Mutável
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"

A versão de um segredo preparado no cluster de administrador que contém uma chave JSON para a conta do seu serviço de registo de auditoria.

Exemplo:

cloudAuditLogging:
  serviceAccountKey:
    secretRef:
      version: "1"

autoRepair.enabled

Opcional
Mutável
Booleano
Pré-preenchido: verdadeiro

Defina esta opção como true para ativar a reparação automática de nós. Caso contrário, defina-o como false.

Exemplo:

autoRepair:
  enabled: true

secretsEncryption

Se quiser encriptar segredos sem precisar de um KMS (serviço de gestão de chaves) externo ou outras dependências, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.

Se vai criar o cluster com enableAdvancedCluster definido como true (o que é necessário para configurar domínios de topologia), remova esta secção. Esta funcionalidade não é suportada com clusters avançados.

secretsEncryption.mode

Obrigatório para a encriptação de segredos
Imutável
String
Valor possível: "GeneratedKey"
Pré-preenchido: "GeneratedKey"

O modo de encriptação secreto.

secretsEncryption:
  mode: "GeneratedKey"

secretsEncryption.generatedKey.keyVersion

Obrigatório para a encriptação de Secrets
Mutável
Número inteiro
Pré-preenchido: 1

Um número inteiro à sua escolha para usar como número da versão da chave. Recomendamos que comece com 1.

Para ver informações sobre como atualizar este campo para um cluster existente, consulte o artigo Encriptação de segredos sempre ativos.

Exemplo:

secretsEncryption:
  generatedKey:
    keyVersion: 1

secretsEncryption.generatedKey.disabled

Mutável
Booleano
Pré-preenchido: falso

Defina este valor como true para desativar a encriptação de segredos. Caso contrário, defina-o como false.

Para ver informações sobre como atualizar este campo para um cluster existente, consulte o artigo Encriptação de segredos sempre ativos.

Exemplo:

secretsEncryption:
  generatedKey:
    disabled: false