Ficheiro de configuração do cluster de utilizadores 1.28

Esta página descreve os campos no ficheiro de configuração do cluster de utilizadores do Google Distributed Cloud.

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 pretendida. Por exemplo: gkectl create-config cluster --gke-on-prem-version=1.10.0-gke.8.

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 e não for indicado nenhum valor predefinido, o campo é 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.

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.14.0-gke.1"

preparedSecrets.namespace

Se quiser usar credenciais preparadas, preencha este campo. Caso contrário, remova este campo ou deixe-o comentado.

Opcional
Imutável
String
Valores possíveis: uma string que começa por "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

Imutável
Booleano
Preenchido previamente: 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 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

Opcional
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

Opcional
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

Opcional
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

Opcional
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 armazenamento 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

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

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

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

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

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

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

Obrigatório se tiver fornecido um valor para preparedSecrets.namespace
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

Opcional
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

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

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

Opcional
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

Obrigatório para o registo privado
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

Obrigatório para o registo privado
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

Obrigatório para o registo privado
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

Obrigatório se quiser usar o segredo preparado para o registo privado
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 o 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

Obrigatório para o registo privado
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

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 equilibrador 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:

  • network.ipMode.type está definido como static
  • enableControlplaneV2 está definido como true ou tem autorização para usar true por predefinição.
  • loadBalancer.kind está definido como "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

Opcional
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

Obrigatório
Imutável
String
Pré-preenchido: "dhcp"
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".

Exemplo:

network:
  ipMode:
    type: "static"

network.ipMode.ipBlockFilePath

Obrigatório se network.ipMode.type = static
Imutável
String

O caminho do ficheiro de bloqueio de IP para o seu cluster.

Exemplo:

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

network.serviceCIDR

Obrigatório
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

Obrigatório
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

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 definir enableControlplaneV2 como true, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.

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
Imutável
Matriz de objetos, cada um dos quais tem um endereço IP e um nome do anfitrião opcional.

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

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

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

Para ativar funcionalidades novas e avançadas, recomendamos que use "ManualLB" se tiver um balanceador de carga de terceiros (como o F5 BIG-IP ou o Citrix) ou "MetalLB" para a nossa solução integrada.

Exemplo:

loadBalancer:
  kind: "MetalLB"

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
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. Tem de escolher um valor nodePort para o HTTP ServicePort.

Defina este campo para o valor nodePort.

Exemplo:

loadBalancer:
  manualLB:
    ingressHTTPNodePort: 32527

loadBalancer.manualLB.ingressHTTPSNodePort

Obrigatório se loadBalancer.kind = ManualLB
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. Tem de escolher um valor para o HTTPS ServicePort.nodePort

Defina este campo para o valor nodePort. 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

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.

loadBalancer.f5BigIP.address

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

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

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 do F5 BIG-IP.

Exemplo:

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

loadBalancer.f5BigIP.partition

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

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

Exemplo:

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

loadBalancer.f5BigIP.snatPoolName

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

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

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

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

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

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

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 é 2^20 = 1.048.576 bytes. Um megabyte equivale a 10^6 = 1 000 000 bytes.

loadBalancer.seesaw.vCenter.networkName

Opcional
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

Opcional
Imutável
Relevante se loadBalancer.kind = Seesaw
Booleano
Pré-preenchido: 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

loadBalancer.seesaw.disableVRRPMAC

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

Se definir esta opção como true, o equilibrador 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. Recomendamos que defina esta opção como true. 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"
Mutable

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.

loadBalancer.metalLB.addressPools[i].name

Obrigatório se loadBalancer.kind = MetalLB
Mutável
String

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

Exemplo:

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

Obrigatório se loadBalancer.kind = MetalLB
Mutável

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.

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

Opcional
Relevante se loadBalancer.kind = MetalLB
Mutável
Booleano
Pré-preenchido: false
Predefinição: 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

Opcional
Relevante se loadBalancer.kind = MetalLB
Mutável
Booleano
Pré-preenchido: false
Predefinição: 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

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 a resolução de problemas do plano de dados V2 para ver os passos de resolução de problemas.

dataplaneV2.forwardMode

Opcional
Imutá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"

Nota: a atualização deste campo pode originar um problema conhecido, dependendo das versões do cluster. Aplique a solução descrita se a versão do seu cluster for afetada.

multipleNetworkInterfaces

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

Se quiser ativar várias interfaces de rede para os pods, defina esta opção como true. Caso contrário, defina este valor como false.

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

Exemplo:

multipleNetworkInterfaces: true

advancedNetworking

Opcional
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.

Opcional
Booleano
Mutável
Preenchido previamente: false
Predefinição: false

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.

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

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.cpus

Opcional
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

Opcional
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

Opcional
Imutável
Número inteiro
Valores possíveis: 1 ou 3
Pré-preenchido: 1
Predefiniçã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.

Exemplo:

masterNode:
  replicas: 3

masterNode.autoResize.enabled

Opcional
Mutável
Booleano
Preenchido previamente: false
Predefinição: false

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.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.

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.

Opcional
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

Opcional
Mutável
Número inteiro
Pré-preenchido: 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

Opcional
Mutável
String
Valores possíveis: "ubuntu_containerd", "cos", "ubuntu_cgv2", "cos_cgv2", "windows"
Pré-preenchido: "ubuntu_containerd"
Predefinição: "ubuntu_containerd"

O tipo de imagem do SO a executar nas VMs no conjunto de nós.

Se especificar ubuntu_cgv2 ou cos_cgv2, tem de executar gkectl prepare --extra-os-image-types=cgroupv2 antes de criar/atualizar o cluster.

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

Opcional
Mutável
Mapeamento

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

Opcional
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.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.

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

A matriz só pode ter um elemento.

Exemplo:

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

nodePools[i].vsphere.tags

Opcional
Mutável
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

Opcional
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

Opcional
Mutável
Número inteiro
Valores possíveis: igual ou superior 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

Opcional
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

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

Defina esta opção como true se quiser permitir que o altifalante do MetalLB seja executado nos nós do 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
Opcional
Mutável
Número 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

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 da licença do 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 seja possível agendar VMs do vSphere, defina antiAffinityGroups.enabled como false.

Exemplo:

antiAffinityGroups:
  enabled: false

enableVMTracking

Preview
Opcional
Imutável
Prepopulated: 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

Opcional
Mutável
Número inteiro
Valores possíveis: 0 ou 1
Pré-preenchido: 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.

Exemplo:

nodePoolUpdatePolicy:
  maximumConcurrentNodePoolUpdate: 1

nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge

Pré-visualização
Opcional
Mutável
Número 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

Opcional

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

Opcional
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

Opcional
Imutável
String
Predefinição: global

A associação de cada cluster à frota é 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 região na qual os serviços Fleet e Connect são executados. Google CloudSe não for especificado, são usadas as instâncias globais dos serviços. Tenha em conta o seguinte:

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

Obrigatório se usar credenciais preparadas
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

Opcional

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

Obrigatório se a secção gkeOnPremAPI estiver incluída.
Mutável
Booleano
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

Obrigatório se a secção gkeOnPremAPI estiver incluída.
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

Exigido por predefinição
Mutável

Se quiser ativar o Cloud Logging e o Cloud Monitoring para o seu cluster, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.

Esta secção é obrigatória por predefinição. Ou seja, se não incluir esta secção, tem de incluir a flag --skip-validation-stackdriver quando executar gkectl create cluster.

Esta secção é necessária se quiser gerir o ciclo de vida do cluster de utilizadores através de clientes da API GKE On-Prem.

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

Opcional
Imutável
Booleano
Pré-preenchido: false

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

Obrigatório se usar credenciais preparadas
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

Opcional
Mutável
Booleano
Preenchido previamente: false
Predefinição: false

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

Pré-visualização
Imutável
Opcional

Se quiser ativar a medição da utilização para o seu cluster, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.

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

Obrigatório se usar credenciais preparadas
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.

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

Opcional
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.

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

Opcional para encriptação de segredos
Mutável
Booleano
Preenchido previamente: 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