Neste documento, descrevemos os campos no arquivo de configuração do cluster de usuário para versões 1.30 e mais recentes 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. Além disso, o gkeadm
preencheu
alguns 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 do Google Distributed Cloud. Por exemplo, gkectl create-config cluster --gke-on-prem-version=1.33.100-gke.89
.
Modelo
Campos obrigatórios e valores padrão
Se um campo estiver marcado como Obrigatório, o arquivo de configuração concluído precisará ter um valor preenchido no campo.
Alguns campos são obrigatórios sob certas condições. Por exemplo, loadBalancer.metalLB.addressPools
será obrigatório se loadBalancer.kind
for igual a MetalLB
.
Se um valor Padrão for fornecido para um campo, o cluster usará esse valor no campo se você não inserir algum. É possível substituir um valor padrão digitando um valor.
Se um campo não estiver marcado como "Obrigatório", ele será opcional. Você pode preenchê-lo se for relevante para você, mas não é necessário.
Como preencher o arquivo de configuração
No arquivo de configuração, insira os valores de campo conforme descrito nas seções a seguir.
enableAdvancedCluster
1.33 e versões mais recentes
Todos os novos clusters são criados como clusters avançados. Se você incluir esse campo
no arquivo de configuração ao criar um novo cluster, ele precisará ser definido como
true
. Se você definir esse campo como false
, a criação do cluster será bloqueada.
1.32
Opcional
Mutável (de false
para true
é permitido)
Booleano
Pré-preenchido: verdadeiro
Padrão: verdadeiro
Defina enableAdvancedCluster
como false
se não quiser ativar o cluster avançado ao criar um cluster. Quando essa flag é definida como true
(cluster avançado ativado), o software do Google Distributed Cloud implanta controladores que permitem uma arquitetura mais extensível. Ao ativar o cluster avançado, você tem acesso a novos recursos e funcionalidades, como domínios de topologia.
Esse campo precisa ter o mesmo valor do campo enableAdvancedCluster
do cluster de administrador.
Revise as diferenças ao executar clusters avançados antes de ativar um cluster avançado.
Para atualizar um cluster existente para um cluster avançado, consulte Atualizar um cluster para um cluster avançado. Depois de atualizar para o cluster avançado, não é possível desativar.
1.31
Disponível apenas para novos clusters
Prévia
Opcional
Imutável
Booleano
Pré-preenchido: falso
Padrão: falso
Defina enableAdvancedCluster
como true
se quiser ativar o cluster avançado
ao criar um novo cluster. Quando essa flag é definida como true
(cluster avançado
ativado), o software do Google Distributed Cloud implanta controladores
que permitem uma arquitetura mais extensível. Ao ativar o cluster avançado, você tem acesso a novos recursos e funcionalidades, como domínios de topologia.
Esse campo precisa ter o mesmo valor do campo enableAdvancedCluster
do cluster de administrador.
1.30 e versões anteriores
Indisponível.
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 o cluster de usuário.
Exemplo:
gkeOnPremVersion: "1.29.0-gke.1456"
preparedSecrets.namespace
Se infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador, remova esse campo.
Caso contrário, se você quiser usar credenciais preparadas, preencha esse campo.
String
Imutável
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 são armazenados para esse cluster de usuário.
Exemplo:
preparedSecrets: namespace: "gke-onprem-secrets-alice"
enableControlplaneV2
1.30 e versões mais recentes
Mutável (de false
para true
é permitido)
Booleano
Pré-preenchido: verdadeiro
Padrão: verdadeiro
Na versão 1.30 e mais recentes, o Controlplane V2 é necessário para novos clusters de usuário. Se você incluir esse campo no arquivo de configuração, ele precisará ser definido como true
.
Para migrar um cluster atual para o Controlplane V2, consulte Migrar um cluster de usuário para recursos recomendados. Depois de migrar para o Controlplane V2, não é possível desativá-lo.
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. 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 do cluster de administrador não causa inatividade para 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.
1.29 e versões anteriores
Imutável
Booleano
Preenchido automaticamente: verdadeiro
Padrão: verdadeiro
Para ativar o Controlplane V2, defina enableControlplaneV2
como true
ou remova a definição do arquivo de configuração do cluster de usuário. 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. Quando o Controlplane V2 não está ativado, o plano de controle do cluster de usuário é executado no cluster de administrador.
Recomendamos que você ative o Controlplane V2.
Exemplo:
enableControlplaneV2: true
vCenter
Esta seção contém informações sobre o ambiente vSphere e a conexão com o servidor vCenter.
Se infraConfigFilePath
estiver
configurado no arquivo de configuração do cluster de administrador, remova toda essa seção.
Se você incluiu a seção vCenter
no arquivo de configuração do cluster de administrador:
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
String
Imutável
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
.
Exemplos:
vCenter: address: "203.0.113.101"
vCenter: address: "my-vcenter-server-2.my-domain.example"
vCenter.datacenter
String
Imutável
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
ouvCenter.storagePolicyName
vCenter.cluster
ouvCenter.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
String
Imutável
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
ouvCenter.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
String
Imutável
Padrão: herdar do cluster de administrador
Um pool de recursos do vCenter para as VMs do cluster de administrador.
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-datastore"
Se você especificar um valor nesse campo, não especifique um valor em vCenter.storagePolicyName
. O campo vCenter.datastore
é imutável, exceto quando você define o campo como uma string vazia ao migrar um repositório de dados para o gerenciamento baseado em políticas de armazenamento (SPBM, na sigla em inglês).
vCenter.storagePolicyName
Opcional
Imutável
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 nesse campo, não especifique um valor em vCenter.datastore
.
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
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
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 sua conta de usuário do vCenter.
Exemplo:
vCenter: credentials: fileRef: entry: "vcenter-credentials-2"
vCenter.credentials.secretRef.version
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor padrão: "latest"
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
String
Imutável
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
String
Mutável
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
String
Mutável
Valores possíveis: 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 acesso a componentes.
Exemplo:
componentAccessServiceAccountKey: secretRef: version: "1"
privateRegistry
Preencha esta seção se o cluster de administrador estiver usando um registro de contêiner particular e você quiser que o cluster de usuário use um registro particular ou configurações diferentes. Se você quiser usar um endereço de registro privado diferente, seu cluster precisará ter o Controlplane V2 ativado. As novas configurações são selecionadas durante a criação e atualização do cluster.
Se você quiser usar as mesmas configurações do cluster de administrador, remova essa seção ou deixe-a com uma marca de comentário.
privateRegistry.address
String
Imutável
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.
Exemplos:
privateRegistry: address: "203.0.113.10"
privateRegistry: address: "fqdn.example.com"
privateRegistry.credentials.fileRef.path
String
Mutável
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 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 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
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 sua conta de registro particular do Docker.
privateRegistry: credentials: fileRef: entry: "private-registry-creds"
privateRegistry.credentials.secretRef.version
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor padrão: "latest"
Se você fornecer um valor para preparedSecrets.namespace e quiser usar um secret preparado para um registro particular, preencha esse 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
String
Mutável
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
1.30 e versões mais recentes
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 infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador (disponível na versão 1.31 e
mais recente), remova toda essa seção. Caso contrário, esta seção será necessária se uma ou mais das seguintes condições forem verdadeiras:
network.ipMode.type
, definida comostatic
.enableControlplaneV2
está definido comotrue
ou tem o padrãotrue
. O Controlplane V2 é obrigatório para novos clusters de usuário.
1.29 e versões anteriores
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 da Seesaw, essas informações também serão aplicáveis às VMs da Seesaw.
Esta seção será necessária se uma ou mais das seguintes condições forem verdadeiras:
network.ipMode.type
, definida comostatic
.enableControlplaneV2
está definido comotrue
ou tem o padrãotrue
. O balanceador de carga da Seesaw não é compatível com clusters com Controlplane V2 ativado.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
Matriz de strings
Imutável
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
String
Imutável
Preenchido automaticamente: "static"
Padrão: "dhcp"
Se você quiser que os nós do cluster recebam o endereço IP de um servidor DHCP, defina
como "dhcp"
. Se quiser que os nós do cluster tenham endereços IP estáticos
escolhidos em uma lista fornecida, defina isso como "static"
. Se enableControlplaneV2
estiver definido como true
, essa configuração será aplicada apenas aos nós de trabalho.
Exemplo:
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
Esse campo é obrigatório se network.ipMode.type
= static
ou se
infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador.
String
imutável
O caminho absoluto ou relativo do arquivo de bloco IP do cluster.
Exemplo:
network: ipMode: ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"
network.serviceCIDR
String
Imutável
Preenchido automaticamente: "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
String
Imutável
Preenchido automaticamente: "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ço e pod 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
Se infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador, remova esse campo.
Caso contrário, esse campo será obrigatório se vCenter.address
for diferente do endereço do vCenter que você está usando para o cluster de administrador.
String
imutável
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 infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador, remova toda essa
seção.
Caso contrário, a inclusão dessa seção depende do valor definido em enableControlplaneV2
:
- Se
enableControlplaneV2
fortrue
, preencha esta seção. - Se
enableControlplaneV2
forfalse
, remova esta seção.
network.controlPlaneIPBlock.netmask
Obrigatório se enableControlplaneV2
= true
Imutável
String
Exemplo:
network: controlPlaneIPBlock: netmask: "255.255.255.0"
network.controlPlaneIPBlock.gateway
Obrigatório se enableControlplaneV2
= true
Imutável
String
Exemplo:
network: controlPlaneIPBlock: gateway: "172.16.21.1"
network.controlPlaneIPBlock.ips
Obrigatório se enableControlplaneV2
= true
Imutável
Matriz de objetos, cada uma com um endereço IP e um nome do host. O nome do host
é obrigatório para a migração do plano de controle V2. Caso contrário, é 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
Especifique o tipo de balanceador de carga a ser usado.
1.32 e versões mais recentes
Obrigatório
Imutável
String
Pré-preenchido: "MetalLB"
O tipo de balanceador de carga que você pode usar depende de se você vai
configurar o cluster para usar
domínios de topologia. O cluster usa domínios de topologia se o campo
infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador.
Com domínios de topologia: defina como
"ManualLB"
. É preciso configurar um balanceador de carga de terceiros (como F5 BIG-IP ou Citrix) se quiser usar domínios de topologia.Sem domínios de topologia: defina como
"ManualLB"
ou"MetalLB"
. Use"ManualLB"
se você tiver um balanceador de carga de terceiros ou"MetalLB"
para nossa solução em pacote. Também é possível configurar um tipo diferente de balanceador de carga para o tráfego do plano de controle. Para mais informações, consultemasterNode.controlPlaneLoadBalancer
.
1.31
Obrigatório
Imutável
String
Pré-preenchido: "MetalLB"
O tipo de balanceador de carga que você pode usar depende de se você vai
configurar o cluster para usar
domínios de topologia. O cluster usa domínios de topologia se o campo
infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador.
Com domínios de topologia: defina como
"ManualLB"
. É necessário configurar um balanceador de carga de terceiros (como F5 BIG-IP ou Citrix) se você quiser usar domínios de topologia.Sem domínios de topologia: defina como
"ManualLB"
ou"MetalLB"
. Use"ManualLB"
se você tiver um balanceador de carga de terceiros ou"MetalLB"
para nossa solução em pacote.
1,30
Obrigatório
Imutável
String
Pré-preenchido: "MetalLB"
Defina como "ManualLB"
ou "MetalLB"
. Use "ManualLB"
se você tiver um
balanceador de carga de terceiros (como F5 BIG-IP ou Citrix) ou "MetalLB"
para nossa
solução em pacote.
Embora seja possível fazer upgrade de um cluster com kind
definido como "F5BigIP"
ou "Seesaw"
, não é possível criar novos clusters. Para informações sobre como migrar configurações de balanceamento de carga, consulte
Planejar a migração de clusters para recursos recomendados.
Exemplo:
loadBalancer:
kind: "MetalLB"
1.29 e versões anteriores
Obrigatório
Imutável
String
Pré-preenchido: "MetalLB"
Defina como "ManualLB"
, "F5BigIP"
, "Seesaw"
ou "MetalLB"
.
Para ativar o Dataplane V2 e o Controlplane V2, recomendamos o uso de "ManualLB"
se você tiver um balanceador de carga de terceiros (como F5 BIG-IP ou Citrix) ou "MetalLB"
para nossa solução em pacote.
Exemplo:
loadBalancer:
kind: "MetalLB"
Ao criar clusters de usuário usando o console Google Cloud , a
CLI gcloud ou o Terraform, o tipo de balanceador de carga para o cluster
de administrador e os clusters de usuário precisa ser o mesmo. A única exceção é se o
cluster de administrador usa o Seesaw, e os clusters de usuário podem usar o MetalLB. Se você quiser
que os clusters de administrador e de usuário usem tipos diferentes de balanceadores de carga, crie
clusters de usuário usando a ferramenta de linha de comando gkectl
.
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
(consulte a nota sobre a versão)
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. Escolha um valor nodePort
para o ServicePort HTTP e defina esse campo como o valor nodePort
.
Observação sobre a versão: na versão 1.30 e mais recentes, as portas de nós de entrada são opcionais para clusters que usam o Controlplane V2.
Exemplo:
loadBalancer: manualLB: ingressHTTPNodePort: 32527
loadBalancer.manualLB.ingressHTTPSNodePort
Obrigatório se loadBalancer.kind
= ManualLB (see Version note)
Imutável
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 e defina esse campo como o valor nodePort
.
Observação sobre a versão: na versão 1.30 e mais recentes, as portas de nós de entrada são opcionais para clusters que usam o Controlplane V2.
Exemplo:
loadBalancer: manualLB: ingressHTTPSNodePort: 30139
loadBalancer.manualLB.controlPlaneNodePort
Obrigatório se loadBalancer.kind
= ManualLB
e
enableControlplaneV2
= false
Imutável
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 kubeception é 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 de nodePort
diferente. Você precisa escolher um valor de nodePort
para o servidor Konnectivity.
Defina esse campo como o valor nodePort
do servidor Konnectivity.
Exemplo:
loadBalancer: manualLB: konnectivityServerNodePort: 30969
loadBalancer.f5BigIP
1.30 e versões mais recentes
Na versão 1.30 e mais recentes, o valor "F5BigIP"
não é permitido em loadbalancer.kind
para novos clusters de usuário. Se a seção loadBalancer.f5BigIP
estiver no arquivo de configuração, remova-a ou comente-a.
Ainda será possível usar o balanceador de carga do F5 BIG-IP com novos clusters de usuário, mas a configuração será diferente. Confira os detalhes de configuração em Como ativar o modo de balanceamento de carga manual.
Se um cluster já tiver essa seção configurada, os upgrades para a versão 1.32 serão bloqueados. É necessário migrar os clusters para recursos recomendados antes de fazer upgrade para a versão 1.32.
1.29 e versões anteriores
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 a configuração manual para o balanceamento de carga do 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.
Se você tiver um balanceador de carga do F5-BIG-IP e a configuração do cluster usar essa seção, recomendamos que você migre para o balanceamento de carga manual depois de fazer upgrade para a versão 1.29 ou mais recentes.
loadBalancer.f5BigIP.address
1.30 e versões mais recentes
Não permitido para novos clusters
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"
1.29 e versões anteriores
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
1.30 e versões mais recentes
Não permitido para novos clusters
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 do 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"
1.29 e versões anteriores
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 do 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
1.30 e versões mais recentes
Não permitido para novos clusters
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"
1.29 e versões anteriores
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
1.30 e versões mais recentes
Não permitido para novos clusters
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"
1.29 e versões anteriores
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
1.30 e versões mais recentes
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= "F5BigIP"
e você estiver usando SNAT
String
O nome do seu pool de SNAT.
Exemplo:
loadBalancer:
f5BigIP:
snatPoolName: "my-snat-pool"
1.29 e versões anteriores
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
1.30 e versões mais recentes
Na versão 1.30 e mais recentes, o valor "Seesaw"
não é permitido para loadbalancer.kind
em novos clusters de usuário porque esse balanceador de carga não é compatível com recursos novos e avançados. Se a seção loadBalancer.seesaw
estiver no arquivo de configuração, remova-a ou comente-a.
Em vez disso, é possível configurar o balanceador de carga MetalLB em pacote. Para ativar o balanceador de carga 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.
1.29 e versões anteriores
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 da SeeSaw:
- Se um cluster de administrador de alta disponibilidade gerenciar esse cluster de usuário, ele não poderá usar o balanceador de carga da Seesaw.
- Clusters de usuário com o Controlplane V2 ativado não podem usar o balanceador de carga da Seesaw.
Para usar esses recursos, recomendamos que você configure o balanceador de carga MetalLB. Para ativar o balanceador de carga 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.
loadBalancer.seesaw.ipBlockFilePath
1.30 e versões mais recentes
Não permitido para novos clusters
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"
1.29 e versões anteriores
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
1.30 e versões mais recentes
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= Seesaw
Número inteiro
Imutável
Valores possíveis: 1 a 255
Preenchido automaticamente: 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
1.29 e versões anteriores
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
1.30 e versões mais recentes
Não permitido para novos clusters
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
1.29 e versões anteriores
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
1.30 e versões mais recentes
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= Seesaw
Número inteiro
Mutável
Preenchido automaticamente: 4
O número de CPUs de cada uma das VMs do Seesaw.
Exemplo:
loadBalancer:
seesaw:
cpus: 8
1.29 e versões anteriores
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
1.30 e versões mais recentes
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= Seesaw
Número inteiro
Mutável
Preenchido automaticamente: 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 é 220 = 1.048.576 bytes. Um megabyte é 106 = 1.000.000 bytes.
1.29 e versões anteriores
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 é 220 = 1.048.576 bytes. Um megabyte é 106 = 1.000.000 bytes.
loadBalancer.seesaw.vCenter.networkName
1.30 e versões mais recentes
Não permitido para novos clusters
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"
1.29 e versões anteriores
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
1.30 e versões mais recentes
Não permitido para novos clusters
Booleano
Relevante se loadBalancer.kind
= Seesaw
Imutável
Preenchido automaticamente: 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
1.29 e versões anteriores
Booleano
Relevante se loadBalancer.kind
= Seesaw
Imutável
Preenchido automaticamente: 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
1.30 e versões mais recentes
Não permitido para novos clusters
Booleano
Relevante se loadBalancer.kind
= Seesaw
Imutável
Preenchido automaticamente: verdadeiro
Padrão: verdadeiro
Se definido como true
(recomendado), o balanceador de carga da Seesaw não usará o aprendizado MAC para failover. Em vez disso, ele usa
ARP gratuito.
Se esse campo for definido como false
, o balanceador de carga da Seesaw usará o aprendizado MAC. Se você estiver usando o vSphere 7 ou uma versão posterior e tiver um
balanceador de carga de alta disponibilidade do Seesaw, defina este campo como true
.
Exemplo:
loadBalancer:
seesaw:
disableVRRPMAC: true
1.29 e versões anteriores
Imutável
Relevante se loadBalancer.kind
= Seesaw
Booleano
Preenchido automaticamente: verdadeiro
Padrão: verdadeiro
Se você definir isso como true
(recomendado), o balanceador de carga da Seesaw 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. Se você
estiver usando o vSphere 7 ou uma versão mais recente e tiver um balanceador de carga de alta disponibilidade do 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 (consulte a exceção)
Matriz de objetos, cada uma contendo informações sobre um pool de endereços a ser usado pelo balanceador de carga do MetalLB.
1.32 e versões mais recentes
O comportamento desse campo é o mesmo quando enableAdvancedCluster
é definido como true
(cluster avançado ativado) ou false
(cluster avançado não ativado).
Em ambos os casos, a matriz não é totalmente mutável. É possível adicionar pools de endereços, mas não remover pools de endereços de uma matriz de pools de endereços atual.
1.31
O comportamento desse campo depende se
enableAdvancedCluster
está definido como
true
(cluster avançado ativado) ou false
(cluster avançado não ativado):
Se o cluster avançado estiver ativado, a matriz não será totalmente mutável. É possível adicionar pools de endereços, mas não remover pools de endereços de uma matriz existente.
Se o cluster avançado não estiver ativado, a matriz será mutável. É possível adicionar e remover pools de endereços de uma matriz de pools de endereços atual.
1.30 e versões anteriores
É possível adicionar e remover pools de endereços de uma matriz de pools de endereços existente.
loadBalancer.metalLB.addressPools[i].name
Obrigatório se loadBalancer.kind
= MetalLB
Mutável (consulte a exceção)
String
Um nome de sua escolha para o pool de nós.
1.32 e versões mais recentes
O comportamento desse campo é o mesmo de quando enableAdvancedCluster
é definido como true
(cluster avançado ativado) ou false
(cluster avançado não ativado).
Em ambos os casos, não é possível mudar o nome depois que o cluster é criado.
1.31
O comportamento desse campo depende se
enableAdvancedCluster
está definido como
true
(cluster avançado ativado) ou false
(cluster avançado não ativado):
Se o cluster avançado estiver ativado, não será possível mudar o nome depois da criação.
Se o cluster avançado não estiver ativado, será possível mudar o nome do pool depois que o cluster for criado.
1.30 e versões anteriores
É possível mudar o nome do pool depois que o cluster é criado.
Exemplo:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1"
loadBalancer.metalLB.addressPools[i].addresses
Obrigatório se loadBalancer.kind
= MetalLB
Mutável (consulte a exceção)
Matriz de strings, cada uma sendo um intervalo de endereços. Cada intervalo precisa estar no formato CIDR ou de hifens.
1.32 e versões mais recentes
O comportamento desse campo é o mesmo de quando enableAdvancedCluster
é definido como true
(cluster avançado ativado) ou false
(cluster avançado não ativado).
Em ambos os casos, é possível adicionar endereços a um pool de endereços atual, mas não é possível remover endereços.
1.31
O comportamento desse campo depende se
enableAdvancedCluster
está definido como
true
(cluster avançado ativado) ou false
(cluster avançado não ativado):
Se o cluster avançado estiver ativado, será possível adicionar endereços a um pool de endereços atual, mas não é possível remover endereços.
Se o cluster avançado não estiver ativado, será possível adicionar e remover endereços de um pool de endereços atual.
1.30 e versões anteriores
É possível adicionar e remover endereços de um pool de endereços.
Exemplo:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" addresses: - "192.0.2.0/26" - "192.0.2.64-192.0.2.72"
loadBalancer.metalLB.addressPools[i].avoidBuggyIPs
Relevante se loadBalancer.kind
= MetalLB
Booleano
Mutável
Preenchido automaticamente: 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
Relevante se loadBalancer.kind
= MetalLB
Booleano
Mutável
Preenchido automaticamente: 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
1.30 e versões mais recentes
Mutável (de false
para true
é permitido)
Booleano
Pré-preenchido: verdadeiro
Padrão: falso
Esse campo controla a interface de rede de contêiner (CNI) usada pelo cluster. É necessário ativar o Dataplane V2 para usar o Controlplane V2. Você pode mudar o campo de false
para true
para ativar o Dataplane V2, mas não é possível desativá-lo.
Na versão 1.30 e mais recentes, o Dataplane V2 é obrigatório para novos clusters de usuário e precisa ser definido como
true
. Para migrar um cluster 1.30 para o Dataplane V2, consulte Migrar um cluster de usuário para recursos recomendados.Na versão 1.31, o Dataplane V2 é obrigatório para todos os clusters. Antes de fazer upgrade para a versão 1.31, siga as etapas em Ativar o Dataplane V2.
O Dataplane V2 oferece os seguintes benefícios:
O Dataplane V2 oferece uma interface de rede de contêiner (CNI, na sigla em inglês) mais avançada e capaz em comparação com a opção de CNI anterior, Calico. O Calico está no modo de manutenção, ou seja, ele recebe apenas correções de bugs e atualizações de segurança críticas, mas nenhum desenvolvimento de novos recursos. Por outro lado, o Dataplane V2 é ativamente desenvolvido e aprimorado, garantindo que você tenha acesso aos últimos recursos e inovações de rede.
O Dataplane V2 é o CNI preferido para o GKE e outros produtos do Google Distributed Cloud.
1.29 e versões anteriores
Booleano
Imutável
Preenchido automaticamente: verdadeiro
Padrão: falso
Se você quiser ativar o Dataplane V2 ou usar o Controlplane V2, defina-o como true
. Caso contrário, defina como false
.
Recomendamos que você ative o Dataplane V2.
Exemplo:
enableDataplaneV2: true
Consulte Resolver problemas do NFS e do DataPlane v2 do Google Distributed Cloud para ver as etapas de solução de problemas.
dataplaneV2.forwardMode
String
Mutável
Valores possíveis: "snat", "dsr"
Preenchido automaticamente: "snat"
Padrão: "snat"
O modo de encaminhamento de 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
Booleano
Imutável
Preenchido automaticamente: falso
Padrão: falso
Se infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador, esse campo precisará ser
false
.
Se quiser ativar várias interfaces de rede para pods, defina-o
como true
.
Para mais informações, consulte Configurar várias interfaces de rede para pods.
Exemplo:
multipleNetworkInterfaces: true
advancedNetworking
Booleano
Imutável
Preenchido automaticamente: 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
.
Booleano
Mutável
Preenchido automaticamente: falso
Padrão: falso
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
.
Se infraConfigFilePath
estiver
configurado no arquivo de configuração do cluster de administrador, esse campo precisará ser
true
.
Booleano
Mutável
Preenchido automaticamente: 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 esse cluster de usuário.
masterNode.controlPlaneLoadBalancer
1.32 e versões mais recentes
Se quiser, inclua esta seção para especificar o tipo de balanceador de carga a ser usado
para o tráfego do plano de controle no cluster de usuário. Inclua
masterNode.controlPlaneLoadBalancer.mode
no arquivo de configuração
se quiser definir explicitamente o tipo de balanceador de carga a ser usado em vez de
confiar no valor padrão. Além disso, defina loadBalancer.kind
no arquivo de configuração para especificar o tipo de balanceador de carga a ser usado no plano de dados.
masterNode.controlPlaneLoadBalancer.mode
Opcional
Imutável
String
Padrão: depende se o cluster usa domínios de topologia
O tipo de balanceador de carga que você pode usar depende de se você vai
configurar o cluster para usar
domínios de topologia. O cluster usa domínios de topologia se o campo
infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador.
Com domínios de topologia: especifique
"manual"
, que é o valor padrão. É necessário configurar um balanceador de carga de terceiros (como F5 BIG-IP ou Citrix) se você quiser usar domínios de topologia.Sem domínios de topologia: especifique
"manual"
ou"bundled"
. Use"manual"
se você tiver um balanceador de carga de terceiros ou"bundled"
para nossa solução em pacote, que usa keepalived + haproxy executado nos nós do plano de controle. O valor padrão é "bundled"
.
Exemplo:
adminMaster:
controlPlaneLoadBalancer:
mode: "manual"
1.31 e versões anteriores
Esta seção não está disponível. Em vez disso, use loadBalancer.kind
para especificar o tipo de balanceador de carga que o cluster de usuário vai usar.
masterNode.cpus
Número inteiro
Mutável
Preenchido automaticamente: 4
Padrão: 4
O número de CPUs para cada nó que serve como plano de controle para esse cluster de usuário.
Exemplo:
masterNode: cpus: 8
masterNode.memoryMB
Número inteiro
Mutável
Preenchido automaticamente: 8192
Padrão: 8192
Os mebibytes de memória para cada nó que serve como um plano de controle desse 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
Número inteiro
Imutável
Valores possíveis: 1 ou 3
Preenchido automaticamente: 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.
Se o campo enableAdvancedCluster
for
true
, defina esse campo como 3
. Somente clusters de usuário de alta disponibilidade (HA) são compatíveis com clusters avançados.
Exemplo:
masterNode: replicas: 3
masterNode.autoResize.enabled
Booleano
Mutável
Preenchido automaticamente: 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
Se infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador, remova toda essa
seção.
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.
O valor especificado precisa ser um nome, e não um caminho. Não inclua pastas no valor.
Exemplo:
masterNode: vSphere: datastore: "control-plane-datastore"
Se você especificar um valor nesse campo, não especifique um valor em masterNode.vsphere.storagePolicyName
. O campo masterNode.vsphere.datastore
é imutável, exceto quando você define o campo como uma string vazia ao migrar um repositório de dados para o gerenciamento baseado em políticas de armazenamento (SPBM).
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 nesse campo, não especifique um valor em masterNode.vsphere.datastore
.
masterNode.topologyDomains
1.32 e versões mais recentes
Prévia
Opcional
Matriz de strings | Permite um elemento ou três elementos diferentes
Imutável
Padrão: vSphereInfraConfig.defaultTopologyDomain
se especificado no
arquivo de configuração da infraestrutura do vSphere
Uma matriz de domínios de topologia. Se infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador
(o que indica que o cluster usará
domínios de topologia), inclua esse campo, se quiser. O número de domínios de topologia na matriz determina como os nós do plano de controle do cluster de usuário são implantados, da seguinte maneira:
- Um elemento: todos os nós do plano de controle do cluster de usuário serão implantados no domínio de topologia especificado.
- Três elementos: cada nó do plano de controle do cluster de usuário será implantado em um domínio de topologia diferente (ou seja, um nó por domínio de topologia).
1.31
Visualização
Opcional
Matriz de strings, mas apenas um elemento é compatível
Imutável
Padrão: vSphereInfraConfig.defaultTopologyDomain
se especificado no
arquivo de configuração da infraestrutura do vSphere
Uma matriz de domínios de topologia.
Se infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador (o que indica que o
cluster usará
domínios de topologia), inclua esse campo, se quiser. Os nós do plano de controle do cluster de usuário serão implantados no domínio de topologia especificado.
1.30 e versões anteriores
Indisponível.
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 um cluster de usuário.
String
Mutável
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
Número inteiro
Mutável
Preenchido automaticamente: 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
String
Mutável
Valores possíveis: "ubuntu_containerd", "cos", "ubuntu_cgv2", "cos_cgv2"
Preenchido automaticamente: "ubuntu_cgv2"
Padrão: "ubuntu_containerd"
O tipo de imagem do SO a ser executado nas VMs no pool de nós.
Na versão 1.32, os pools de nós do Windows Server foram descontinuados e não estarão disponíveis na versão 1.33 e mais recentes. O suporte para pools de nós do Windows Server termina em 5 de maio de 2026. Recomendamos que você não use "windows" como o tipo de imagem do SO em novos clusters.
Observe a seguinte limitação com clusters avançados:
Versão 1.31: se o campo
enableAdvancedCluster
fortrue
, somenteubuntu-cgroupv2
eubuntu_containerd
serão compatíveis em clusters avançados.Versão 1.32: todos os tipos de imagem do SO, exceto "windows", são compatíveis com clusters avançados.
Exemplo:
nodePools - name: "my-node-pool" osImageType: "ubuntu_cgv2"
nodePools[i].osImage
Obrigatório se nodePools[i].osImageType
= windows
Mutável
String
O nome de um modelo de VM do Windows. O modelo 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
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"
O kubelet não consegue aplicar rótulos a si mesmo em determinados namespaces por motivos de segurança.
Os namespaces de rótulos de nós reservados são: kubernetes.io
, k8s.io
, googleapis.com
.
nodePools[i].taints
Mutável
Matriz de objetos, cada uma descrevendo um taint do Kubernetes aplicado a cada nó no pool. 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
Se infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador, remova todos os campos
na seção nodePools[i].vsphere
, exceto nodePools[i].vsphere.tags
.
nodePools[i].vsphere.datastore
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"
Se você especificar um valor nesse campo, não especifique um valor em nodePools[i].vsphere.storagePolicyName
.
nodePools[i].vsphere.storagePolicyName
String
Mutável
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 nesse campo, não especifique um valor em 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.
Mutável
Matriz de strings, 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
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
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
Número inteiro
Mutável
Valores possíveis: maior ou igual a 1
Preenchido automaticamente: 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
Número inteiro
Mutável
Preenchido automaticamente: 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
Relevante se loadBalancer.kind
= "MetalLB"
Booleano
Mutável
Pré-preenchido: verdadeiro
Padrão: falso
1.32 e versões mais recentes
O comportamento desse campo é o mesmo quando enableAdvancedCluster
é definido como true
(cluster avançado ativado) ou false
(cluster avançado não ativado).
Em ambos os casos, defina como true
se quiser permitir que o alto-falante do MetalLB seja executado nos
nós do pool. Caso contrário, defina como false
.
1.31
O comportamento desse campo depende se
enableAdvancedCluster
está definido como
true
(cluster avançado ativado) ou false
(cluster avançado não ativado):
Se o cluster avançado estiver ativado, esse campo não terá efeito porque o speaker do MetalLB sempre será executado nos nós do plano de controle do cluster de usuário.
Se o cluster avançado não estiver ativado, defina como
true
se quiser permitir que o alto-falante do MetalLB seja executado nos nós do pool. Caso contrário, defina comofalse
.
1.29 e versões anteriores
Defina como true
se quiser permitir que o alto-falante do 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é-lançamento
Número inteiro
Mutável
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 um upgrade.
nodePools: - name: "my-node-pool" updateStrategy: rollingUpdate: maxSurge: 3
nodePools[i].topologyDomains
1.31 e versões mais recentes
Se infraConfigFilePath
estiver configurado no arquivo de configuração do cluster de administrador (que ativa
domínios de topologia), inclua esse campo, se quiser.
Matriz de strings | Mas apenas um elemento é compatível
Imutável
Padrão: vSphereInfraConfig.defaultTopologyDomain
se especificado no
arquivo de configuração da infraestrutura do vSphere
Os nós desse pool de nós serão colocados no domínio de topologia especificado por esse campo. Para cada pool de nós, só é permitido um domínio de topologia. Todos os nós em um pool de nós serão colocados em um único domínio de topologia.
1.30 e versões anteriores
Indisponível.
schedulerConfiguration
1.32 e versões mais recentes
Visualização
Opcional
Ao configurar domínios de topologia, você pode definir outras configurações que serão transmitidas para kube-scheduler
.
schedulerConfiguration.defaultTopologySpreadConstraint
Pré-lançamento
Opcional
Imutável
Um objeto que define uma regra de restrição de propagação de topologia padrão no nível do cluster
que é aplicada ao agendamento de pods. Quando o cluster de usuário é criado com
domínios de topologia, se essa regra for configurada, o kube-scheduler
vai usar
a chave de topologia padrão e vai distribuir pods de implantações, StatefulSets
e ReplicaSets nela por padrão. A estrutura é a mesma das restrições padrão no nível do cluster do Kubernetes.
Exemplo:
schedulerConfiguration:
defaultTopologySpreadConstraint:
defaultConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
defaultingType: List
Para mais detalhes, consulte Restrições padrão no nível do cluster na documentação do Kubernetes.
1.31 e versões anteriores
Indisponível.
antiAffinityGroups.enabled
Mutável
Booleano
Pré-preenchido: verdadeiro
Padrão: verdadeiro
Se esse campo for true
, o Google Distributed Cloud criará as regras de antiafinidade (DRS) do
Programador de recursos distribuído
do VMware 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 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 a DRS não estiver ativada ou se você não tiver pelo menos quatro hosts em que
as VMs do vSphere possam ser programadas, defina antiAffinityGroups.enabled
como false
.
Observe a seguinte limitação com clusters avançados:
Versão 1.31: se o campo
enableAdvancedCluster
fortrue
, as regras de antiafinidade não serão compatíveis com clusters avançados, e você precisará definirantiAffinityGroups.enabled
comofalse
.Versão 1.32: as regras de antiafinidade são compatíveis com clusters avançados.
Exemplo:
antiAffinityGroups: enabled: false
enableVMTracking
Pré-lançamento
Imutável
Preenchido automaticamente: 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
Número inteiro
Mutável
Valores possíveis: 0 ou 1
Pré-preenchido: 0
Padrão: 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.
Observe a seguinte limitação com clusters avançados:
Versão 1.31: se o campo
enableAdvancedCluster
fortrue
, as políticas de atualização do pool de nós não são compatíveis com clusters avançados. Portanto, remova essa seção do arquivo de configuração.Versão 1.32: as políticas de atualização do pool de nós são compatíveis com clusters avançados.
Exemplo:
nodePoolUpdatePolicy: maximumConcurrentNodePoolUpdate: 1
nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge
Pré-lançamento
Número inteiro
Mutável
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 um upgrade. Aplicável a qualquer pool de nós que não especifica o 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
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
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 e a conta de serviço que você quer usar para registrar seu cluster em uma frota do Google Cloud . 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
String
Imutável
Padrão: global
A assinatura de cada cluster de frota é gerenciada pelo serviço de frota (gkehub.googleapis.com
) e pelo serviço Connect (gkeconnect.googleapis.com
). O local dos serviços pode ser global ou regional. Na versão 1.28 e mais recentes, é possível especificar a região Google Cloudem que os serviços de frota e Connect são executados. Se não for especificada, as instâncias globais dos serviços serão usadas. Observe o seguinte:
Os clusters de usuário criados antes da versão 1.28 são gerenciados pelos serviços globais de frota e Connect.
Os 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
egkeOnPremAPI.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
String
Mutável
Valores possíveis: 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
Na versão 1.16 e mais recentes, se a API GKE On-Prem estiver ativada no projetoGoogle Cloud , todos os clusters no projeto serão automaticamente registrados na API GKE On-Prem na região configurada em stackdriver.clusterLocation
.
Se você quiser registrar todos os clusters do 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
comofalse
. Se você não quiser registrar clusters no projeto, desativegkeonprem.googleapis.com
(o nome do serviço da API GKE On-Prem) no projeto. Para instruções, consulte Como desativar serviços.
Ao registrar seu cluster de usuário na API GKE On-Prem, é possível usar as ferramentas padrão, como o Google Cloud console, 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
Booleano
Mutável
Padrão: true
Por padrão, o cluster será registrado na API GKE On-Prem se essa API estiver ativada no seu projeto. Defina como false
se você não quiser registrar o cluster.
Depois que o cluster é registrado na API GKE On-Prem, se você precisar cancelar esse registro, faça a alteração a seguir e atualize o cluster:
gkeOnPremAPI: enabled: false
gkeOnPremAPI.location
String
Imutável
Padrão: stackdriver.clusterLocation
A região Google Cloud em que a API GKE On-Prem é executada e armazena metadados do cluster. Escolha uma das regiões com suporte.
É preciso usar a mesma região configurada em gkeConnect.location
, stackdriver.clusterLocation
e cloudAuditLogging.clusterLocation
. Se gkeOnPremAPI.enabled
for false
, não inclua esse campo.
stackdriver
Obrigatório
Mutável
Esta seção contém as configurações necessárias para o Cloud Logging e o Cloud Monitoring.
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 Google Cloud em que você quer rotear e armazenar métricas do Cloud Monitoring. Recomendamos que você escolha uma região próxima ao data center local.
Você especifica o roteamento e o local de armazenamento dos registros do Cloud Logging na configuração do roteador de registros. Para mais informações sobre o roteamento de registros, consulte Visão geral de roteamento e armazenamento.
O operador do Stackdriver (stackdriver-operator
) anexa o valor desse campo a cada entrada de registro e métrica antes de serem encaminhadas para Google Cloud. Esses rótulos anexados podem ser úteis para filtrar seus registros e métricas no Explorador de registros e no Metrics Explorer, respectivamente.
Para novos clusters, se você incluir as seções gkeOnPremAPI
e cloudAuditLogging
no arquivo de configuração, a região definida aqui precisará ser igual àquela 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
Boolean
Imutável
Preenchido automaticamente: 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
String
Mutável
Valores possíveis: 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
Booleano
Mutável
Preenchido automaticamente: 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
1.32 e versões mais recentes
O recurso de medição de uso não é compatível com a versão 1.32 e mais recentes. Não inclua esta seção ao criar novos clusters. No entanto, os clusters atuais que usam esse recurso vão continuar funcionando. Como alternativa, recomendamos que você use o painel predefinido Medição de uso de cluster do Anthos para entender o uso de recursos em diferentes níveis. Entre em contato com o Cloud Customer Care se a alternativa não atender aos seus casos de uso.
1.30 e 1.31
Recomendamos que você não use esse recurso de prévia ao criar novos clusters. No entanto, os clusters atuais que usam esse recurso vão continuar funcionando. Como alternativa, recomendamos que você use o painel predefinido Medição de uso de cluster do Anthos para entender o uso de recursos em diferentes níveis.
Se o campo enableAdvancedCluster
for
true
, remova esta seção. A medição de uso não é compatível com clusters avançados.
1.29 e versões anteriores
Pré-lançamento
Imutável
Recomendamos que você não use esse recurso de prévia ao criar novos clusters. No entanto, os clusters atuais que usam esse recurso vão continuar funcionando. Como alternativa, recomendamos que você use o painel predefinido Medição de uso de cluster do Anthos para entender o uso de recursos em diferentes níveis.
usageMetering.bigQueryProjectID
Visualização
Obrigatório para medição de uso
Imutável
String
O ID do projeto 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
String
Mutável
Valores possíveis: 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 Google Cloud em que você quer armazenar os 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 igual àquela 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.
Se você criar o cluster com
enableAdvancedCluster
definido como true
(o que é necessário para
configurar domínios de topologia),
defina cloudAuditLogging.serviceAccountKeyPath
como o mesmo caminho de
stackdriver.serviceAccountKeyPath
.
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
String
Mutável
Valores possíveis: 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 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.
Se você criar o cluster com
enableAdvancedCluster
definido como true
(obrigatório para
configurar domínios de topologia),
remova esta seção. Esse recurso não é compatível com clusters avançados.
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
Booleano
Mutável
Preenchido 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