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

10

Nesta página, descrevemos os campos no arquivo de configuração do cluster de usuário dos clusters do Anthos no VMware (GKE On-Prem).

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

String obrigatória
imutável

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

String obrigatória
imutável

Os clusters do Anthos na versão VMware para seu cluster de usuário.

Exemplo:

gkeOnPremVersion: "1.10.0-gke.1"

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

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

O nome de um data center do vCenter que tenha os hosts físicos ESXi em que as VMs do cluster de usuário serão executadas.

Exemplo:

vCenter:
  datacenter: "my-datacenter-2"

Se especificado, você também precisa especificar vCenter.datastore e vCenter.networkName, além de especificar vCenter.cluster ou vCenter.resourcePool. Consulte Criar um cluster de usuários em um data center separado.

vCenter.cluster

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

O nome de um cluster do vSphere que tenha os hosts ESXi em que as VMs do cluster de usuário serão executadas. Esse cluster do vSphere é um conjunto de hosts ESXi físicos que formam um subconjunto de hosts ESXi físicos em seu data center vCenter.

Exemplo:

vCenter:
  cluster: "my-vsphere-cluster-2"

vCenter.resourcePool

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

O nome de um pool de recursos do vCenter das VMs do cluster de usuário.

Exemplo:

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

Para usar o pool de recursos padrão, defina como VSPHERE_CLUSTER/Resources.

Exemplo:

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

Para mais informações, consulte Como especificar o pool de recursos raiz para um host autônomo.

vCenter.datastore

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

O nome de um armazenamento de dados vCenter para as VMs do cluster de usuário.

Exemplo:

vCenter:
  datastore: "my-datastore-2"

vCenter.caCertPath

String mutável
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

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

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

String mutável
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.folder

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

O nome da pasta vCenter em que as VMs do cluster estarão localizadas.

Exemplo:

vCenter:
  folder: "my-folder-2"

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.

network.hostConfig.dnsServers

Matriz opcional
imutável de strings

Os endereços dos servidores DNS para as VMs.

Exemplo:

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

network.hostConfig.ntpServers

Matriz opcional
imutável 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

Matriz opcional
imutável 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
String imutável
Pré-preenchido: "dhcp"
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
String imutável
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
String imutável
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.

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

String obrigatória
imutável

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

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, será possível especificar um caminho para a rede, como /datacenter-2/network/my-network.

Exemplo:

network:
  vCenter:
    networkName: "my-user-cluster-network"

network.vCenter.additionalNodeInterfaces

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

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.vCenter.additionalNodeInterfaces[i].networkName

Obrigatório se multipleNetworkInterfaces = true
String imutável

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

Exemplo:

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

network.vCenter.additionalNodeInterfaces[i].type

Obrigatório se multipleNetworkInterfaces = true
String imutável

Exemplo:

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

network.vCenter.additionalNodeInterfaces[i].ipBlockFilePath

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

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:
  vCenter:
    additionalNodeInterfaces:
    - name: "my-node-interface-1"
      type: "static"
      ipBlockFilePath: "my-ipblock-file-1"

loadBalancer

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

loadBalancer.vips.controlPlaneVIP

String obrigatória
imutável

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

String obrigatória
imutável

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

String obrigatória
imutável

Defina como "ManualLB", "F5BigIP", "Seesaw" ou "MetalLB".

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
Número inteiro imutável

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 (em inglês) 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
Número inteiro imutável

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
Número inteiro imutável

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
Número inteiro imutável

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. O servidor do Konnectivity reutiliza esse serviço com um valor nodePort diferente. É preciso escolher um valor nodePort para o servidor Konnectivity.

Defina esse campo como o valor nodePort do servidor Konnectivity.

Exemplo:

loadBalancer:
  manualLB:
    konnectivityServerNodePort: 30969

loadBalancer.manualLB.addonsNodePort

Remova esse campo. Ele não é usado em um cluster de usuário.

loadBalancer.f5BigIP

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

loadBalancer.f5BigIP.address

Obrigatório se loadBalancer.kind = "f5BigIP"
String imutável

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

Exemplo:

loadBalancer:
  f5BigIP:
      address: "203.0.113.2"

loadBalancer.f5BigIP.fileRef.path

Obrigatório se loadBalancer.kind = "f5BigIP"
String mutável

O caminho de um arquivo de credenciais que contém o nome de usuário e a senha de uma conta que os clusters do Anthos no VMware podem 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:
    fileRef:
      path: ""my-config-folder/user-creds.yaml"

loadBalancer.f5BigIP.fileRef.entry

Obrigatório se loadBalancer.kind = "f5BigIP"
String imutável

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:
    fileRef:
      entry: "f5-creds"

loadBalancer.f5BigIP.partition

Obrigatório se loadBalancer.kind = "f5BigIP"
String imutável

O nome de uma partição BIG-IP que você criou para o cluster de administrador.

Exemplo:

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

loadBalancer.f5BigIP.snatPoolName

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

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.

Para informações sobre como configurar o balanceador de carga Seesaw, consulte Guia de início rápido do balanceador de carga Seesaw e Balanceamento de carga em pacote com o Seesaw.

loadBalancer.seesaw.ipBlockFilePath

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

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
Número inteiro imutável
Valores possíveis: 1 - 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
String imutável

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
Número inteiro imutável
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
Inteiro imutável
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
String imutável
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
Relevante se loadBalancer.kind = Seesaw
Imutável imutável
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 altamente disponível usa um par(Mestre, Backup) de VMs.

Exemplo:

loadBalancer:
  seesaw:
    enableHA: true

loadBalancer.seesaw.disableVRRPMAC

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

Se você definir isso como true, o balaceador 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`

Matriz mutável de objetos, cada um 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
String mutável

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

Matriz mutável 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
Booleano mutável
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
Booleano mutável
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
Booleano imutável
Pré-preenchido: falso
Padrão: falso

Se você quiser ativar o Dataplane V2, defina-o como true. Caso contrário, defina como false.

Exemplo:

enableDataplaneV2: true

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

enableWindowsDataplaneV2

Visualização
Opcional
Booleano imutável
Pré-preenchido: falso
Padrão: falso

Se você quiser ativar o Windows Dataplane V2 para um cluster com nós do Windows, defina-o como true. Caso contrário, defina como false.

Se enableWindowsDataplaneV2 estiver definido como true, o ambiente de execução do containerd será ativado, em vez do ambiente de execução do Docker.

Exemplo:

enableWindowsDataplaneV2: true

Consulte Solução de problemas do Dataplane V2 para ver as etapas de solução de problemas. Consulte o Guia do usuário para pools de nós do Windows Server OS para configurar pools de nós que contêm nós do Windows Server OS.

multipleNetworkInterfaces

Visualização
Opcional
Booleano imutável
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
Opcional
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

masterNode

Nesta seção, apresentamos informações sobre os nós do cluster de administrador que servem como nós do plano de controle para o cluster de usuário.

masterNode.vsphere.datastore

Opcional se vCenter.datacenter herdar do cluster de administrador
Obrigatório se vCenter.datacenter não for igual ao data center do cluster de administrador
String imutável

Padrão: se vCenter.datacenter herdar do cluster de administrador, o padrão será vCenter.datastore, conforme especificado nesse arquivo de configuração.

Padrão: se vCenter.datacenter for diferente do data cluster do cluster de administrador, ele não terá um valor padrão.

O armazenamento de dados do vSphere para os nós do plano de controle desse cluster de usuário.

Exemplo:

masterNode:
   vsphere:
      datastore: "control-plane-datastore"

masterNode.cpus

Opcional
Número inteiro mutável
Pré-preenchido: 4
Padrão: 4

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

Exemplo:

masterNode:
  cpus: 8

masterNode.memoryMB

Opcional
Número inteiro mutável
Pré-preenchido: 8192
Padrão: 8192

Os mebibytes de memória para cada nó de cluster de administrador que serve como plano de controle para este 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
Número inteiro imutável
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.

Os nós do plano de controle para o cluster de usuário estão no cluster de administrador.

Exemplo:

masterNode:
  replicas: 3

masterNode.autoResize.enabled

Opcional
Booleano mutável
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.

Os nós do plano de controle para o cluster de usuário estão no cluster de administrador.

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
String imutável
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"

nodePools

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

String obrigatória
imutável

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

Obrigatório
Número inteiro mutável
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
Número inteiro mutável
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
Número inteiro mutável
Pré-preenchido: 3
Valores possíveis: o número total de nós sem taint em todos os pools do nós na matriz precisa ser pelo menos 3.

O número de nós no pool.

Exemplo:

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

nodePools[i].bootDiskSizeGB

Opcional
Número inteiro mutável
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:
String mutável
Valores possíveis: "ubuntu", "ubuntu_containerd", "cos" ou "windows"
Pré-preenchido: "ubuntu_containerd"
Padrão: "ubuntu_containerd"

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

Exemplo:

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

nodePools[i].osImage

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

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
Mapeamento mutável

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"

nodePools[i].taints

Opcional
Matriz mutável de objetos, cada uma descrevendo um taint.

Exemplo:

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

nodePools[i].vsphere.datastore

Opcional
String mutável
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"

nodePools[i].vsphere.tags

Opcional
Matriz mutável de objetos, cada uma 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

Visualizar
Opcional

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
Número inteiro mutável
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
Número inteiro mutável
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

Visualização
Opcional
Caso seja relevante: loadBalancer.kind = "MetalLB"
Booleano mutável
Pré-preenchido: falso
Padrão: falso

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

Exemplo:

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

antiAffinityGroups.enabled

Obrigatório
Booleano mutável
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

Os clusters do Anthos no VMware criam automaticamente regras de antiafinidade Distributed Resource Scheduler (DRS) do VMware para os nós do cluster de usuário, fazendo com que eles sejam distribuídos em pelo menos três hosts físicos no 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 três hosts físicos 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 a DRS não estiver ativada ou se você não tiver pelo menos três hosts em que as VMs do vSphere podem ser programadas, defina antiAffinityGroups.enabled como false.

enableVMTracking

Visualização
Opcional
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

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 imutável

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 imutável

O caminho do arquivo de chave privada do certificado.

Exemplo:

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

gkeConnect

Obrigatório

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

String obrigatória
imutável

O ID do projeto host da frota.

Exemplo:

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

gkeConnect.registerServiceAccountKeyPath

String obrigatória
imutável

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"

stackdriver

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.

stackdriver.projectID

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

Código do projeto de monitoramento de geração de registros. Este é o projeto do Cloud em que você verá os registros e as métricas.

Exemplo:

stackdriver:
  projectID: "my-logs-project"

stackdriver.clusterLocation

Obrigatório para o Logging e o Monitoring
String imutável
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.

Exemplo:

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

Opcional
Booleano imutável
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
String mutável

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

Opcional
Booleano imutável
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

Alpha
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

Alfa Obrigatório para medição de uso
String imutável

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

Alfa Obrigatório para medição de uso
String imutável

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

Alfa Obrigatório para medição de uso
String mutável.

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

Alfa Obrigatório para medição de uso
Booleano imutável
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
String imutável

O ID do projeto do Google Cloud em que você quer armazenar os registros de auditoria.

Exemplo:

cloudAuditLogging:
  projectID: "my-audit-project"

cloudAuditLogging.clusterLocation

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

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.

Exemplo:

cloudAuditLogging:
  clusterLocation: "us-central1"

cloudAuditLogging.serviceAccountKeyPath

Visualização
Obrigatório para registros de auditoria do Cloud
String mutável

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"

autoRepair.enabled

Obrigatório
Booleano mutável
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
String imutável
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
Número inteiro mutável
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

Obrigatório para criptografia de Secrets
Booleano mutável
Pré-preenchido: 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