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
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
Os clusters do Anthos na versão VMware para seu cluster de usuário.
Exemplo:
gkeOnPremVersion: "1.10.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"
kubeception
Visualização
Opcional
Imutável
Booleano
Padrão: verdadeiro
Se você quiser criar um cluster de usuário que use o kubeception, defina ele como true
.
Caso contrário, defina como false
.
Há um
novo modelo de instalação,
disponível como um recurso em fase de pré-lançamento na versão 1.13, que não usa o kubeception.
No novo modelo de instalação, o plano de controle do cluster de usuário está no
próprio cluster. Isso é diferente do modelo antigo em que o plano de controle
do cluster de usuário está no cluster de administrador. Para usar o novo modelo de
instalação, defina kubeception
como false
.
Exemplo:
kubeception: false
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
Visualização
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, defina
kubeception
como false
.
Exemplos:
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 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 você especificar esse campo, precisará também especificar vCenter.datastore
e vCenter.networkName
, além de vCenter.cluster
ou
vCenter.resourcePool
.
vCenter.cluster
Opcional
Imutável
String
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
Opcional
Imutável
String
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
Opcional
Imutável
String
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
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 nome da pasta de VM do vCenter em que as VMs do cluster estarão localizadas. É necessário criar essa pasta antes de criar o cluster de usuário.
Exemplo:
vCenter: folder: "my-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"
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
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: "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
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.
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
Opcional
Imutável
String
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.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
Visualizar
Se você definir kubeception
como false
, preencha esta seção. Caso contrário, remova
esta seção ou deixe-a comentada.
network.controlPlaneIPBlock.netmask
Visualização
Obrigatório se kubeception
= false
String
imutável
Exemplo:
network: controlPlaneIPBlock: netmask: "255.255.255.0"
network.controlPlaneIPBlock.gateway
Visualização
Obrigatório se kubeception
= false
String
imutável
Exemplo:
network: controlPlaneIPBlock: gateway: "172.16.21.1"
Exemplo:
network: controlPlaneIPBlock: netmask: "255.255.255.0"
network.controlPlaneIPBlock.ips
Visualização
Obrigatório se kubeception
= false
Imutável
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: "Seesaw"
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
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 (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
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
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
Imutável
Inteiro
Pré-preenchido: 30563
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
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 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: 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 administrador.
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.
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
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 altamente disponível 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,
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.
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
enableWindowsDataplaneV2
Opcional
Mutável
Booleano
Pré-preenchido: falso
Padrão: verdadeiro
Para ativar o Windows Dataplane V2
em um cluster com nós do Windows, defina como true
.
Se enableWindowsDataplaneV2
estiver desativado, não é possível fazer upgrade dos clusters para
os clusters do Anthos no VMware versão 1.13. A partir da versão 1.13, o ambiente de execução do Docker não tem mais
suporte. Para fazer upgrade dos clusters,
atualize a configuração do cluster definindo esse campo como true
. Se
enableWindowsDataplaneV2
for definido como true
, o ambiente de execução do containerd vai ser ativado.
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.
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
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.cpus
Opcional
Mutável
Inteiro
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
Mutável
Inteiro
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
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.
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
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
.
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
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"
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].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
Mutável
String
Valores possíveis: "ubuntu_containerd", "cos", "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
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"
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"
nodePools[i].vsphere.tags
Opcional
Mutável
Matriz 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
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 se loadBalancer.kind
= "MetalLB"
Mutável
Booleano
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 em pacote com o MetalLB.
Exemplo:
nodePools: - name: "my-node-pool" enableLoadBalancer: true
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 este campo for true
, os clusters do Anthos no VMware criarão regras antiafinidade do
Distributed Resource Scheduler (DRS)
do VMware para os nós do cluster de usuário, fazendo com que eles sejam
espalhados por pelo menos três hosts físicos ESXi 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
Visualização
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
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.
Exemplo:
gkeConnect: projectID: "my-fleet-host-project"
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"
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.
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.
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 projeto host da frota.
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.
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
Obrigatório para criptografia de Secrets
Mutável
Booleano
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