Arquivo de configuração do cluster de usuário 1.29

Nesta página, descrevemos os campos no arquivo de configuração de cluster de usuário do Google Distributed Cloud.

Como gerar um modelo para o arquivo de configuração

Se você usou o gkeadm para criar a estação de trabalho do administrador, o gkeadm gerou um modelo para o arquivo de configuração do cluster de usuário. E o gkeadm também preencheu alguns dos campos para você.

Se você não usou o gkeadm para criar a estação de trabalho do administrador, use o gkectl para gerar um modelo para o arquivo de configuração do cluster de usuário.

Para gerar um modelo para o arquivo de configuração do cluster de usuário:

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

Substitua:

OUTPUT_FILENAME: um caminho de sua escolha para o modelo gerado. Se você omitir essa sinalização, gkectl nomeará o arquivo user-cluster.yaml e o colocará 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

Como preencher o arquivo de configuração

No arquivo de configuração, insira os valores de campo conforme descrito nas seções a seguir.

name

Obrigatório
String

Um nome de sua escolha para o cluster de usuário. O nome precisa:

  • conter no máximo 40 caracteres
  • conter apenas caracteres alfanuméricos minúsculos ou um hífen (-)
  • começam com um caractere alfabético
  • terminar com um caractere alfanumérico.

Exemplo:

name: "my-user-cluster"

gkeOnPremVersion

Obrigatório
Mutável
String

A versão do Google Distributed Cloud para seu cluster de usuário.

Exemplo:

gkeOnPremVersion: "1.14.0-gke.1"

preparedSecrets.namespace

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

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

O nome de um namespace do Kubernetes no cluster de administrador onde os Secrets preparados serão mantidos para esse cluster de usuário.

Exemplo:

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

enableControlplaneV2

Opcional
Imutável
Booleano
Pré-preenchido: verdadeiro
Padrão: verdadeiro

Se você quiser criar um cluster de usuário com o Controlplane V2 ativado, defina como true. Caso contrário, defina como false. Com o Controlplane V2, o plano de controle de um cluster de usuário é executado em um ou mais nós no próprio cluster de usuário. Recomendamos que você ative o plano de controle V2. Os benefícios do Controlplane V2 incluem:

  • Consistência da arquitetura entre os clusters de administrador e de usuário

  • Isolamento de falhas. Uma falha no cluster de administrador não afeta os clusters de usuário.

  • Separação operacional. Um upgrade de cluster de administrador não causa inatividade dos clusters de usuário.

  • Separação de implantação. É possível colocar os clusters de administrador e de usuário em diferentes domínios de falha ou locais geográficos. Por exemplo, um cluster de usuário em um local de borda pode estar em um local geográfico diferente do cluster de administrador.

Exemplo:

enableControlplaneV2: true

vCenter

Nesta seção, você encontra informações sobre o ambiente vSphere e a conexão com o servidor vCenter.

Se você quiser que um campo dessa seção seja igual ao especificado para o cluster de administrador, remova o campo ou deixe-o comentado.

Se você quiser que um campo seja diferente do especificado para o cluster de administrador, preencha-o aqui. Todos os campos preenchidos na seção vCenter modificam os campos correspondentes no arquivo de configuração do cluster de administrador.

vCenter.address

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

O endereço IP ou o nome do host da instância do vCenter Server que você quer usar no cluster de usuário.

Para mais informações, consulte Como encontrar seu endereço de servidor vCenter.

Se você especificar um valor diferente da instância do vCenter Server usada pelo cluster de administrador, Controlplane V2 precisará estar ativado, e você precisa fornecer valores para network.vCenter.networkName e todos os campos obrigatórios na seção vCenter.

Por exemplo:

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

vCenter.datacenter

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

O caminho relativo de um data center do vSphere.

Se você especificar um valor para esse campo, também deverá especificar:

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

O valor especificado é relativo à pasta-raiz chamada /.

Se o data center estiver na pasta-raiz, o valor será o nome do data center.

Exemplo:

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

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

Exemplo:

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

vCenter.cluster

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

O caminho relativo de um cluster do vSphere que representa os hosts ESXi em que as VMs do cluster de usuário serão executadas. Esse cluster do vSphere representa um subconjunto dos hosts físicos ESXi no seu data center do vCenter.

Se você especificar um valor para esse campo, também deverá especificar:

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

O valor especificado é 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 com o nome do cluster do vSphere.

Exemplo:

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

vCenter.resourcePool

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

Um pool de recursos do vCenter para as VMs do cluster de usuário.

Se você quiser usar o pool de recursos padrão, defina como VSPHERE_CLUSTER/Resources.

Exemplo:

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

O valor especificado é relativo a /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/

Se o pool de recursos for um filho direto de /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/, o valor será o nome do pool de recursos.

Exemplo:

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

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

Exemplo:

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

vCenter.datastore

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

O nome de um repositório de dados do vSphere para o cluster de usuário.

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

Exemplo:

vCenter:
  datastore: "my-uc-datastore"

Se você especificar um valor para esse campo, não especifique um valor para vCenter.storagePolicyName.

vCenter.storagePolicyName

Opcional
String

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

Também é possível especificar uma política de armazenamento de VM para os nós em um pool de nós específico. No entanto, a política especificada aqui se aplica a qualquer pool de nós que não tenha a própria política.

Para mais informações, consulte Configurar uma política de armazenamento.

Se você especificar um valor para esse campo, não especifique um valor para vCenter.datastore.

vCenter.caCertPath

Opcional
Mutável
String
Padrão: herdar do cluster de administrador

O caminho do certificado de CA para o servidor vCenter. Para mais informações, consulte Como receber o certificado de CA do vCenter.

Exemplo:

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

Para informações sobre como atualizar esse campo, consulte Atualizar referências de certificado do vCenter (em inglês).

vCenter.credentials.fileRef.path

Opcional
Mutável
String
Padrão: herdar do cluster de administrador

Se você fornecer um valor para preparedSecrets.namespace, não forneça um valor para esse campo. Em vez disso, forneça um valor para vCenter.credentials.secretRef.version.

O caminho de um arquivo de configuração de credenciais que contém o nome de usuário e a senha da sua conta de usuário do vCenter. A conta de usuário precisa ter o papel de administrador ou privilégios equivalentes. Consulte os requisitos do vSphere.

Use gkectl update credentials para atualizar esse campo em um cluster existente. Para mais informações, consulte Como alternar chaves de conta de serviço.

Para informações sobre como atualizar as credenciais do vCenter, consulte Como atualizar credenciais do cluster.

Exemplo:

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

vCenter.credentials.fileRef.entry

Opcional
Mutável
String
Padrão: herdar do cluster de administrador

O nome do bloco de credenciais, no arquivo de configuração de credenciais, que contém o nome de usuário e a senha da conta de usuário do vCenter.

Exemplo:

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

vCenter.credentials.secretRef.version

Obrigatório se você tiver fornecido um valor para preparedSecrets.namespace
String
Valores possíveis: uma string inteira ou "mais recente"
Valor padrão: "mais recente"

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

A versão de um Secret preparado no cluster de administrador que contém o nome de usuário e a senha da instância do VCenter Server que você pretende usar no cluster de usuário.

Exemplo:

vCenter:
  credentials:
    secretRef:
      version: "1"

vCenter.folder

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

O caminho relativo de uma pasta do vSphere que você já criou. Essa pasta contém as VMs do cluster de usuário.

Se você não especificar um valor, as VMs do cluster de usuário serão colocadas em /.../DATA_CENTER/vm/.

Se você especificar um valor, ele será relativo a /.../DATA_CENTER/vm/.

O valor pode ser o nome de uma pasta.

Exemplo:

vCenter:
  folder: "my-uc-folder"

Ou o valor pode ser um caminho relativo que inclui mais de uma pasta.

Exemplo:

vCenter:
  folder: "folders/folder-2"

componentAccessServiceAccountKeyPath

Opcional
Mutável
String
Padrão: herdar do cluster de administrador

O caminho do arquivo de chave JSON para 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 inteira ou "mais recente"
Valor padrão: "mais recente"

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

Exemplo:

componentAccessServiceAccountKey:
  secretRef:
    version: "1"

privateRegistry

Preencha esta seção apenas se o cluster de administrador estiver usando um registro particular e você quiser que o cluster de usuário use um registro particular diferente. Caso contrário, remova a seção ou deixe-a comentada.

Se você quiser algumas configurações do cluster de administrador, faça o seguinte:

  • Nome de usuário, senha, certificado diferente

  • (Somente disponível para o Plano de controle V2) Endereço de registro privado diferente

Preencha os campos privateRegistry aqui. As novas configurações são selecionadas durante a criação e atualização do cluster.

privateRegistry.address

Obrigatório para registro particular
Imutável
String
Padrão: herdar do cluster de administrador

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

Por exemplo:

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

privateRegistry.credentials.fileRef.path

Obrigatório para registro particular
Mutável
String
Padrão: herdar do cluster de administrador

Se você planeja usar o secret preparado para o registro particular, não forneça um valor para esse campo. Em vez disso, forneça um valor para privateRegistry.credentials.secretRef.version.

O caminho de um arquivo de configuração de credenciais que contém o nome de usuário e a senha de uma conta que o Google Distributed Cloud pode usar para acessar seu registro particular do Docker.

Exemplo:

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

privateRegistry.credentials.fileRef.entry

Obrigatório para registro particular
Mutável
String
Padrão: herdar do cluster de administrador

O nome do bloco de credenciais, no arquivo de configuração de credenciais, que contém o nome de usuário e a senha da conta de registro particular do Docker.

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

privateRegistry.credentials.secretRef.version

Obrigatório se você quiser usar o secret preparado para o registro particular
String
Valores possíveis: uma string de número inteiro ou "mais recente"
Valor padrão: "mais recente"

Se você fornecer um valor para preparedSecrets.namespace e quiser usar um secret preparado para um registro particular, preencha este campo. Caso contrário, remova este campo ou deixe-o comentado.

A versão de um Secret preparado no cluster de administrador que contém o nome de usuário e a senha da instância do VCenter Server que você pretende usar no cluster de usuário.

Exemplo:

privateRegistry:
  credentials:
    secretRef:
      version: "1"

privateRegistry.caCertPath

Obrigatório para registro particular
Mutável
String
Padrão: herdar do cluster de administrador

Quando o Docker extrai uma imagem do seu registro particular, o registro precisa comprovar a própria identidade apresentando um certificado. O certificado do registro é assinado por uma autoridade de certificação (CA). O Docker usa o certificado da CA para validar o certificado do registro.

Defina este campo como o caminho do certificado da CA.

Exemplo:

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

network

Esta seção contém informações sobre a rede do cluster de usuário.

network.hostConfig

Esta seção contém informações sobre servidores NTP, servidores DNS e domínios de pesquisa DNS usados pelas VMs que são os nós do cluster. Se você estiver usando o balanceador de carga do Seesaw, essas informações também se aplicarão às VMs do Seesaw.

Esta seção será necessária se uma ou mais das seguintes condições forem verdadeiras:

  • network.ipMode.type é definida como static;
  • enableControlplaneV2 está definido como true ou tem o padrão true.
  • loadBalancer.kind é definida 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 horário a serem usados pelas VMs.

Exemplo:

network:
  hostConfig:
    ntpServers:
    - "216.239.35.0"

network.hostConfig.searchDomainsForDNS

Opcional
Imutável
Matriz de strings

Domínios de pesquisa DNS a serem usados pelos hosts. Esses domínios são usados como parte de uma lista de pesquisa de domínio.

Exemplo:

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

network.ipMode.type

Obrigatório
Imutável
String
Pré-preenchido: "static"
Padrão: "dhcp"

Se você quiser que os nós do cluster recebam o endereço IP de um servidor DHCP, defina-o como "dhcp". Se quiser que os nós do cluster tenham endereços IP estáticos escolhidos em uma lista fornecida, defina-o como "static".

Exemplo:

network:
  ipMode:
    type: "static"

network.ipMode.ipBlockFilePath

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

O caminho do arquivo de bloco IP do 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 serem usados para serviços no cluster. Precisa ser pelo menos o intervalo /24.

Exemplo:

network:
  serviceCIDR: "10.96.0.0/20"

network.podCIDR

Obrigatório
Imutável
String
Pré-preenchido: "192.168.0.0/16"
Padrão: "192.168.0.0/16"

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

Exemplo:

network:
  podCIDR: "192.168.0.0/16"

O intervalo de serviços não pode se sobrepor ao intervalo de pods.

Os intervalos de serviços e pods não podem se sobrepor a nenhum endereço fora do cluster que você queira acessar de dentro dele.

Por exemplo, suponha que seu intervalo de serviço seja 10.96.232.0/24 e seu intervalo de pod seja 192.168.0.0/16. Qualquer tráfego enviado de um pod para um endereço em qualquer um desses intervalos vai ser tratado como no cluster e não vai atingir nenhum destino fora dele.

Os intervalos de serviços e pods não podem se sobrepor a:

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

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

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

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

Recomendamos que os intervalos de serviços e pods estejam no espaço de endereço RFC 1918 (link em inglês).

Veja um motivo por que recomendamos usar endereços RFC 1918. Suponha que o intervalo de pods ou de serviços contenha endereços IP externos. Qualquer tráfego enviado de um pod para um desses endereços externos será tratado como tráfego no cluster e não chegará ao destino externo.

network.vCenter.networkName

Obrigatório se vCenter.address for diferente do endereço do vCenter que você está usando para o cluster de administrador.
Imutável
String

O nome da rede do vSphere dos nós do cluster de usuário.

Exemplo:

network:
  vCenter:
    networkName: "my-network"

Se o nome tiver um caractere especial, use uma sequência de escape.

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

Se o nome da rede não for exclusivo no data center, é possível especificar um caminho completo.

Exemplo:

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

network.additionalNodeInterfaces

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

Imutável

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

network.additionalNodeInterfaces[i].networkName

Obrigatório se multipleNetworkInterfaces = true
Imutável
String

O nome da rede do vSphere à qual essa interface de nó extra se conectará.

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 arquivo de bloco de IP que contém endereços IP a serem usados para essa interface de rede nos nós que têm essa interface de rede.

Exemplo:

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

network.controlPlaneIPBlock

Se você definir enableControlplaneV2 como true, preencha esta seção. Caso contrário, remova a seçã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

Visualização enableControlplaneV2 = true
Imutável
Array of objects, each of which has an IP Matriz de objetos, cada uma com um endereço IP e um nome do host opcional.

Para um cluster de usuário de alta disponibilidade (HA, na sigla em inglês), a matriz tem três elementos. Para um cluster de usuário que não seja de alta disponibilidade, 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 seção contém informações sobre o balanceador de carga do cluster de usuário.

loadBalancer.vips.controlPlaneVIP

Obrigatório
Imutável
String

O endereço IP que você escolheu configurar no balanceador de carga para o servidor da API Kubernetes do cluster de usuário.

Exemplo:

loadBalancer:
  vips:
    controlplaneVIP: "203.0.113.3"

loadBalancer.vips.ingressVIP

Obrigatório
Imutável
String

O endereço IP que você escolheu 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 como "ManualLB", "F5BigIP", "Seesaw" ou "MetalLB".

Para ativar recursos novos e avançados, recomendamos usar "ManualLB" se você tiver um balanceador de carga de terceiros (como F5 BIG-IP ou Citrix) ou "MetalLB" para nossa solução agrupada.

Exemplo:

loadBalancer:
  kind: "MetalLB"

loadBalancer.manualLB

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

loadBalancer.manualLB.ingressHTTPNodePort

Obrigatório se loadBalancer.kind = ManualLB
Imutável
Inteiro
Pré-preenchido: 30243

O proxy de entrada em um cluster de usuário é exposto por um serviço do Kubernetes do tipo LoadBalancer. O serviço tem um ServicePort para HTTP. É preciso escolher um valor nodePort para os ServicePorts HTTP.

Defina esse campo como o valor nodePort.

Exemplo:

loadBalancer:
  manualLB:
    ingressHTTPNodePort: 32527

loadBalancer.manualLB.ingressHTTPSNodePort

Obrigatório se loadBalancer.kind = ManualLB
Imutável
Inteiro
Pré-preenchido: 30879

O proxy de entrada em um cluster de usuário é exposto por um serviço do tipo LoadBalancer. O serviço tem um ServicePort para HTTPS. Escolha um valor nodePort para o ServicePort HTTPS.

Defina esse campo como o valor nodePort. Exemplo:

loadBalancer:
  manualLB:
    ingressHTTPSNodePort: 30139

loadBalancer.manualLB.controlPlaneNodePort

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

O servidor da API Kubernetes de um cluster de usuário é executado no cluster de administrador e é exposto por um Serviço do tipo LoadBalancer. É preciso escolher um valor nodePort para o serviço.

Defina esse campo como o valor nodePort.

Exemplo:

loadBalancer:
  manualLB:
    controlPlaneNodePort: 30968

loadBalancer.manualLB.konnectivityServerNodePort

Obrigatório se loadBalancer.kind = ManualLB e enableControlplaneV2 = false
Imutável
Inteiro
Pré-preenchido: 30563

O servidor da API Kubernetes de um cluster de usuário que usa o kubeception é executado no cluster de administrador e é exposto por um serviço do tipo LoadBalancer. O servidor Konnectivity reutiliza esse serviço com um valor nodePort diferente. Escolha um valor nodePort para o servidor Konnectivity.

Defina esse campo como o valor nodePort do servidor Konnectivity.

Exemplo:

loadBalancer:
  manualLB:
    konnectivityServerNodePort: 30969

loadBalancer.f5BigIP

Se você definir loadbalancer.kind como "f5BigIP", preencha esta seção. Caso contrário, remova a seção ou deixe-a comentada.

Para ativar recursos novos e avançados, recomendamos que você configure o balanceamento de carga manual para o balanceador de carga F5 BIG-IP. Para ativar o balanceamento de carga manual, defina loadbalancer.kind como "ManualLB" e preencha a seção loadBalancer.manualLB. Para mais informações, consulte Como ativar o modo de balanceamento de carga manual.

loadBalancer.f5BigIP.address

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

O endereço do balanceador 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 arquivo de credenciais que contém o nome de usuário e a senha de uma conta que o Google Distributed Cloud pode usar para se conectar ao balanceador de carga F5 BIG-IP.

A conta de usuário precisa ter um papel de usuário com permissões suficientes para configurar e gerenciar o balanceador de carga. O papel "Administrador" ou "Administrador de recursos" é suficiente.

Para informações sobre como atualizar suas credenciais F5 BIG-IP, consulte Como 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 arquivo de configuração de credenciais, que contém o nome de usuário e a senha da conta 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 BIG-IP que você criou para o cluster de usuário.

Exemplo:

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

loadBalancer.f5BigIP.snatPoolName

Obrigatório se loadBalancer.kind = "f5BigIP" e você estiver usando o SNAT
String

O nome do seu pool de SNAT.

Exemplo:

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

loadBalancer.seesaw

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

Observe as seguintes limitações com o balanceador de carga SeeSaw:

Para usar esses recursos, recomendamos que você configure o balanceador de carga do MetalLB. Para ativar o balanceador de carga do MetalLB, defina loadbalancer.kind como "MetalLB" e preencha a seção loadBalancer.metalLB. Para mais informações, consulte Balanceamento de carga em pacote com o MetalLB.

Se você estiver usando o balanceador de carga SeeSaw, recomendamos migrar para o MetalLB.

loadBalancer.seesaw.ipBlockFilePath

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

O caminho do arquivo de bloco IP para as VMs do Seesaw.

Exemplo:

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

loadBalancer.seesaw.vrid

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

O identificador do roteador virtual da VM do Seesaw. Esse identificador, que é um número inteiro de sua escolha, precisa ser exclusivo em uma 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 do Master Seesaw.

Exemplo:

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

loadBalancer.seesaw.cpus

Obrigatório se loadBalancer.kind = Seesaw
Mutável
Inteiro
Pré-preenchido: 4

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

Exemplo:

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

Obrigatório se loadBalancer.kind = Seesaw
Mutável
Inteiro
Pré-preenchido: 3072

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

Exemplo:

loadBalancer:
  seesaw:
    memoryMB: 8192

Observação: esse campo especifica o número de mebibytes de memória, não o número de megabytes. Um mebibyte é 2^20 = 1.048.576 bytes. Um megabyte é 10^6 = 1.000.000 bytes.

loadBalancer.seesaw.vCenter.networkName

Opcional
Imutável
String
Padrão: igual aos nós do cluster

O nome da rede vCenter que contém as 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: falso
Padrão: falso

Se você quiser criar um balanceador de carga Seesaw de alta disponibilidade (HA, na sigla em inglês), defina como true. Caso contrário, defina como false. Um balanceador de carga Seesaw de alta disponibilidade usa um par(mestre, backup) de VMs.

Exemplo:

loadBalancer:
  seesaw:
    enableHA: true

loadBalancer.seesaw.disableVRRPMAC

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

Se você definir isso como true, o balanceador de carga de Seeaw não usará o aprendizado MAC para failover. Em vez disso, ele usa ARP gratuito. Se você definir isso como false, o balanceador de carga da Seesaw usará o aprendizado MAC. Recomendamos que você defina isso como true. Se você estiver usando o vSphere 7.0 ou uma versão posterior e tiver um balanceador de carga de alta disponibilidade da Seesaw, configure-o como true.

Exemplo:

loadBalancer:
  seesaw:
    disableVRRPMAC: true

loadBalancer.metalLB

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

Para mais informações, consulte Balanceamento de carga em pacote com o MetalLB.

loadBalancer.metalLB.addressPools

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

Matriz de objetos, cada uma contendo informações sobre um pool de endereços a ser usado pelo balanceador de carga do MetalLB.

loadBalancer.metalLB.addressPools[i].name

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

Um nome de sua escolha para o pool de nós.

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 sendo um intervalo de endereços. Cada intervalo precisa estar no formato CIDR ou de hifens.

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: falso
Padrão: falso

Se você definir isso como true, o controlador MetalLB não atribuirá endereços IP que terminam em .0 ou .255 aos Serviços. Isso evita o problema de dispositivos com bug de consumo que descartam 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: falso
Padrão: falso

Se você não quiser que o controlador do MetalLB atribua automaticamente endereços IP deste pool aos Serviços, defina-o como true. Em seguida, um desenvolvedor pode criar um serviço do tipo LoadBalancer e especificar manualmente um dos endereços do pool.

Caso contrário, defina como false.

Exemplo:

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

enableDataplaneV2

Opcional
Imutável
Booleano
Pré-preenchido: falso
Padrão: falso

Se você quiser ativar o Dataplane V2 ou usar o Controlplane V2, defina como true. Caso contrário, defina como false. Recomendamos que você ative o Dataplane V2.

Exemplo:

enableDataplaneV2: true

Consulte Solução de problemas do Dataplane V2 para ver as etapas de solução de problemas.

dataplaneV2.forwardMode

Opcional
Imutável
String
Valores possíveis: "snat", "dsr"
Preenchido automaticamente: "snat"
Padrão: "snat"

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

Com o modo de conversão de endereços de rede de origem (SNAT, na sigla em inglês), um pacote é convertido por SNAT quando é encaminhado de um nó do balanceador de carga para um pod de back-end. O pod não consegue acessar o endereço IP de origem original e o pacote de retorno precisa passar pelo nó do balanceador de carga.

Com o modo de retorno direto do servidor (DSR, na sigla em inglês), um pacote retém o endereço IP de origem original quando é encaminhado de um nó do balanceador de carga para um pod de back-end. O pod pode acessar 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

Opcional
Imutável
Booleano
Pré-preenchido: falso
Padrão: falso

Se quiser ativar várias interfaces de rede para pods, defina-o como true. Caso contrário, defina como false.

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

Exemplo:

multipleNetworkInterfaces: true

advancedNetworking

Opcional
Imutável
Booleano
Pré-preenchido: falso
Padrão: falso

Se você planeja criar um gateway NAT de saída, defina-o como true. Caso contrário, defina como false.

Se você definir esse campo como true, defina também enableDataplaneV2 como true.

Exemplo:

advancedNetworking: true

disableBundledIngress

Defina como true se você quiser desativar a entrada em pacote para o cluster. Caso contrário, defina como false.

Opcional
Booleano
Mutável
Preenchido automaticamente: false
Padrão: false

Exemplo:

disableBundledIngress: true

storage.vSphereCSIDisabled

Se você quiser desativar a implantação de componentes do CSI do vSphere, defina como true. Caso contrário, defina como false.

Opcional
Mutável
Booleano
Pré-preenchido: falso
Padrão: falso

Exemplo:

storage:
  vSphereCSIDisabled: false

masterNode

Esta seção contém informações sobre os nós que servem como nós do plano de controle para este cluster de usuário.

masterNode.cpus

Opcional
Mutável
Inteiro
Pré-preenchido: 4
Padrão: 4

O número de CPUs de cada nó que serve como plano de controle para o cluster de usuário.

Exemplo:

masterNode:
  cpus: 8

masterNode.memoryMB

Opcional
Mutável
Inteiro
Pré-preenchido: 8192
Padrão: 8192

Os mebibytes de memória para cada nó que serve como plano de controle para o cluster de usuário. Precisa ser um múltiplo de 4.

Exemplo:

masterNode:
  memoryMB: 8192

Observação: esse campo especifica o número de mebibytes de memória, 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
Inteiro
Valores possíveis: 1 ou 3
Pré-preenchido: 1
Padrão: 1

O número de nós do plano de controle para este cluster de usuário. Esse número não poderá ser alterado depois que o cluster for criado. Se você quiser atualizar o número de réplicas posteriormente, recrie o cluster de usuário.

Exemplo:

masterNode:
  replicas: 3

masterNode.autoResize.enabled

Opcional
Mutável
Booleano
Pré-preenchido: falso
Padrão: falso

Defina como true para ativar o redimensionamento automático dos nós do plano de controle para o cluster de usuários. Caso contrário, defina como false.

Para mais informações, consulte Ativar o redimensionamento de nós para os nós do plano de controle de um cluster de usuário.

Exemplo:

masterNode:
  autoResize:
    enabled: true

masterNode.vsphere.datastore

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

O armazenamento de dados em que os nós do plano de controle para o cluster de usuário serão criados.

Exemplo:

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

Se você especificar um valor para esse campo, não especifique um valor para masterNode.vsphere.storagePolicyName.

masterNode.vsphere.storagePolicyName

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

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

Para mais informações, consulte Configurar uma política de armazenamento.

Exemplo:

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

Se você especificar um valor para esse campo, não especifique um valor para masterNode.vsphere.datastore.

nodePools

Obrigatório
Mutável
Matriz de objetos, cada um descrevendo um pool de nós.

Para mais informações, consulte Como criar e gerenciar pools de nós.

nodePools[i].name

Obrigatório
Imutável
String

Um nome de sua escolha para o pool de nós. O nome precisa:

  • conter no máximo 40 caracteres
  • conter apenas caracteres alfanuméricos minúsculos ou um hífen (-)
  • começam com um caractere alfabético
  • terminar com um caractere alfanumérico.

Exemplo:

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

nodePools[i].gkeOnPremVersion

Ao fazer upgrade de um cluster de usuário, é possível especificar que os pools de nós selecionados permaneçam na versão anterior.

Se você quiser que esse pool de nós permaneça na versão anterior, defina como a versão anterior. Caso contrário, remova esse campo ou o defina como a string vazia. Para mais informações, consulte Fazer upgrade de pools de nós.

Opcional
Mutável
String
Padrão: o cluster gkeOnPremVersion

Exemplo:

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

nodePools[i].cpus

Obrigatório
Mutável
Inteiro
Pré-preenchido: 4

O número de CPUs de cada nó no pool.

Exemplo:

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

nodePools[i].memoryMB

Obrigatório
Mutável
Inteiro
Pré-preenchido: 8192

Os mebibytes de memória de cada nó no pool. Precisa ser um múltiplo de 4.

Exemplo:

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

Observação: esse campo especifica o número de mebibytes de memória, 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
Inteiro
Preenchido automaticamente: 3
Valores possíveis: o número total de nós sem taint em todos os pools do nós no cluster precisa ser pelo menos 3.

O número de nós no pool.

Exemplo:

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

nodePools[i].bootDiskSizeGB

Obrigatório
Mutável
Inteiro
Pré-preenchido: 40
Padrão: 40

O tamanho do disco de inicialização em gigabytes para cada nó do pool.

Exemplo:

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

nodePools[i].osImageType

Opcional
Mutable
String
Valores possíveis: "ubuntu_containerd", "cos", "ubuntu_cgv2", "cos_cgv2", "windows"
Pré-preenchido: "ubuntu_cgv2"
Padrão: "ubuntu_containerd"

O tipo de imagem do SO a ser executado nas VMs no pool de nós.

Se você especificar ubuntu_cgv2 ou cos_cgv2, execute 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 precisa ser baseado em um ISO do Windows Server 2019 que tenha a tag de idioma/região en-US.

Para mais informações, consulte Guia do usuário para pools de nós do Windows Server OS.

nodePools[i].labels

Opcional
Mutável
Mapeamento

Rótulos que serão aplicados a cada objeto de nó do Kubernetes no pool.

Exemplo:

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

Por motivos de segurança, o kubelet não pode aplicar rótulos a si mesmo em determinados namespaces.

Os namespaces de rótulo de nó reservados são : kubernetes.io, k8s.io, googleapis.com.

nodePools[i].taints

Opcional
Mutável
Matriz de objetos, cada uma descrevendo um taint do Kubernetes aplicado a cada nó no pool. Os taints são pares de chave-valor associados a um effect. Taints são usados com tolerâncias para a programação de pods. Especifique um dos seguintes para o effect: NoSchedule, PreferNoSchedule, NoExecute.

Exemplo:

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

nodePools[i].vsphere.datastore

Opcional
Mutável
String
Padrão: o valor de vCenter.datastore

O nome do armazenamento de dados do vCenter em que os nós serão criados.

Exemplo:

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

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

nodePools[i].vsphere.storagePolicyName

Opcional
Mutável
String
Padrão: o valor de vCenter.storagePolicyName

O nome de uma política de armazenamento de VM para os nós no pool.

Para mais informações, consulte Configurar uma política de armazenamento.

Exemplo:

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

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

nodePools[i].vsphere.hostgroups

Preencha esta seção se você quiser configurar o cluster para usar a afinidade de VM-host.

Opcional
Mutável
de strings mutáveis, cada uma sendo o nome de um grupo DRS do host.

A matriz pode ter apenas um elemento.

Exemplo:

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

nodePools[i].vsphere.tags

Opcional
Mutável
Matriz de objetos, cada um descrevendo uma tag do vSphere a ser colocada nas VMs no pool de nós.

Cada tag tem uma categoria e um nome.

Exemplo:

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

Se você quiser anexar tags a todas as VMs em um pool de nós, sua conta de usuário do vCenter precisa ter estes privilégios de inclusão de tag do vSphere:

  • "vSphere Tagging.Assign" ou "Unassign vSphere Tag"
  • "vSphere Tagging.Assign" ou "Unassign vSphere Tag" no objeto (vSphere 7)

nodePools[i].autoscaling

Opcional
Mutável

Se você quiser ativar o escalonamento automático do pool de nós, preencha esta seção. Caso contrário, remova a seção ou deixe-a comentada.

nodePools[i].autoscaling.minReplicas

Opcional
Mutável
Inteiro
Valores possíveis: maior ou igual a 1
Pré-preenchido: 0

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

Exemplo:

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

nodePools[i].autoscaling.maxReplicas

Opcional
Mutável
Inteiro
Pré-preenchido: 0

O número máximo de nós que o autoescalador pode definir para o pool.

Exemplo:

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

nodePools[i].enableLoadBalancer

Opcional
Relevante seloadBalancer.kind = "MetalLB"
Mutável
Booleano
Pré-preenchido: verdadeiro
Padrão: false

Defina como true se quiser permitir que o alto-falante MetalLB seja executado nos nós do pool. Caso contrário, defina como false.

Para mais informações, consulte Balanceamento de carga em pacote com o MetalLB.

Exemplo:

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

nodePools[i].updateStrategy.rollingUpdate.maxSurge

Prévia
Opcional
Mutável
Número inteiro
Padrão: 1

O número máximo de máquinas no pool de nós que podem ser atualizadas simultaneamente durante uma atualização ou upgrade.

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

antiAffinityGroups.enabled

Opcional
Mutável
Booleano
Pré-preenchido: verdadeiro

Defina como true para ativar a criação de regras do DRS. Caso contrário, defina-o como false.

Exemplo:

antiAffinityGroups:
  enabled: true

Se esse campo for true, o Google Distributed Cloud vai criar regras de antiafinidade do VMware Distributed Resource Scheduler (DRS) para os nós do cluster de usuário, fazendo com que eles sejam distribuídos por pelo menos três hosts ESXi físicos no seu data center.

Esse recurso exige que o ambiente vSphere atenda às seguintes condições:

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

  • Sua conta de usuário do vSphere tem o privilégio Host.Inventory.Modify cluster.

  • Há pelo menos quatro hosts ESXi disponíveis.

Mesmo que a regra exija que os nós de cluster sejam propagados por três hosts ESXi, recomendamos que pelo menos quatro hosts ESXi estejam disponíveis.

Lembre-se de que, se você tiver uma licença padrão do vSphere, não será possível ativar o VMware DRS.

Se o DRS não estiver ativado ou você não tiver pelo menos quatro hosts em que as VMs do vSphere possam ser programadas, defina antiAffinityGroups.enabled como false.

enableVMTracking

Visualização
Opcional
Imutável
Pré-preenchido: falso

Defina como true para ativar o rastreamento de VMs com tags do vSphere. Caso contrário, defina como false.

Para mais informações, consulte Ativar rastreamento de VM.

Exemplo:

enableVMTracking: true

nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate

Opcional
Inteiro
Valores possíveis: 0 ou 1 Pré-preenchido: 0

O número de pools de nós a ser atualizado por vez. Um valor de 1 especifica que um pool de nós pode ser atualizado por vez. Um valor de 0 especifica que um número ilimitado de pools de nós pode ser atualizado por vez.

Exemplo:

nodePoolUpdatePolicy:
  maximumConcurrentNodePoolUpdate: 1

nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge

Prévia
Opcional
Mutável
Número inteiro
Padrão: 1

O número máximo de máquinas em um pool de nós que podem ser atualizadas simultaneamente durante uma atualização ou upgrade. Aplica-se a qualquer pool de nós que não especifique a própria estratégia de atualização.

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

authentication

Esta seção contém informações sobre como os usuários do cluster são autenticados e autorizados.

authentication.oidc

Não use esta seção. Em vez disso, após a criação do cluster, edite o recurso personalizado do ClientConfig, conforme descrito em Como configurar clusters para o Anthos Identity Service com o OIDC .

authentication.sni

Opcional

Se você quiser fornecer um certificado de exibição extra para o servidor da API Kubernetes do cluster, preencha essa seção. Caso contrário, remova a seção ou deixe-a comentada.

authentication.sni.certPath

Opcional
String

O caminho para um certificado de exibição do servidor da API Kubernetes.

Exemplo:

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

authentication.sni.keyPath

Opcional
String

O caminho do arquivo de chave privada do certificado.

Exemplo:

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

gkeConnect

Obrigatório
Imutável

Esta seção contém informações sobre o projeto do Google Cloud e sobre a conta de serviço que você quer usar para registrar seu cluster em uma frota do Google Cloud.

gkeConnect.projectID

Obrigatório
Imutável
String

O ID do projeto host da frota. Para novos clusters, esse ID do projeto precisa ser igual ao ID definido em stackdriver.projectID e cloudAuditLogging.projectID. Se os IDs do projeto não forem iguais, a criação do cluster falhará. Esse requisito não se aplica a clusters que já existem.

Exemplo:

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

gkeConnect.location

Opcional
Imutável
String
Padrão: global

A associação de frota de cada cluster é gerenciada 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 mais recentes, é possível especificar a região do Google Cloud em que os serviços Fleet e Connect são executados. Se não for especificado, as instâncias globais dos serviços serão usadas. Observações:

  • Os clusters de usuário criados antes da versão 1.28 são gerenciados pelos serviços globais Fleet e Connect.

  • Novos clusters criados usando os clientes da API GKE On-Prem ( o console do Google Cloud, a Google Cloud CLI ou o Terraform) usam a mesma região especificada para a API GKE On-Prem.

  • Para novos clusters, se você incluir esse campo, a região especificada precisará ser a mesma configurada em cloudAuditLogging.clusterLocation, stackdriver.clusterLocation e gkeOnPremAPI.location. Se as regiões não forem iguais, a criação do cluster falhará.

Exemplo:

gkeConnect:
  location: "us-central1"

gkeConnect.registerServiceAccountKeyPath

Obrigatório
Mutável
String

O caminho do arquivo de chave JSON para a conta de serviço de registro de conexão.

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

Para informações sobre como alterar a chave da conta de serviço connect-register, consulte Como alternar chaves da conta de serviço.

Exemplo:

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

gkeConnect.registerServiceAccountKey.secretRef.version

Obrigatório se estiver usando credenciais preparadas
Mutável
String
Possíveis valores: Uma string de número inteiro ou "latest"
Valor padrão: "latest"

A versão de um Secret preparado no cluster de administrador que contém uma chave JSON para sua conta de serviço connect-register.

Exemplo:

gkeConnect:
  registerServiceAccountKey:
    secretRef:
      version: "1"

gkeOnPremAPI

Opcional

Na versão 1.16 e posterior, se a API GKE On-Prem estiver ativada no projeto do Google Cloud, todos os clusters no projeto serão registrados na API GKE On-Prem automaticamente na região configurada em stackdriver.clusterLocation.

  • Se você quiser registrar todos os clusters no projeto na API GKE On-Prem, siga as etapas em Antes de começar para ativar e usar a API GKE On-Prem no projeto.

  • Se você não quiser registrar o cluster na API GKE On-Prem, inclua esta seção e defina gkeOnPremAPI.enabled como false. Se você não quiser registrar clusters no projeto, desative gkeonprem.googleapis.com (o nome do serviço da API GKE On-Prem) no projeto. Para instruções, consulte Como desativar serviços.

Registrar seu cluster de usuário na API GKE On-Prem permite usar as ferramentas padrão, como o console do Google Cloud, a Google Cloud CLI e o Terraform, para gerenciar o ciclo de vida do cluster. Além disso, registrar o cluster permite usar o console ou a gcloud CLI para visualizar os detalhes dele. Por exemplo, é possível executar comandos gcloud para receber informações sobre o cluster de usuário.

Depois de adicionar esta seção e criar ou atualizar o cluster e, em seguida, remover a seção e atualizar o cluster, a atualização falhará.

gkeOnPremAPI.enabled

Obrigatório se a seção gkeOnPremAPI estiver inclusa.
Mutável
Booleano
Padrão: true

Por padrão, o cluster será registrado na API GKE On-Prem se ela estiver ativada no projeto. Defina como false se você não quiser registrar o cluster.

Depois que o cluster for registrado na API GKE On-Prem, se você precisar cancelar o registro do cluster, faça a seguinte alteração e atualize o cluster:

gkeOnPremAPI:
  enabled: false

gkeOnPremAPI.location

Obrigatório se a seção gkeOnPremAPI estiver inclusa.
Imutável
String
Padrão: stackdriver.clusterLocation

A região do Google Cloud em que a API GKE On-Prem é executada e armazena metadados de cluster. Escolha uma das regiões que oferecem suporte . É necessário 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 por padrão
Mutável

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

Esta seção é obrigatória por padrão. Ou seja, se você não incluir essa seção, precisa incluir a sinalização --skip-validation-stackdriver ao executar gkectl create cluster.

Esta seção será necessária no cluster de usuário se você quiser gerenciar o ciclo de vida dos clusters de usuário no console do Google Cloud.

stackdriver.projectID

Obrigatório para o Logging e o Monitoring
Imutável
String

O ID do projeto host da frota. Para novos clusters, esse ID do projeto precisa ser igual ao ID definido em gkeConnect.projectID e cloudAuditLogging.projectID. Se os IDs do projeto não forem iguais, a criação do cluster falhará. Esse requisito não se aplica a clusters que já existem.

Se necessário, configure um roteador de registros nesse projeto para rotear registros para buckets de registros em outro projeto. Para informações sobre como configurar o roteador de registros, consulte Destinos compatíveis.

Exemplo:

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

stackdriver.clusterLocation

Obrigatório para o Logging e o Monitoring
Imutável
String
Pré-preenchido: "us-central1"

A região do Google Cloud onde você quer armazenar os registros. Convém escolher uma região próxima ao data center local.

Para novos clusters, se você incluir as seções gkeOnPremAPI e cloudAuditLogging no arquivo de configuração, a região definida aqui precisará ser a mesma definida em gkeConnect.location, gkeOnPremAPI.location e cloudAuditLogging.clusterLocation. Se as regiões não forem iguais, a criação do cluster falhará.

Exemplo:

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

Opcional
Imutável
Booleano
Pré-preenchido: falso

Se a rede do cluster for controlada por uma VPC, defina esse campo como true. Isso garante que toda a telemetria flua pelos endereços IP restritos do Google. Caso contrário, defina como false.

Exemplo:

stackdriver:
  enableVPC: false

stackdriver.serviceAccountKeyPath

Obrigatório para Logging e Monitoring
Mutável
String

O caminho do arquivo de chave JSON da conta de serviço de monitoramento de registros.

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

Para mais informações sobre como alterar a chave da conta de serviço de monitoramento de registros, consulte Como alternar as chaves da conta de serviço.

Exemplo:

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

stackdriver.serviceAccountKey.secretRef.version

Obrigatório se estiver usando credenciais preparadas
Mutável
String
Possíveis valores: Uma string de número inteiro ou "latest"
Valor padrão: "latest"

A versão de um Secret preparado no cluster de administrador que contém uma chave JSON para sua conta de serviço de monitoramento de geração de registros.

Exemplo:

stackdriver:
  serviceAccountKey:
    secretRef:
      version: "1"

stackdriver.disableVsphereResourceMetrics

Opcional
Mutável
Booleano
Pré-preenchido: falso
Padrão: falso

Defina como true para desativar a coleta de métricas do vSphere. Caso contrário, defina como false.

Exemplo:

stackdriver:
  disableVsphereResourceMetrics: true

usageMetering

Visualização
Imutável
Opcional

Se você quiser ativar a medição de uso do cluster, preencha esta seção. Caso contrário, remova a seção ou deixe-a comentada.

usageMetering.bigQueryProjectID

Visualização
Obrigatório para medição de uso
Imutável
String

O ID do projeto do Google Cloud em que você quer armazenar os dados de medição de uso.

Exemplo:

usageMetering:
  bigQueryProjectID: "my-bq-project"

usageMetering.bigQueryDatasetID

Visualização
Obrigatório para medição de uso
Imutável
String

O ID do conjunto de dados do BigQuery em que você quer armazenar os dados de medição de uso. Exemplo:

usageMetering:
  bigQueryDatasetID: "my-bq-dataset"

usageMetering.bigQueryServiceAccountKeyPath

Visualização
Obrigatório para medição de uso
Imutável
String.

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

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

Para mais informações sobre como alterar a chave da conta de serviço do BigQuery, consulte Como alternar as chaves da conta de serviço.

Exemplo:

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

usageMetering.bigQueryServiceAccountKey.secretRef.version

Obrigatório se estiver usando credenciais preparadas
Mutável
String
Possíveis valores: Uma string de número inteiro ou "latest"
Valor padrão: "latest"

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

Exemplo:

gkeConnect:
  bigQueryServiceAccountKey:
    secretRef:
      version: "1"

usageMetering.enableConsumptionMetering

Visualização
Obrigatório para medição de uso
Imutável
Booleano
Pré-preenchido: falso

Defina como true se você quiser ativar a medição baseada em consumo. Caso contrário, defina-o como falso.

Exemplo:

usageMetering:
  enableConsumptionMetering: true

cloudAuditLogging

Se você quiser integrar os registros de auditoria do servidor da API Kubernetes do cluster com os registros de auditoria do Cloud, preencha essa seção. Caso contrário, remova a seção ou deixe-a comentada.

cloudAuditLogging.projectID

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

O ID do seu projeto host da frota. Para novos clusters, esse ID do projeto precisa ser igual ao ID definido em gkeConnect.projecID e stackdriver.projectID. Se os IDs do projeto não forem iguais, a criação do cluster falhará. Esse requisito não se aplica a clusters que já existem.

Se necessário, configure um roteador de registros nesse projeto para rotear registros para buckets de registros em outro projeto. Para informações sobre como configurar o roteador de registros, consulte Destinos compatíveis.

Exemplo:

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

cloudAuditLogging.clusterLocation

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

A região do Google Cloud em que você quer armazenar registros de auditoria. É uma boa ideia escolher uma região próxima ao data center no local.

Para novos clusters, se você incluir as seções gkeOnPremAPI e stackdriver no arquivo de configuração, a região definida aqui precisará ser a mesma definida em gkeConnect.location, gkeOnPremAPI.location e stackdriver.clusterLocation. Se as regiões não forem iguais, a criação do cluster falhará.

Exemplo:

cloudAuditLogging:
  clusterLocation: "us-central1"

cloudAuditLogging.serviceAccountKeyPath

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

O caminho do arquivo de chave JSON da conta de serviço de geração de registros de auditoria.

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

Para informações sobre como alterar a chave da conta de serviço de registro de auditoria, consulte Como alternar as chaves da conta 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 inteira ou "mais recente"
Valor padrão: "mais recente"

A versão de um Secret preparado no cluster de administrador que contém uma chave JSON para sua conta de serviço de registro de auditoria.

Exemplo:

cloudAuditLogging:
  serviceAccountKey:
    secretRef:
      version: "1"

autoRepair.enabled

Opcional
Mutável
Booleano
Pré-preenchido: verdadeiro

Defina como true para ativar o reparo automático de nós. Caso contrário, defina como false.

Exemplo:

autoRepair:
  enabled: true

secretsEncryption

Se você quiser criptografar secrets sem a necessidade de um KMS (serviço de gerenciamento de chaves) externo ou de qualquer outra dependência, preencha essa seção. Caso contrário, remova a seção ou deixe-a comentada.

secretsEncryption.mode

Obrigatório para criptografia de secrets
Imutável
String
Valor possível: "GeneratedKey"
Pré-preenchido: "GeneratedKey"

O modo de criptografia do Secret.

secretsEncryption:
  mode: "GeneratedKey"

secretsEncryption.generatedKey.keyVersion

Obrigatório para criptografia de Secrets
Mutável
Inteiro
Pré-preenchido: 1

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

Para informações sobre como atualizar esse campo de um cluster atual, consulte Criptografia de Secrets sempre ativada.

Exemplo:

secretsEncryption:
  generatedKey:
    keyVersion: 1

secretsEncryption.generatedKey.disabled

Opcional para criptografia de Secrets
Mutável
Booleano
Prenchido automaticamente: falso

Defina como true para desativar a criptografia de Secrets. Caso contrário, defina como false.

Para informações sobre como atualizar esse campo de um cluster atual, consulte Criptografia de Secrets sempre ativada.

Exemplo:

secretsEncryption:
  generatedKey:
    disabled: false