Este documento descreve os campos no ficheiro de configuração do cluster de utilizadores para o Google Distributed Cloud das versões 1.30 e superiores.
Gerar um modelo para o seu ficheiro de configuração
Se usou o comando gkeadm
para criar a estação de trabalho de administrador, o comando gkeadm
gerou um modelo para o ficheiro de configuração do cluster de utilizadores. Além disso, o gkeadm
preencheu alguns dos campos por si.
Se não usou o gkeadm
para criar a sua estação de trabalho de administrador, pode usar o
gkectl
para gerar um modelo para o ficheiro de configuração do cluster de utilizadores.
Para gerar um modelo para o ficheiro de configuração do cluster de utilizadores:
gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION
Substitua o seguinte:
OUTPUT_FILENAME
: um caminho à sua escolha para o modelo gerado. Se omitir esta flag, gkectl
atribui o nome
user-cluster.yaml
ao ficheiro e coloca-o no diretório atual.
VERSION
: o número da versão do Google Distributed Cloud. Por exemplo:
gkectl create-config cluster --gke-on-prem-version=1.33.0-gke.799
.
Modelo
Campos obrigatórios e valores predefinidos
Se um campo estiver marcado como Obrigatório, o ficheiro de configuração concluído tem de ter um valor preenchido para o campo.
Alguns campos são obrigatórios condicionalmente. Por exemplo, loadBalancer.metalLB.addressPools
é obrigatório se loadBalancer.kind
for igual a MetalLB
.
Se for indicado um valor Predefinição para um campo, o cluster usa esse valor se não introduzir nada no campo. Pode substituir um valor predefinido introduzindo um valor.
Se um campo não estiver marcado como Obrigatório, é opcional. Pode preenchê-lo se for relevante para si, mas não tem de o fazer.
Preencher o ficheiro de configuração
No ficheiro de configuração, introduza os valores dos campos conforme descrito nas secções seguintes.
enableAdvancedCluster
1,33 e superior
Todos os novos clusters são criados como clusters avançados. Se incluir este campo no ficheiro de configuração ao criar um novo cluster, tem de o definir como true
. Se definir este campo como false
, a criação de clusters é bloqueada.
1,32
Opcional
Mutável (permitem-se valores de false
a true
)
Booleano
Pré-preenchido: verdadeiro
Predefinição: verdadeiro
Defina enableAdvancedCluster
como false
se não quiser ativar o cluster avançado quando criar um novo cluster. Quando esta flag está definida como true
(cluster avançado ativado), o software Google Distributed Cloud subjacente implementa controladores que permitem uma arquitetura mais extensível. A ativação do cluster avançado
dá-lhe acesso a novas funcionalidades e capacidades, como os
domínios de topologia.
Este campo tem de ter o mesmo valor que o campo enableAdvancedCluster
do cluster de administração.
Certifique-se de que revê as diferenças quando executa clusters avançados antes de ativar o cluster avançado.
Para atualizar um cluster existente para um cluster avançado, consulte o artigo Atualize um cluster para um cluster avançado. Após a atualização para o cluster avançado, não é permitido desativá-lo.
1.31
Disponível apenas para novos clusters
Pré-visualização
Opcional
Imutável
Booleano
Pré-preenchido: false
Predefinição: false
Defina enableAdvancedCluster
como true
se quiser ativar o cluster avançado
quando criar um novo cluster. Quando esta flag está definida como true
(cluster avançado ativado), o software Google Distributed Cloud subjacente implementa controladores que permitem uma arquitetura mais extensível. A ativação do cluster avançado
dá-lhe acesso a novas funcionalidades e capacidades, como os
domínios de topologia.
Este campo tem de ter o mesmo valor que o campo enableAdvancedCluster
do cluster de administração.
1,30 e inferior
Não disponível.
name
Obrigatório
String
Um nome à sua escolha para o cluster de utilizadores. O nome tem de:
- Conter, no máximo, 40 carateres
- conter apenas carateres alfanuméricos minúsculos ou um hífen (
-
) - Começar com um caráter alfabético
- Terminar com um caráter alfanumérico
Exemplo:
name: "my-user-cluster"
gkeOnPremVersion
Obrigatório
Mutável
String
A versão do Google Distributed Cloud para o cluster de utilizadores.
Exemplo:
gkeOnPremVersion: "1.29.0-gke.1456"
preparedSecrets.namespace
Se infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador, remova este campo.
Caso contrário, se quiser usar credenciais preparadas, preencha este campo.
Imutável
String
Valores possíveis: uma string que começa com "gke-onprem-secrets-"
O nome de um espaço de nomes do Kubernetes no cluster de administrador onde os segredos preparados estão armazenados para este cluster de utilizador.
Exemplo:
preparedSecrets: namespace: "gke-onprem-secrets-alice"
enableControlplaneV2
1,30 e superior
Mutável (permite alterar de false
para true
)
Booleano
Pré-preenchido: verdadeiro
Predefinição: verdadeiro
Na versão 1.30 e superior, o Controlplane V2 é necessário para novos clusters de utilizadores. Se incluir este campo no ficheiro de configuração, tem de o definir como true
.
Para migrar um cluster existente para o Controlplane V2, consulte o artigo Migre um cluster de utilizadores para funcionalidades recomendadas. Após a migração para o Controlplane V2, não é permitido desativá-lo.
Com o Controlplane V2, o plano de controlo de um cluster de utilizadores é executado num ou mais nós no próprio cluster de utilizadores. As vantagens do Controlplane V2 incluem:
Consistência arquitetónica entre clusters de administrador e de utilizador.
Isolamento de falhas. Uma falha do cluster de administrador não afeta os clusters de utilizadores.
Separação operacional. Uma atualização do cluster de administrador não causa tempo de inatividade para os clusters de utilizadores.
Separação da implementação. Pode colocar os clusters de administrador e de utilizador em domínios de falha ou sites geográficos diferentes. Por exemplo, um cluster de utilizadores numa localização periférica pode estar num site geográfico diferente do cluster de administração.
1,29 e inferior
Imutável
Booleano
Pré-preenchido: verdadeiro
Predefinição: verdadeiro
Para ativar o Controlplane V2, defina enableControlplaneV2
como true
ou remova a definição do ficheiro de configuração do cluster de utilizadores. Caso contrário, defina-o como false
.
Com o plano de controlo V2, o plano de controlo de um cluster de utilizadores é executado num ou mais nós no próprio cluster de utilizadores. Quando o Controlplane V2 não está ativado, o plano de controlo do cluster de utilizadores é executado no cluster de administrador.
Recomendamos que ative o Controlplane V2.
Exemplo:
enableControlplaneV2: true
vCenter
Esta secção contém informações sobre o seu ambiente vSphere e a sua ligação ao vCenter Server.
Se infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador, remova toda esta secção.
Se incluiu a secção vCenter
no ficheiro de configuração do cluster de administrador:
Se quiser que um campo nesta secção seja igual ao que especificou para o cluster de administrador, remova o campo ou deixe-o comentado.
Se quiser que um campo seja diferente do que especificou para o cluster de administrador, preencha-o aqui. Todos os campos que preencher aqui na secção
vCenter
substituem os campos correspondentes no ficheiro de configuração do cluster de administrador.
vCenter.address
Imutável
String
Predefinição: herdar do cluster de administrador
O endereço IP ou o nome do anfitrião da instância do vCenter Server que quer usar para este cluster de utilizadores.
Para mais informações, consulte o artigo Encontrar o endereço do servidor vCenter.
Se especificar um valor diferente da instância do vCenter Server usada pelo cluster de administrador, tem de ativar Controlplane V2
e fornecer valores para network.vCenter.networkName
e todos os campos obrigatórios na secção vCenter
.
Exemplos:
vCenter: address: "203.0.113.101"
vCenter: address: "my-vcenter-server-2.my-domain.example"
vCenter.datacenter
Imutável
String
Predefinição: herdar do cluster de administrador
O caminho relativo de um centro de dados do vSphere.
Se especificar um valor para este campo, também tem de especificar:
vCenter.networkName
vCenter.datastore
ouvCenter.storagePolicyName
vCenter.cluster
ouvCenter.resourcePool
O valor que especificar é relativo à pasta raiz denominada /
.
Se o centro de dados estiver na pasta raiz, o valor é o nome do centro de dados.
Exemplo:
vCenter: datacenter: "my-uc-data-center"
Caso contrário, o valor é um caminho relativo que inclui uma ou mais pastas juntamente com o nome do centro de dados.
Exemplo:
vCenter: datacenter: "data-centers/data-center-2"
vCenter.cluster
Imutável
String
Predefinição: herdar do cluster de administrador
O caminho relativo de um cluster do vSphere que representa os anfitriões ESXi onde as VMs do cluster de utilizadores são executadas. Este cluster do vSphere representa um subconjunto dos anfitriões ESXi físicos no seu centro de dados do vCenter.
Se especificar um valor para este campo, também tem de especificar:
vCenter.networkName
vCenter.datacenter
vCenter.datastore
ouvCenter.storagePolicyName
O valor que especificar é relativo a /.../DATA_CENTER/vm/
.
Se o cluster do vSphere estiver na pasta /.../DATA_CENTER/vm/
, o valor é o nome do cluster do vSphere
Exemplo:
vCenter: cluster: "my-uc-vsphere-cluster"
Caso contrário, o valor é um caminho relativo que inclui uma ou mais pastas, juntamente com o nome do cluster do vSphere.
Exemplo:
vCenter: cluster: "clusters/vsphere-cluster-2"
vCenter.resourcePool
Imutável
String
Predefinição: herdar do cluster de administrador
Um pool de recursos do vCenter para as VMs do cluster de utilizadores.
Se quiser usar o conjunto de recursos predefinido, defina esta opção como
VSPHERE_CLUSTER/Resources
.
Exemplo:
vCenter: resourcePool: "my-uc-vsphere-cluster/Resources"
O valor que especificar é relativo a
/.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
Se o conjunto de recursos for um filho direto de
/.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
o valor é o nome do conjunto de recursos.
Exemplo:
vCenter: resourcePool: "my-uc-resource-pool"
Caso contrário, o valor é um caminho relativo que tem dois ou mais conjuntos de recursos.
Exemplo:
vCenter: resourcePool: "uc-resource-pool-1/uc-resource-pool-2"
vCenter.datastore
Opcional
Imutável
String
Predefinição: herdar do cluster de administrador
O nome de um repositório de dados do vSphere para o seu cluster de utilizadores.
O valor especificado tem de ser um nome, não um caminho. Não inclua pastas no valor.
Exemplo:
vCenter: datastore: "my-datastore"
Se especificar um valor para este campo, não especifique um valor para
vCenter.storagePolicyName
. O campo vCenter.datastore
é imutável, exceto quando o define como uma string vazia quando migra um arquivo de dados para a gestão baseada em políticas de armazenamento (SPBM).
vCenter.storagePolicyName
Opcional
Imutável
String
O nome de uma política de armazenamento de VMs para os nós do cluster.
Também pode especificar uma política de armazenamento de VMs para os nós num conjunto de nós específico. No entanto, a política especificada aqui aplica-se a qualquer conjunto de nós que não tenha a sua própria política.
Para mais informações, consulte o artigo Configure uma política de armazenamento.
Se especificar um valor para este campo, não especifique um valor para
vCenter.datastore
.
vCenter.caCertPath
Mutável
String
Predefinição: herdar do cluster de administrador
O caminho do certificado da AC para o seu servidor vCenter. Para mais informações, consulte o artigo Obter o certificado da AC do vCenter.
Exemplo:
vCenter: caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert-2.pem"
Para obter informações sobre como atualizar este campo, consulte o artigo Atualize as referências de certificados do vCenter.
vCenter.credentials.fileRef.path
Mutável
String
Predefinição: herdar do cluster de administrador
Se fornecer um valor para preparedSecrets.namespace, não forneça um valor para este campo. Em alternativa, indique um valor para vCenter.credentials.secretRef.version.
O caminho de um ficheiro de configuração de credenciais que contém o nome de utilizador e a palavra-passe da sua conta de utilizador do vCenter. A conta de utilizador tem de ter a função de administrador ou privilégios equivalentes. Consulte os requisitos do vSphere.
Pode usar gkectl update credentials
para atualizar este campo num cluster existente. Para mais informações, consulte o artigo Rotação das chaves da conta de serviço.
Para ver informações sobre como atualizar as credenciais do vCenter, consulte o artigo Atualizar credenciais do cluster.
Exemplo:
vCenter: credentials: fileRef: path: "my-config-directory/my-credentials-2.yaml"
vCenter.credentials.fileRef.entry
Mutável
String
Predefinição: herdar do cluster de administrador
O nome do bloco de credenciais no ficheiro de configuração de credenciais que contém o nome de utilizador e a palavra-passe da sua conta de utilizador do vCenter.
Exemplo:
vCenter: credentials: fileRef: entry: "vcenter-credentials-2"
vCenter.credentials.secretRef.version
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"
Se fornecer um valor para preparedSecrets.namespace, preencha este campo. Caso contrário, remova este campo ou deixe-o comentado.
A versão de um segredo preparado no cluster de administrador que contém o nome de utilizador e a palavra-passe para a instância do vCenter Server que pretende usar para este cluster de utilizador.
Exemplo:
vCenter: credentials: secretRef: version: "1"
vCenter.folder
Imutável
String
Predefinição: herdar do cluster de administrador
O caminho relativo de uma pasta do vSphere que já criou. Esta pasta vai conter as VMs do cluster de utilizadores.
Se não especificar um valor, as VMs do cluster de utilizadores são colocadas em
/.../DATA_CENTER/vm/
.
Se especificar um valor, este é relativo a /.../DATA_CENTER/vm/
.
O valor pode ser o nome de uma pasta.
Exemplo:
vCenter: folder: "my-uc-folder"
Em alternativa, o valor pode ser um caminho relativo que inclua mais do que uma pasta.
Exemplo:
vCenter: folder: "folders/folder-2"
componentAccessServiceAccountKeyPath
Mutável
String
Predefinição: herdar do cluster de administrador
O caminho do ficheiro de chave JSON para a sua conta de serviço de acesso a componentes.
Exemplo:
componentAccessServiceAccountKeyPath: "my-key-folder/uc-access-key.json"
componentAccessServiceAccountKey.secretRef.version
Mutável
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"
A versão de um segredo preparado no cluster de administrador que contém uma chave JSON para a sua conta do serviço de acesso a componentes.
Exemplo:
componentAccessServiceAccountKey: secretRef: version: "1"
privateRegistry
Preencha esta secção se o cluster de administrador estiver a usar um registo de contentores privado e quiser que o cluster de utilizadores use um registo privado diferente ou definições diferentes. Se quiser usar um endereço de registo privado diferente, o seu cluster tem de ter o Controlplane V2 ativado. As novas definições são selecionadas durante a criação e a atualização do cluster.
Se quiser usar as mesmas definições que o cluster de administrador, remova esta secção ou deixe-a comentada.
privateRegistry.address
Imutável
String
Predefinição: herdar do cluster de administrador
O endereço IP ou o FQDN (nome do domínio totalmente qualificado) da máquina que executa o seu registo Docker privado.
Exemplos:
privateRegistry: address: "203.0.113.10"
privateRegistry: address: "fqdn.example.com"
privateRegistry.credentials.fileRef.path
Mutável
String
Predefinição: herdar do cluster de administrador
Se planeia usar o segredo preparado para o registo privado, não faculte um valor para este campo. Em alternativa, indique um valor para privateRegistry.credentials.secretRef.version.
O caminho de um ficheiro de configuração de credenciais que contém o nome de utilizador e a palavra-passe de uma conta que o Google Distributed Cloud pode usar para aceder ao seu registo Docker privado.
Exemplo:
privateRegistry: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
privateRegistry.credentials.fileRef.entry
Mutável
String
Predefinição: herdar do cluster de administrador
O nome do bloco de credenciais no seu ficheiro de configuração de credenciais que contém o nome de utilizador e a palavra-passe da sua conta de registo Docker privado.
privateRegistry: credentials: fileRef: entry: "private-registry-creds"
privateRegistry.credentials.secretRef.version
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"
Se fornecer um valor para preparedSecrets.namespace e quiser usar o segredo preparado para um registo privado, preencha este campo. Caso contrário, remova este campo ou deixe-o comentado.
A versão de um segredo preparado no cluster de administrador que contém o nome de utilizador e a palavra-passe para a instância do vCenter Server que pretende usar para este cluster de utilizador.
Exemplo:
privateRegistry: credentials: secretRef: version: "1"
privateRegistry.caCertPath
Mutável
String
Predefinição: herdar do cluster de administrador
Quando o Docker extrai uma imagem do seu registo privado, o registo tem de comprovar a sua identidade apresentando um certificado. O certificado do registo é assinado por uma autoridade de certificação (AC). O Docker usa o certificado da CA para validar o certificado do registo.
Defina este campo para o caminho do certificado da AC.
Exemplo:
privateRegistry: caCertPath: "my-cert-folder/registry-ca.crt"
network
Esta secção contém informações acerca da sua rede de clusters de utilizadores.
network.hostConfig
1,30 e superior
Esta secção contém informações sobre os servidores NTP, os servidores DNS e os domínios de pesquisa DNS usados pelas VMs que são os nós do cluster.
Se infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador (disponível na versão 1.31 e
superior), remova toda esta secção. Caso contrário, esta secção é obrigatória se
uma ou mais das seguintes condições se aplicarem:
- A definição de
network.ipMode.type
éstatic
. enableControlplaneV2
está definido comotrue
ou tem autorização para usartrue
por predefinição. Tenha em atenção que o Controlplane V2 é necessário para novos clusters de utilizadores.
1,29 e inferior
Esta secção contém informações sobre os servidores NTP, os servidores DNS e os domínios de pesquisa DNS usados pelas VMs que são os nós do cluster. Se estiver a usar o balanceador de carga do Seesaw, estas informações também se aplicam às suas VMs do Seesaw.
Esta secção é obrigatória se uma ou mais das seguintes afirmações for verdadeira:
- A definição de
network.ipMode.type
éstatic
. enableControlplaneV2
está definido comotrue
ou tem autorização para usartrue
por predefinição. O equilibrador de carga do Seesaw não é suportado em clusters com o Controlplane V2 ativado.- A definição de
loadBalancer.kind
é"Seesaw"
.
network.hostConfig.dnsServers
Obrigatório
Imutável
Matriz de strings.
O número máximo de elementos na matriz é três.
Os endereços dos servidores DNS para as VMs.
Exemplo:
network: hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2"
network.hostConfig.ntpServers
Obrigatório
Imutável
Matriz de strings
Os endereços dos servidores de tempo que as VMs devem usar.
Exemplo:
network: hostConfig: ntpServers: - "216.239.35.0"
network.hostConfig.searchDomainsForDNS
Imutável
Matriz de strings
Domínios de pesquisa de DNS para os anfitriões usarem. Estes domínios são usados como parte de uma lista de pesquisa de domínios.
Exemplo:
network: hostConfig: searchDomainsForDNS: - "my.local.com"
network.ipMode.type
Imutável
String
Preenchido previamente: "static"
Predefinição: "dhcp"
Se quiser que os nós do cluster obtenham o respetivo endereço IP a partir de um servidor DHCP, defina esta opção como "dhcp"
. Se quiser que os nós do cluster tenham endereços IP estáticos
escolhidos a partir de uma lista que fornecer, defina esta opção como "static"
. Se enableControlplaneV2
estiver definido como true
, esta definição aplica-se apenas aos nós de trabalho.
Exemplo:
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
Este campo é obrigatório se network.ipMode.type
= static
ou se
infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador.
Imutável
String
O caminho absoluto ou relativo do ficheiro de blocos de IP para o seu cluster.
Exemplo:
network: ipMode: ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"
network.serviceCIDR
Imutável
String
Pré-preenchido: "10.96.0.0/20"
>
Um intervalo de endereços IP, no formato CIDR, a ser usado para os serviços no seu cluster. Tem de ser, pelo menos, um intervalo /24.
Exemplo:
network: serviceCIDR: "10.96.0.0/20"
network.podCIDR
Imutável
String
Pré-preenchido: "192.168.0.0/16"
Predefinição: "192.168.0.0/16"
Um intervalo de endereços IP, no formato CIDR, a usar para os pods no seu cluster. Tem de ser, pelo menos, um intervalo /18.
Exemplo:
network: podCIDR: "192.168.0.0/16"
O intervalo de serviço não pode sobrepor-se ao intervalo de agrupamento.
Os intervalos de serviços e de pods não podem sobrepor-se a nenhum endereço fora do cluster ao qual quer aceder a partir do interior do cluster.
Por exemplo, suponhamos que o seu intervalo de serviços é 10.96.232.0/24 e o seu intervalo de pods é 192.168.0.0/16. Todo o tráfego enviado de um pod para um endereço num desses intervalos é tratado como no cluster e não chega a nenhum destino fora do cluster.
Em particular, os intervalos de serviços e pods não podem sobrepor-se a:
Endereços IP de nós em qualquer cluster
Endereços IP usados por máquinas do balanceador de carga
VIPs usados por nós do plano de controlo e balanceadores de carga
Endereço IP dos servidores vCenter, servidores DNS e servidores NTP
Recomendamos que os intervalos de serviços e pods estejam no espaço de endereços RFC 1918.
Segue-se um motivo para a recomendação de usar endereços RFC 1918. Suponhamos que o intervalo do seu pod ou serviço contém endereços IP externos. Qualquer tráfego enviado de um pod para um desses endereços externos é tratado como tráfego no cluster e não chega ao destino externo.
network.vCenter.networkName
Se infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador, remova este campo.
Caso contrário, este campo é obrigatório se vCenter.address
for diferente do endereço do vCenter que está a usar para o cluster de administrador.
Imutável
String
O nome da rede vSphere para os nós do cluster de utilizadores.
Exemplo:
network: vCenter: networkName: "my-network"
Se o nome contiver um carater especial, tem de usar uma sequência de escape para o mesmo.
Carateres especiais | Sequência de escape |
---|---|
Barra (/ ) |
%2f |
Barra invertida (\ ) |
%5c |
Sinal de percentagem (% ) |
%25 |
Se o nome da rede não for exclusivo no seu centro de dados, pode especificar um caminho completo.
Exemplo:
network: vCenter: networkName: "/my-uc-datacenter/network/my-network"
network.additionalNodeInterfaces
Se definir multipleNetworkInterfaces
como true
, preencha esta secção.
Caso contrário, remova esta secção ou deixe-a comentada.
Imutável
Uma matriz de objetos, cada um dos quais descreve uma interface de rede que pode ser usada em todos ou alguns dos nós do cluster.
network.additionalNodeInterfaces[i].networkName
Obrigatório se multipleNetworkInterfaces
= true
Imutável
String
O nome da rede vSphere à qual esta interface de nó adicional se vai ligar.
Exemplo:
network: additionalNodeInterfaces: - networkName: "my-node-interface-1"
network.additionalNodeInterfaces[i].type
Obrigatório se multipleNetworkInterfaces
= true
Imutável
String
Exemplo:
network: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static"
network.additionalNodeInterfaces[i].ipBlockFilePath
Obrigatório se network.additionalNodeInterfaces[i].type
= static
Imutável
String
O caminho de um ficheiro de bloco de IP que contém endereços IP a serem usados para esta interface de rede nos nós que têm esta interface de rede.
Exemplo:
network: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static" ipBlockFilePath: "my-ipblock-file-1"
network.controlPlaneIPBlock
Se infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador, remova toda esta secção.
Caso contrário, a inclusão desta secção depende do valor que definir em
enableControlplaneV2
:
- Se
enableControlplaneV2
fortrue
, preencha esta secção. - Se
enableControlplaneV2
forfalse
, remova esta secçã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
Immutable
Matriz de objetos, cada um com um endereço IP e um nome do anfitrião. O nome do anfitrião é obrigatório para a migração do plano de controlo V2 e opcional nos restantes casos.
Para um cluster de utilizadores de alta disponibilidade (HA), a matriz tem três elementos. Para um cluster de utilizadores não HA, a matriz tem um elemento.
Exemplo:
network: controlPlaneIPBlock: ips: - ip: "172.16.21.6" hostname: "cp-vm-1" - ip: "172.16.21.7" hostname: "cp-vm-2" - ip: "172.16.21.8" hostname: "cp-vm-3"
loadBalancer
Esta secção contém informações acerca do equilibrador de carga para o cluster de utilizadores.
loadBalancer.vips.controlPlaneVIP
Obrigatório
Imutável
String
O endereço IP que escolheu configurar no equilibrador de carga para o servidor da API Kubernetes do cluster de utilizadores.
Exemplo:
loadBalancer: vips: controlplaneVIP: "203.0.113.3"
loadBalancer.vips.ingressVIP
Obrigatório
Imutável
String
O endereço IP que escolheu para configurar no balanceador de carga para o proxy de entrada.
Exemplo:
loadBalancer: vips: ingressVIP: "203.0.113.4"
loadBalancer.kind
Especifique o tipo de balanceador de carga a usar.
1.32 e superior
Obrigatório
Imutável
String
Pré-preenchido: "MetalLB"
O tipo de equilibrador de carga que pode usar depende de configurar o cluster para usar domínios de topologia. Assume-se que o cluster usa domínios de topologia se o campo infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador.
Com domínios de topologia: defina esta opção como
"ManualLB"
. Tem de configurar um equilibrador de carga de terceiros (como o F5 BIG-IP ou o Citrix) se quiser usar domínios de topologia.Sem domínios de topologia: defina esta opção como
"ManualLB"
ou"MetalLB"
. Use"ManualLB"
se tiver um equilibrador de carga de terceiros ou"MetalLB"
para a nossa solução integrada. Opcionalmente, pode configurar um tipo diferente de equilibrador de carga para o tráfego do plano de controlo. Para mais informações, consultemasterNode.controlPlaneLoadBalancer
.
1.31
Obrigatório
Imutável
String
Pré-preenchido: "MetalLB"
O tipo de equilibrador de carga que pode usar depende de configurar o cluster para usar domínios de topologia. Assume-se que o cluster usa domínios de topologia se o campo infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador.
Com domínios de topologia: defina esta opção como
"ManualLB"
. Tem de configurar um equilibrador de carga de terceiros (como o F5 BIG-IP ou o Citrix) se quiser usar domínios de topologia.Sem domínios de topologia: defina esta opção como
"ManualLB"
ou"MetalLB"
. Use"ManualLB"
se tiver um equilibrador de carga de terceiros ou"MetalLB"
para a nossa solução integrada.
1,30
Obrigatório
Imutável
String
Pré-preenchido: "MetalLB"
Defina esta opção como "ManualLB"
ou "MetalLB"
. Use "ManualLB"
se tiver um balanceador de carga de terceiros (como F5 BIG-IP ou Citrix) ou "MetalLB"
para a nossa solução integrada.
Embora possa atualizar um cluster que tenha kind
definido como "F5BigIP"
ou
"Seesaw"
, não pode criar novos clusters. Para obter informações sobre a migração de configurações de
equilíbrio de carga, consulte o artigo
Planeie a migração de clusters para funcionalidades recomendadas.
Exemplo:
loadBalancer:
kind: "MetalLB"
1.29 e anteriores
Obrigatório
Imutável
String
Pré-preenchido: "MetalLB"
Defina esta opção como "ManualLB"
, "F5BigIP"
, "Seesaw"
ou "MetalLB"
.
Para ativar o Dataplane V2 e o Controlplane V2, recomendamos que use "ManualLB"
se tiver um equilibrador de carga de terceiros (como o F5 BIG-IP ou o Citrix) ou "MetalLB"
para a nossa solução integrada.
Exemplo:
loadBalancer:
kind: "MetalLB"
Quando cria clusters de utilizadores através da Google Cloud consola, da
CLI gcloud ou do Terraform, o tipo de equilibrador de carga para o cluster de administrador e os respetivos clusters de utilizadores tem de ser o mesmo. A única exceção é se o cluster de administrador usar o Seesaw. Nesse caso, os clusters de utilizador podem usar o MetalLB. Se quiser que os clusters de administrador e de utilizador usem diferentes tipos de equilibradores de carga, tem de criar clusters de utilizador com a ferramenta de linha de comandos gkectl
.
loadBalancer.manualLB
Se definir loadbalancer.kind
como "manualLB"
, preencha esta secção. Caso contrário,
remova esta secção ou deixe-a comentada.
loadBalancer.manualLB.ingressHTTPNodePort
Obrigatório se loadBalancer.kind
= ManualLB
(consulte a nota de versão)
Imutável
Número inteiro
Pré-preenchido: 30243
O proxy de entrada num cluster de utilizador é exposto por um
serviço Kubernetes do tipo LoadBalancer
.
O serviço tem uma
ServicePort
para HTTP. Escolha um valor nodePort
para o HTTP ServicePort e defina este campo para o valor nodePort
.
Nota sobre a versão: na versão 1.30 e superior, as portas dos 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
Número inteiro
Pré-preenchido: 30879
O proxy de entrada num cluster de utilizadores é exposto por um serviço do tipo LoadBalancer. O serviço tem um ServicePort para HTTPS. Escolha um valor para o ServicePort HTTPS e defina este campo para o valor.nodePort
nodePort
Nota sobre a versão: na versão 1.30 e superior, as portas dos 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
Número inteiro
Pré-preenchido: 30562
O servidor da API Kubernetes de um cluster de utilizador é executado no cluster de administrador e é exposto por um serviço do tipo LoadBalancer
. Tem de escolher um valor para o serviço.nodePort
Defina este campo para o valor nodePort
.
Exemplo:
loadBalancer: manualLB: controlPlaneNodePort: 30968
loadBalancer.manualLB.konnectivityServerNodePort
Obrigatório se loadBalancer.kind
= ManualLB
e
enableControlplaneV2
= false
Imutável
Número inteiro
Preenchido previamente: 30563
O servidor da API Kubernetes de um cluster de utilizador que usa o kubeception é executado no cluster de administrador e é exposto por um serviço do tipo LoadBalancer
. O servidor Konnectivity reutiliza este serviço com um valor nodePort
diferente. Tem de escolher um valor nodePort
para o servidor Konnectivity.
Defina este campo com o valor nodePort
para o servidor Konnectivity.
Exemplo:
loadBalancer: manualLB: konnectivityServerNodePort: 30969
loadBalancer.f5BigIP
1,30 e superior
Na versão 1.30 e superior, o valor "F5BigIP"
não é permitido para loadbalancer.kind
para novos clusters de utilizadores. Se a secção loadBalancer.f5BigIP
estiver no ficheiro de configuração, remova-a ou comente-a.
Pode continuar a usar o seu equilibrador de carga F5 BIG-IP com novos clusters de utilizadores, mas a configuração é diferente. Para ver detalhes da configuração, consulte o artigo Ativar o modo de equilíbrio de carga manual.
Se um cluster existente tiver esta secção configurada, as atualizações para a versão 1.32 são bloqueadas. Tem de migrar os seus clusters para as funcionalidades recomendadas antes de atualizar para a versão 1.32.
1,29 e inferior
Se definir loadbalancer.kind
como "F5BigIP"
, preencha esta secção. Caso contrário,
remova esta secção ou deixe-a comentada.
Para ativar funcionalidades novas e avançadas, recomendamos que configure o equilíbrio de carga manual para o seu equilibrador de carga F5 BIG-IP. Para ativar o equilíbrio de carga manual, defina loadbalancer.kind
como"ManualLB"
e preencha a secção loadBalancer.manualLB
. Para mais
informações, consulte o artigo
Ativar o modo de equilíbrio de carga manual.
Se tiver um equilibrador de carga F5-BIG-IP existente e a configuração do cluster usar esta secção, após a atualização para a versão 1.29 ou superior, recomendamos que migre para o equilíbrio de carga manual.
loadBalancer.f5BigIP.address
1,30 e superior
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= "F5BigIP"
String
O endereço do seu equilibrador de carga F5 BIG-IP.
Exemplo:
loadBalancer:
f5BigIP:
address: "203.0.113.2"
1,29 e inferior
Obrigatório se loadBalancer.kind
= "F5BigIP"
String
O endereço do seu equilibrador de carga F5 BIG-IP.
Exemplo:
loadBalancer:
f5BigIP:
address: "203.0.113.2"
loadBalancer.f5BigIP.credentials.fileRef.path
1,30 e superior
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= "F5BigIP"
String
O caminho de um ficheiro de credenciais que contém o nome de utilizador e a palavra-passe de uma conta que o Google Distributed Cloud pode usar para se ligar ao seu equilibrador de carga F5 BIG-IP.
A conta de utilizador tem de ter uma função de utilizador com autorizações suficientes para configurar e gerir o equilibrador de carga. A função de administrador ou a função de administrador de recursos é suficiente.
Para ver informações sobre como atualizar as suas credenciais do F5 BIG-IP, consulte o artigo Atualizar credenciais do cluster.
Exemplo:
loadBalancer:
f5BigIP:
credentials:
fileRef:
path: "my-config-folder/user-creds.yaml"
1,29 e inferior
Obrigatório se loadBalancer.kind
= "F5BigIP"
String
O caminho de um ficheiro de credenciais que contém o nome de utilizador e a palavra-passe de uma conta que o Google Distributed Cloud pode usar para se ligar ao seu equilibrador de carga F5 BIG-IP.
A conta de utilizador tem de ter uma função de utilizador com autorizações suficientes para configurar e gerir o equilibrador de carga. A função de administrador ou a função de administrador de recursos é suficiente.
Para ver informações sobre como atualizar as suas credenciais do F5 BIG-IP, consulte o artigo Atualizar credenciais do cluster.
Exemplo:
loadBalancer:
f5BigIP:
credentials:
fileRef:
path: "my-config-folder/user-creds.yaml"
loadBalancer.f5BigIP.credentials.fileRef.entry
1,30 e superior
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= "F5BigIP"
String
O nome do bloco de credenciais no ficheiro de configuração de credenciais que contém o nome de utilizador e a palavra-passe da sua conta F5 BIG-IP.
Exemplo:
loadBalancer:
f5BigIP:
credentials:
fileRef:
entry: "f5-creds"
1,29 e inferior
Obrigatório se loadBalancer.kind
= "F5BigIP"
String
O nome do bloco de credenciais no ficheiro de configuração de credenciais que contém o nome de utilizador e a palavra-passe da sua conta F5 BIG-IP.
Exemplo:
loadBalancer:
f5BigIP:
credentials:
fileRef:
entry: "f5-creds"
loadBalancer.f5BigIP.partition
1,30 e superior
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= "F5BigIP"
String
O nome de uma partição BIG-IP que criou para o seu cluster de utilizadores.
Exemplo:
loadBalancer:
f5BigIP:
partition: "my-f5-user-partition"
1,29 e inferior
Obrigatório se loadBalancer.kind
= "F5BigIP"
String
O nome de uma partição BIG-IP que criou para o seu cluster de utilizadores.
Exemplo:
loadBalancer:
f5BigIP:
partition: "my-f5-user-partition"
loadBalancer.f5BigIP.snatPoolName
1,30 e superior
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= "F5BigIP"
e estiver a usar SNAT
String
O nome do seu conjunto de SNAT.
Exemplo:
loadBalancer:
f5BigIP:
snatPoolName: "my-snat-pool"
1,29 e inferior
Obrigatório se loadBalancer.kind
= "F5BigIP"
e estiver a usar SNAT
String
O nome do seu conjunto de SNAT.
Exemplo:
loadBalancer:
f5BigIP:
snatPoolName: "my-snat-pool"
loadBalancer.seesaw
1,30 e superior
Na versão 1.30 e superior, o valor "Seesaw"
não é permitido para loadbalancer.kind
para novos clusters de utilizadores porque este equilibrador de carga não é suportado com funcionalidades novas e avançadas. Se a secção loadBalancer.seesaw
estiver no ficheiro de configuração, remova-a ou comente-a.
Em alternativa, pode configurar o balanceador de carga MetalLB incluído. Para ativar o balanceador de carga do MetalLB, defina loadbalancer.kind
como "MetalLB"
e preencha a secção loadBalancer.metalLB
. Para mais
informações, consulte o artigo
Balanceamento de carga integrado com o MetalLB.
1,29 e inferior
Se definir loadbalancer.kind
como "Seesaw"
, preencha esta secção. Caso contrário,
remova esta secção ou deixe-a comentada.
Tenha em atenção as seguintes limitações com o equilibrador de carga SeeSaw:
- Se um cluster de administrador de alta disponibilidade gerir este cluster de utilizador, este não pode usar o balanceador de carga do Seesaw.
- Os clusters de utilizadores com o Controlplane V2 ativado não podem usar o equilibrador de carga do Seesaw.
Para usar estas funcionalidades, recomendamos que configure o balanceador de carga do MetalLB. Para ativar o balanceador de carga do MetalLB, defina loadbalancer.kind
como"MetalLB"
e preencha a secção loadBalancer.metalLB
. Para mais
informações, consulte o artigo
Balanceamento de carga integrado com o MetalLB.
loadBalancer.seesaw.ipBlockFilePath
1,30 e superior
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= Seesaw
Imutável
String
O caminho do ficheiro de bloco de IP para as suas VMs do Seesaw.
Exemplo:
loadBalancer:
seesaw:
ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"
1,29 e inferior
Obrigatório se loadBalancer.kind
= Seesaw
Imutável
String
O caminho do ficheiro de bloco de IP para as suas VMs do Seesaw.
Exemplo:
loadBalancer:
seesaw:
ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"
loadBalancer.seesaw.vrid
1,30 e superior
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= Seesaw
Imutável
Número inteiro
Valores possíveis: 1 a 255
Pré-preenchido: 0
O identificador do router virtual da sua VM do Seesaw. Este identificador, que é um número inteiro à sua escolha, tem de ser exclusivo numa VLAN.
Exemplo:
loadBalancer:
seesaw:
vrid: 125
1,29 e inferior
Obrigatório se loadBalancer.kind
= Seesaw
Imutável
Número inteiro
Valores possíveis: 1 a 255
Pré-preenchido: 0
O identificador do router virtual da sua VM do Seesaw. Este identificador, que é um número inteiro à sua escolha, tem de ser exclusivo numa VLAN.
Exemplo:
loadBalancer:
seesaw:
vrid: 125
loadBalancer.seesaw.masterIP
1,30 e superior
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= Seesaw
Imutável
String
O endereço IP virtual configurado na VM principal do Seesaw.
Exemplo:
loadBalancer:
seesaw:
masterIP: 172.16.20.21
1,29 e inferior
Obrigatório se loadBalancer.kind
= Seesaw
Imutável
String
O endereço IP virtual configurado na VM principal do Seesaw.
Exemplo:
loadBalancer:
seesaw:
masterIP: 172.16.20.21
loadBalancer.seesaw.cpus
1,30 e superior
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= Seesaw
Mutável
Número inteiro
Pré-preenchido: 4
O número de CPUs para cada uma das suas VMs do Seesaw.
Exemplo:
loadBalancer:
seesaw:
cpus: 8
1,29 e inferior
Obrigatório se loadBalancer.kind
= Seesaw
Mutável
Número inteiro
Pré-preenchido: 4
O número de CPUs para cada uma das suas VMs do Seesaw.
Exemplo:
loadBalancer:
seesaw:
cpus: 8
loadBalancer.seesaw.memoryMB
1,30 e superior
Não permitido para novos clusters
Obrigatório se loadBalancer.kind
= Seesaw
Mutável
Número inteiro
Pré-preenchido: 3072
O número de mebibytes de memória para cada uma das suas VMs do Seesaw.
Exemplo:
loadBalancer:
seesaw:
memoryMB: 8192
Nota: este campo especifica o número de mebibytes de memória e não o número de megabytes. Um mebibyte é 220 = 1 048 576 bytes. Um megabyte é 106 = 1 000 000 bytes.
1,29 e inferior
Obrigatório se loadBalancer.kind
= Seesaw
Mutável
Número inteiro
Pré-preenchido: 3072
O número de mebibytes de memória para cada uma das suas VMs do Seesaw.
Exemplo:
loadBalancer:
seesaw:
memoryMB: 8192
Nota: este campo especifica o número de mebibytes de memória e não o número de megabytes. Um mebibyte é 220 = 1 048 576 bytes. Um megabyte é 106 = 1 000 000 bytes.
loadBalancer.seesaw.vCenter.networkName
1,30 e superior
Não permitido para novos clusters
Imutável
String
Predefinição: igual aos nós do cluster
O nome da rede do vCenter que contém as suas VMs do Seesaw.
Exemplo:
loadBalancer:
seesaw:
vCenter:
networkName: "my-seesaw-network"
1,29 e inferior
Imutável
String
Predefinição: igual aos nós do cluster
O nome da rede do vCenter que contém as suas VMs do Seesaw.
Exemplo:
loadBalancer:
seesaw:
vCenter:
networkName: "my-seesaw-network"
loadBalancer.seesaw.enableHA
1,30 e superior
Não permitido para novos clusters
Imutável
Relevante se loadBalancer.kind
= Seesaw
Booleano
Preenchido previamente: false
Predefinição: false
Se quiser criar um balanceador de carga Seesaw de alta disponibilidade (AD), defina esta opção como true
. Caso contrário, defina este valor como false
. Um balanceador de carga do Seesaw de HA usa um
par(principal, cópia de segurança)
de VMs.
Exemplo:
loadBalancer:
seesaw:
enableHA: true
1,29 e inferior
Imutável
Relevante se loadBalancer.kind
= Seesaw
Booleano
Preenchido previamente: falso
Predefinição: falso
Se quiser criar um balanceador de carga Seesaw de alta disponibilidade (AD), defina esta opção como true
. Caso contrário, defina este valor como false
. Um balanceador de carga do Seesaw de HA usa um
par(principal, cópia de segurança)
de VMs.
Exemplo:
loadBalancer:
seesaw:
enableHA: true
loadBalancer.seesaw.disableVRRPMAC
1,30 e superior
Não permitido para novos clusters
Imutável
Relevante se loadBalancer.kind
= Seesaw
Booleano
Pré-preenchido: true
Predefinição: true
Se estiver definido como true
(recomendado), o balanceador de carga do Seesaw não usa a aprendizagem de MAC para a comutação por falha. Em alternativa, usa o ARP gratuito.
Se este campo estiver definido como false
, o equilibrador de carga do Seesaw usa a aprendizagem de MAC. Se estiver a usar o vSphere 7 ou posterior e tiver um balanceador de carga Seesaw de alta disponibilidade, este campo tem de estar definido como true
.
Exemplo:
loadBalancer:
seesaw:
disableVRRPMAC: true
1,29 e inferior
Imutável
Relevante se loadBalancer.kind
= Seesaw
Booleano
Pré-preenchido: verdadeiro
Predefinição: verdadeiro
Se definir esta opção como true
(recomendado), o balanceador de carga do Seesaw não usa a
aprendizagem de MAC
para a comutação por falha. Em alternativa, usa o ARP gratuito.
Se definir esta opção como false
, o equilibrador de carga do Seesaw usa a aprendizagem de MAC. Se estiver a usar o vSphere 7 ou posterior e tiver um equilibrador de carga Seesaw de alta disponibilidade, tem de definir esta opção como true
.
Exemplo:
loadBalancer:
seesaw:
disableVRRPMAC: true
loadBalancer.metalLB
Se definir loadbalancer.kind
como "MetalLB"
, preencha esta secção. Caso contrário,
remova esta secção ou deixe-a comentada.
Para mais informações, consulte o artigo Equilíbrio de carga integrado com o MetalLB.
loadBalancer.metalLB.addressPools
Obrigatório se loadBalancer.kind
= MetalLB
Mutável (consulte a exceção)
Matriz de objetos, cada um dos quais contém informações sobre um conjunto de endereços a ser usado pelo equilibrador de carga do MetalLB.
1.32 e superior
O comportamento deste campo é o mesmo quando enableAdvancedCluster
está 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. Pode adicionar conjuntos de endereços, mas não é suportado remover conjuntos de endereços de uma matriz de conjuntos de endereços existente.
1.31
O comportamento deste campo depende de enableAdvancedCluster
estar 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 é totalmente mutável. Pode adicionar conjuntos de endereços, mas não é possível remover conjuntos de endereços de uma matriz de conjuntos de endereços existente.
Se o cluster avançado não estiver ativado: a matriz é mutável. Pode adicionar e remover conjuntos de endereços de uma matriz de conjuntos de endereços existente.
1.30 e anterior
Pode adicionar e remover conjuntos de endereços de uma matriz de conjuntos de endereços existente.
loadBalancer.metalLB.addressPools[i].name
Obrigatório se loadBalancer.kind
= MetalLB
Mutável (consulte a exceção)
String
Um nome à sua escolha para o conjunto de endereços.
1.32 e superior
O comportamento deste campo é o mesmo que quando enableAdvancedCluster
está definido como true
(cluster avançado ativado) ou false
(cluster avançado não ativado).
Em ambos os casos, não é possível alterar o nome após a criação do cluster.
1.31
O comportamento deste campo depende de enableAdvancedCluster
estar definido como true
(cluster avançado ativado) ou false
(cluster avançado não ativado):
Se o agrupamento avançado estiver ativado: não é suportada a alteração do nome após a criação do agrupamento.
Se o cluster avançado não estiver ativado: pode alterar o nome do conjunto depois de criar o cluster.
1.30 e anterior
Pode alterar o nome do conjunto após a criação do cluster.
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 das quais é um intervalo de endereços. Cada intervalo tem de estar no formato CIDR ou no formato de intervalo com hífen.
1.32 e superior
O comportamento deste campo é o mesmo que quando enableAdvancedCluster
está definido como true
(cluster avançado ativado) ou false
(cluster avançado não ativado).
Em ambos os casos, pode adicionar endereços a um conjunto de endereços existente, mas não é possível remover endereços.
1.31
O comportamento deste campo depende de enableAdvancedCluster
estar definido como true
(cluster avançado ativado) ou false
(cluster avançado não ativado):
Se o cluster avançado estiver ativado: pode adicionar endereços a um conjunto de endereços existente, mas a remoção de endereços não é suportada.
Se o cluster avançado não estiver ativado: pode adicionar e remover endereços de um conjunto de endereços existente.
1.30 e anterior
Pode adicionar e remover endereços de um conjunto de endereços existente.
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
Mutable
Boolean
Prepopulated: false
Default: false
Se definir esta opção como true
, o controlador MetalLB não atribui endereços IP
que terminem em .0 ou .255 aos serviços. Isto evita o problema de dispositivos de consumo com erros que eliminam por engano o tráfego enviado para esses endereços IP especiais.
Exemplo:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" - "192.0.2.0/26" - "192.0.2.64-192.0.2.72" avoidBuggyIPs: true
loadBalancer.metalLB.addressPools[i].manualAssign
Relevante se loadBalancer.kind
= MetalLB
Mutable
Boolean
Prepopulated: false
Default: false
Se não quiser que o controlador MetalLB atribua automaticamente endereços IP deste conjunto a serviços, defina esta opção como true
. Em seguida, um programador pode criar um serviço do tipo LoadBalancer
e especificar manualmente um dos endereços do conjunto.
Caso contrário, defina este valor como false
.
Exemplo:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" manualAssign: true
enableDataplaneV2
1,30 e superior
Mutável (de false
para true
é permitido)
Booleano
Pré-preenchido: verdadeiro
Predefinição: falso
Este campo controla a interface de rede do contentor (CNI) que o cluster usa. A ativação do Dataplane V2 é necessária para usar o Controlplane V2. Pode alterar o campo de false
para true
para ativar o Dataplane V2, mas não é permitido desativar o Dataplane V2.
Na versão 1.30 e superior, o Dataplane V2 é obrigatório para novos clusters de utilizadores e tem de estar definido como
true
. Para migrar um cluster 1.30 existente para o Dataplane V2, consulte o artigo Migre um cluster de utilizadores para funcionalidades recomendadas.Na versão 1.31, o Dataplane V2 é obrigatório para todos os clusters. Antes de atualizar para a versão 1.31, siga os passos em Ative o Dataplane V2.
As vantagens do Dataplane V2 incluem o seguinte:
O plano de dados V2 oferece-lhe uma interface de rede de contentores (CNI) mais avançada e capaz em comparação com a opção CNI anterior, o Calico. O Calico está no modo de manutenção, o que significa que recebe apenas correções de erros críticos e atualizações de segurança, mas não recebe desenvolvimento de novas funcionalidades. Por outro lado, o Dataplane V2 é ativamente desenvolvido e melhorado, o que garante que tem acesso às mais recentes inovações e capacidades de rede.
O Dataplane V2 é o CNI preferencial para o GKE e outros produtos do Google Distributed Cloud.
1,29 e inferior
Imutável
Booleano
Pré-preenchido: verdadeiro
Predefinição: falso
Se quiser ativar o Dataplane V2,
ou se quiser usar o Controlplane V2,
defina esta opção como true
. Caso contrário, defina este valor como false
.
Recomendamos que ative o Dataplane V2.
Exemplo:
enableDataplaneV2: true
Consulte o artigo Resolva problemas do Google Distributed Cloud NFS e do DataPlane v2 para ver os passos de resolução de problemas.
dataplaneV2.forwardMode
Mutável
String
Valores possíveis: "snat", "dsr"
Pré-preenchido: "snat"
Predefinição: "snat"
O modo de encaminhamento para um cluster que tem o Dataplane V2 ativado.
Com o modo de tradução de endereços de rede de origem (SNAT), um pacote é traduzido por SNAT quando é encaminhado de um nó do equilibrador de carga para um pod de back-end. O Pod não consegue ver o endereço IP de origem original e o pacote de retorno tem de passar pelo nó do balanceador de carga.
Com o modo de retorno direto do servidor (DSR), um pacote retém o seu endereço IP de origem original quando é encaminhado de um nó do equilibrador de carga para um pod de back-end. O pod pode ver o endereço IP de origem original e o pacote de retorno vai diretamente para o cliente sem passar pelo nó do balanceador de carga.
Exemplo:
dataplaneV2: forwardMode: "dsr"
multipleNetworkInterfaces
Imutável
Booleano
Pré-preenchido: false
Predefinição: false
Se infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador, este campo tem de ser
false
.
Se quiser ativar várias interfaces de rede para os pods, defina esta opção como true
.
Para mais informações, consulte o artigo Configure várias interfaces de rede para pods.
Exemplo:
multipleNetworkInterfaces: true
advancedNetworking
Imutável
booleano
Preenchido previamente: false
Predefinição: false
Se planeia criar um
gateway de NAT de saída, defina esta opção como
true
. Caso contrário, defina-o como false
.
Se definir este campo como true
, também tem de definir enableDataplaneV2
como
true
.
Exemplo:
advancedNetworking: true
disableBundledIngress
Defina esta opção como true
se quiser
desativar a entrada agrupada
para o cluster. Caso contrário, defina-o como false
.
Booleano
Mutável
Preenchido previamente: falso
Predefinição: falso
Exemplo:
disableBundledIngress: true
storage.vSphereCSIDisabled
Se quiser desativar a implementação de componentes do CSI do vSphere, defina esta opção como
true
. Caso contrário, defina-o como false
.
Se infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador, este campo tem de ser true
.
Mutável
Booleano
Pré-preenchido: falso
Predefinição: falso
Exemplo:
storage: vSphereCSIDisabled: false
masterNode
Esta secção contém informações acerca dos nós que servem como nós do plano de controlo para este cluster de utilizadores.
masterNode.controlPlaneLoadBalancer
1.32 e superior
Opcionalmente, inclua esta secção para especificar o tipo de equilibrador de carga a usar para o tráfego do plano de controlo no cluster de utilizador. Inclua
masterNode.controlPlaneLoadBalancer.mode
no ficheiro de configuração
se quiser definir explicitamente o tipo de equilibrador de carga a usar em vez de
confiar no valor predefinido. Além disso, tem de definir loadBalancer.kind
no ficheiro de configuração para especificar o tipo de equilibrador de carga a usar para o plano de dados.
masterNode.controlPlaneLoadBalancer.mode
Opcional
Imutável
String
Predefinição: depende de o cluster usar domínios de topologia
O tipo de equilibrador de carga que pode usar depende de configurar o cluster para usar domínios de topologia. Assume-se que o cluster usa domínios de topologia se o campo infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador.
Com domínios de topologia: especifique
"manual"
, que é o valor predefinido. Tem de configurar um equilibrador de carga de terceiros (como o F5 BIG-IP ou o Citrix) se quiser usar domínios de topologia.Sem domínios de topologia: especifique
"manual"
ou"bundled"
. Use"manual"
se tiver um equilibrador de carga de terceiros ou"bundled"
para a nossa solução integrada, que usa keepalived + haproxy em execução nos nós do plano de controlo. O valor predefinido é "bundled"
.
Exemplo:
adminMaster:
controlPlaneLoadBalancer:
mode: "manual"
1,31 e inferior
Esta secção não está disponível. Em alternativa, use
loadBalancer.kind
para especificar o tipo de
equilibrador de carga que o cluster de utilizadores deve usar.
masterNode.cpus
Mutável
Número inteiro
Pré-preenchido: 4
Predefinição: 4
O número de CPUs para cada nó que funciona como um plano de controlo para este cluster de utilizadores.
Exemplo:
masterNode: cpus: 8
masterNode.memoryMB
Mutável
Número inteiro
Pré-preenchido: 8192
Predefinição: 8192
Os mebibytes de memória para cada nó que serve como um plano de controlo para este cluster de utilizadores. Tem de ser um múltiplo de 4.
Exemplo:
masterNode: memoryMB: 8192
Nota: este campo especifica o número de mebibytes de memória e não o número de megabytes. Um mebibyte é 2^20 = 1.048.576 bytes. Um megabyte é 10^6 = 1 000 000 bytes.
masterNode.replicas
Imutável
Número inteiro
Valores possíveis: 1 ou 3
Pré-preenchido: 1
Padrão: 1
O número de nós do plano de controlo para este cluster de utilizadores. Não é possível alterar este número depois de criar o cluster. Se quiser atualizar o número de réplicas mais tarde, tem de recriar o cluster de utilizadores.
Se o campo enableAdvancedCluster
for
true
, tem de definir este campo como 3
. Apenas são suportados clusters de utilizadores de alta disponibilidade (HA) em clusters avançados.
Exemplo:
masterNode: replicas: 3
masterNode.autoResize.enabled
Mutável
Booleano
Pré-preenchido: falso
Predefinição: falso
Defina esta opção como true
para ativar a alteração automática do tamanho dos nós do plano de controlo para o cluster de utilizadores. Caso contrário, defina este valor como false
.
Para mais informações, consulte o artigo Ative a alteração do tamanho dos nós para os nós do plano de controlo de um cluster de utilizadores.
Exemplo:
masterNode: autoResize: enabled: true
masterNode.vsphere
Se infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador, remova toda esta secção.
masterNode.vsphere.datastore
Opcional
Imutável
String
Predefinição: o valor de vCenter.datastore
O armazenamento de dados onde os nós do plano de controlo para este cluster de utilizadores vão ser criados.
O valor especificado tem de ser um nome, não um caminho. Não inclua pastas no valor.
Exemplo:
masterNode: vSphere: datastore: "control-plane-datastore"
Se especificar um valor para este campo, não especifique um valor para
masterNode.vsphere.storagePolicyName
. O campo masterNode.vsphere.datastore
é imutável, exceto quando o define como uma string vazia quando migra um arquivo de dados para a gestão baseada em políticas de armazenamento (SPBM).
masterNode.vsphere.storagePolicyName
Opcional
Imutável
String
Predefinição: o valor de vCenter.storagePolicyName
O nome de uma política de armazenamento de VMs para os nós do plano de controlo.
Para mais informações, consulte o artigo Configure uma política de armazenamento.
Exemplo:
masterNode: vSphere: storagePolicyName: "control-plane-storage-policy"
Se especificar um valor para este campo, não especifique um valor para
masterNode.vsphere.datastore
.
masterNode.topologyDomains
1.32 e superior
Preview
Opcional
Matriz de strings | Permite um elemento ou três elementos diferentes
Imutável
Predefinição: vSphereInfraConfig.defaultTopologyDomain
se especificado no
ficheiro de configuração da infraestrutura do vSphere
Uma matriz de domínios de topologia. Se infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador
(o que indica que o cluster vai usar
domínios de topologia), inclua opcionalmente
este campo. O número de domínios de topologia na matriz determina como os nós do plano de controlo do cluster de utilizador são implementados, da seguinte forma:
- Um elemento: todos os nós do plano de controlo do cluster de utilizadores serão implementados no domínio de topologia especificado.
- Três elementos: cada nó do plano de controlo do cluster de utilizadores é implementado num domínio de topologia diferente (ou seja, um nó por domínio de topologia).
1.31
Preview
Opcional
Matriz de strings | Mas apenas um elemento é suportado
Imutável
Predefinição: vSphereInfraConfig.defaultTopologyDomain
se especificado no
ficheiro de configuração da infraestrutura do vSphere
Uma matriz de domínios de topologia.
Se infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador (que indica que o cluster vai usar
domínios de topologia), inclua este campo opcionalmente. Os nós do plano de controlo do cluster de utilizadores são implementados no domínio de topologia especificado.
1,30 e inferior
Não disponível.
nodePools
Obrigatório
Mutável
Matriz de objetos, cada um dos quais descreve um conjunto de nós.
Para mais informações, consulte o artigo Criar e gerir conjuntos de nós.
nodePools[i].name
Obrigatório
Imutável
String
Um nome à sua escolha para o conjunto de nós. O nome tem de:
- Conter, no máximo, 40 carateres
- conter apenas carateres alfanuméricos minúsculos ou um hífen (
-
) - Começar com um caráter alfabético
- Terminar com um caráter alfanumérico
Exemplo:
nodePools: - name: "my-node-pool-1"
nodePools[i].gkeOnPremVersion
Quando atualiza um cluster de utilizadores, pode especificar que os conjuntos de nós selecionados permaneçam na versão anterior.
Se quiser que este conjunto de nós permaneça na versão anterior, defina esta opção para a versão anterior. Caso contrário, remova este campo ou defina-o como a string vazia. Para mais informações, consulte o artigo Atualize um cluster de utilizadores.
Mutável
String
Predefinição: o cluster gkeOnPremVersion
Exemplo:
nodePools: - name: "my-node-pool" gkeOnPremVersion: "1.13.0-gke.16"
nodePools[i].cpus
Obrigatório
Mutável
Número inteiro
Pré-preenchido: 4
O número de vCPUs para cada nó no conjunto.
Exemplo:
nodePools" - name: "my-node-pool" cpus: 8
nodePools[i].memoryMB
Obrigatório
Mutável
Número inteiro
Pré-preenchido: 8192
Os mebibytes de memória para cada nó no conjunto. Tem de ser um múltiplo de 4.
Exemplo:
nodePools" - name: "my-node-pool" memoryMB: 8192
Nota: este campo especifica o número de mebibytes de memória e não o número de megabytes. Um mebibyte é 2^20 = 1.048.576 bytes. Um megabyte é 10^6 = 1 000 000 bytes.
nodePools[i].replicas
Obrigatório
Mutável
Número inteiro
Pré-preenchido: 3
Valores possíveis: o número total de nós não contaminados em todos os conjuntos de nós no cluster tem de ser, pelo menos, 3.
O número de nós no conjunto.
Exemplo:
nodePools: - name: "my-node-pool" replicas: 5
nodePools[i].bootDiskSizeGB
Mutável
Integer
Preenchido previamente: 40
Predefinição: 40
O tamanho do disco de arranque em gibibytes para cada nó no conjunto.
Exemplo:
nodePools - name: "my-node-pool" bootDiskSizeGB: 40
nodePools[i].osImageType
Mutable
String
Valores possíveis: "ubuntu_containerd", "cos", "ubuntu_cgv2", "cos_cgv2"
Pré-preenchido: "ubuntu_cgv2"
Predefinição: "ubuntu_containerd"
O tipo de imagem do SO a executar nas VMs no node pool.
Na versão 1.32, os pools de nós do Windows Server foram descontinuados e vão ficar indisponíveis na versão 1.33 e superior. O apoio técnico para pools de nós do Windows Server termina a 5 de maio de 2026. Recomendamos que não use "windows" como o tipo de imagem do SO em novos clusters.
Tenha em atenção a seguinte limitação com os clusters avançados:
Versão 1.31: se o campo
enableAdvancedCluster
fortrue
, apenasubuntu-cgroupv2
eubuntu_containerd
são suportados em clusters avançados.Versão 1.32: todos os tipos de imagens de SO, exceto "windows", são suportados em 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 tem de se basear numa ISO do Windows Server 2019 que tenha a etiqueta de idioma/região en-US.
Para mais informações, consulte o manual do utilizador para pools de nós do SO Windows Server.
nodePools[i].labels
Mutable
Mapping
Etiquetas a aplicar a cada objeto de nó do Kubernetes no conjunto.
Exemplo:
nodePools: - name: "my-node-pool" labels: environment: "production" tier: "cache"
O kubelet não pode aplicar etiquetas a si próprio em determinados espaços de nomes por motivos de segurança.
Os espaços de nomes de etiquetas de nós reservados são : kubernetes.io
, k8s.io
e googleapis.com
.
nodePools[i].taints
Mutável
Matriz de objetos, cada um dos quais descreve uma
Kubernetes taint que é aplicada a cada
nó no conjunto. As restrições são pares de chave-valor associados a um effect
. As restrições são usadas com tolerâncias para o agendamento de pods. Especifique uma das seguintes opções para effect
: NoSchedule
, PreferNoSchedule
, NoExecute
.
Exemplo:
nodePools: - name: "my-node-pool" taints: - key: "staging" value: "true" effect: "NoSchedule"
nodePools[i].vsphere
Se infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador, remova todos os campos
na secção nodePools[i].vsphere
, exceto nodePools[i].vsphere.tags
.
nodePools[i].vsphere.datastore
Mutável
String
Predefinição: o valor de vCenter.datastore
O nome do repositório de dados do vCenter onde os nós vão ser criados.
Exemplo:
nodePools: - name: "my-node-pool" vsphere: datastore: "my-datastore"
Se especificar um valor para este campo, não especifique um valor para
nodePools[i].vsphere.storagePolicyName
.
nodePools[i].vsphere.storagePolicyName
Mutável
String
Predefinição: o valor de vCenter.storagePolicyName
O nome de uma política de armazenamento de VMs para os nós no conjunto.
Para mais informações, consulte o artigo Configure uma política de armazenamento.
Exemplo:
nodePools: - name: "my-node-pool" vsphere: storagePolicyName: "my-storage-policy"
Se especificar um valor para este campo, não especifique um valor para
nodePools[i].vsphere.datastore
.
nodePools[i].vsphere.hostgroups
Preencha esta secção se quiser configurar o cluster para usar a afinidade de anfitriões de VMs.
Mutável
Matriz de strings, cada uma das quais é o nome de um
grupo DRS anfitrião.
A matriz só pode ter um elemento.
Exemplo:
nodePools: - name: "my-node-pool" vsphere: hostgroups: - "my-hostgroup"
nodePools[i].vsphere.tags
Mutable
Matriz de objetos, cada um dos quais descreve uma
etiqueta do vSphere
a colocar nas VMs no node pool.
Cada etiqueta tem uma categoria e um nome.
Exemplo:
nodePools: - name: "my-node-pool" vsphere: tags: - category: "purpose" name: "testing"
Se quiser anexar etiquetas a todas as VMs num conjunto de nós, a sua conta de utilizador do vCenter tem de ter estes privilégios de etiquetagem do vSphere:
- Etiquetagem do vSphere.Atribua ou desatribua uma etiqueta do vSphere
- Etiquetagem do vSphere.Atribua ou retire a atribuição de uma etiqueta do vSphere a um objeto (vSphere 7)
nodePools[i].autoscaling
Mutável
Se quiser ativar o dimensionamento automático para o conjunto de nós, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.
nodePools[i].autoscaling.minReplicas
Mutável
Número inteiro
Valores possíveis: superior ou igual a 1
Pré-preenchido: 0
O número mínimo de nós que o escalador automático pode definir para o conjunto.
Exemplo:
nodePools: - name: "my-node-pool" autoscaling: minReplicas: 5
nodePools[i].autoscaling.maxReplicas
Mutável
Número inteiro
Pré-preenchido: 0
O número máximo de nós que o escalador automático pode definir para o conjunto.
Exemplo:
nodePools: - name: "my-node-pool" autoscaling: maxReplicas: 10
nodePools[i].enableLoadBalancer
Relevante se loadBalancer.kind
= "MetalLB"
Mutável
Booleano
Pré-preenchido: verdadeiro
Predefinição: falso
1.32 e superior
O comportamento deste campo é o mesmo quando enableAdvancedCluster
está definido como true
(cluster avançado ativado) ou false
(cluster avançado não ativado).
Em ambos os casos, defina esta opção como true
se quiser permitir que o altifalante do MetalLB seja executado nos nós no conjunto. Caso contrário, defina-o como false
.
1.31
O comportamento deste campo depende de enableAdvancedCluster
estar definido como true
(cluster avançado ativado) ou false
(cluster avançado não ativado):
Se o cluster avançado estiver ativado: este campo não tem efeito porque o orador do MetalLB é sempre executado nos nós do plano de controlo do cluster de utilizador.
Se o cluster avançado não estiver ativado: defina esta opção como
true
se quiser permitir que o altifalante do MetalLB seja executado nos nós no conjunto. Caso contrário, defina-o comofalse
.
1,29 e inferior
Defina esta opção como true
se quiser permitir que o altifalante do MetalLB seja executado nos nós no conjunto. Caso contrário, defina-o como false
.
Para mais informações, consulte o artigo Equilíbrio de carga integrado com o MetalLB.
Exemplo:
nodePools: - name: "my-node-pool" enableLoadBalancer: true
nodePools[i].updateStrategy.rollingUpdate.maxSurge
Pré-visualização
Mutável
Inteiro
Predefinição: 1
O número máximo de máquinas no node pool que podem ser atualizadas em simultâneo durante uma atualização.
nodePools: - name: "my-node-pool" updateStrategy: rollingUpdate: maxSurge: 3
nodePools[i].topologyDomains
1.31 e superior
Se infraConfigFilePath
estiver configurado no ficheiro de configuração do cluster de administrador (que ativa os
domínios de topologia), inclua opcionalmente
este campo.
Matriz de strings | Mas apenas um elemento é suportado
Imutável
Predefinição: vSphereInfraConfig.defaultTopologyDomain
se especificado no
ficheiro de configuração da infraestrutura do vSphere
Os nós neste conjunto de nós são colocados no domínio de topologia especificado por este campo. Para cada conjunto de nós, só é permitido um domínio de topologia. Todos os nós num conjunto de nós são colocados num único domínio de topologia.
1,30 e inferior
Não disponível.
schedulerConfiguration
1.32 e superior
Pré-visualização
Opcional
Ao configurar domínios de topologia, pode configurar opcionalmente configurações adicionais que serão transmitidas para kube-scheduler
.
schedulerConfiguration.defaultTopologySpreadConstraint
Pré-visualização
Opcional
Imutável
Um objeto que define uma regra de restrição de dispersão de topologia predefinida ao nível do cluster
que é aplicada ao agendamento de pods. Quando o cluster de utilizadores é criado com domínios de topologia, se esta regra estiver configurada, o kube-scheduler
usa a chave de topologia predefinida e distribui os pods de implementações, StatefulSets e ReplicaSets por predefinição. A estrutura é a mesma que as restrições predefinidas ao nível do cluster do Kubernetes.
Exemplo:
schedulerConfiguration:
defaultTopologySpreadConstraint:
defaultConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
defaultingType: List
Para obter detalhes, consulte o artigo Restrições predefinidas ao nível do cluster na documentação do Kubernetes.
1,31 e inferior
Não disponível.
antiAffinityGroups.enabled
Mutável
Booleano
Preenchido previamente: verdadeiro
Predefinição: verdadeiro
Se este campo for true
, o Google Distributed Cloud cria regras de anti-afinidade do VMware
Distributed Resource Scheduler
(DRS) para os nós do cluster de utilizador, o que faz com que sejam
distribuídos por, pelo menos, três anfitriões ESXi físicos no seu centro de dados.
Esta funcionalidade requer que o seu ambiente vSphere cumpra as seguintes condições:
O VMware DRS está ativado. O VMware DRS requer a edição vSphere Enterprise Plus.
A sua conta de utilizador do vSphere tem o privilégio
Host.Inventory.Modify cluster
.Estão disponíveis, pelo menos, quatro anfitriões ESXi.
Embora a regra exija que os nós do cluster estejam distribuídos por três anfitriões ESXi, recomendamos vivamente que tenha, pelo menos, quatro anfitriões ESXi disponíveis.
Lembre-se de que, se tiver uma licença vSphere Standard, não pode ativar o VMware DRS.
Se não tiver o DRS ativado ou não tiver, pelo menos, quatro anfitriões onde as VMs do vSphere podem ser agendadas, defina antiAffinityGroups.enabled
como false
.
Tenha em atenção a seguinte limitação com os clusters avançados:
Versão 1.31: se o campo
enableAdvancedCluster
fortrue
, as regras de anti-afinidade não são suportadas em clusters avançados e tem de definirantiAffinityGroups.enabled
comofalse
.Versão 1.32: as regras de antiafinidade são suportadas em clusters avançados.
Exemplo:
antiAffinityGroups: enabled: false
enableVMTracking
Pré-visualização
Imutável
Preenchido previamente: false
Defina esta opção como true
para ativar o acompanhamento de VMs com etiquetas do vSphere. Caso contrário, defina-o como false
.
Para mais informações, consulte o artigo Ative o acompanhamento de VMs.
Exemplo:
enableVMTracking: true
nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate
Mutável
Número inteiro
Valores possíveis: 0 ou 1
Pré-preenchido: 0
Predefinição: 0
O número de node pools a atualizar de cada vez. Um valor de 1
especifica que é possível atualizar um
conjunto de nós de cada vez. Um valor de 0
especifica que é possível atualizar um número ilimitado de pools de nós de cada vez.
Tenha em atenção a seguinte limitação com os clusters avançados:
Versão 1.31: se o campo
enableAdvancedCluster
fortrue
, as políticas de atualização do conjunto de nós não são suportadas em clusters avançados, pelo que deve remover esta secção do ficheiro de configuração.Versão 1.32: as políticas de atualização de node pool são suportadas em clusters avançados.
Exemplo:
nodePoolUpdatePolicy: maximumConcurrentNodePoolUpdate: 1
nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge
Pré-visualização
Mutável
Inteiro
Predefinição: 1
O número máximo de máquinas num node pool que podem ser atualizadas em simultâneo durante uma atualização. Aplica-se a qualquer node pool que não especifique a sua própria estratégia de atualização.
nodePools: - name: "my-node-pool" updateStrategy: rollingUpdate: maxSurge: 3
authentication
Esta secção contém informações sobre como os utilizadores do cluster são autenticados e autorizados.
authentication.oidc
Não use esta secção. Em alternativa, após a criação do cluster, edite o recurso personalizado ClientConfig conforme descrito no artigo Configurar clusters para o Anthos Identity Service com OIDC .
authentication.sni
Se quiser fornecer um certificado de publicação adicional para o servidor da API Kubernetes do cluster, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.
authentication.sni.certPath
String
O caminho de um certificado de serviço para o servidor da API Kubernetes.
Exemplo:
authentication: sni: certPath: "my-cert-folder/example.com.crt"
authentication.sni.keyPath
Opcional
String
O caminho do ficheiro de chave privada do certificado.
Exemplo:
authentication: sni: keyPath: "my-cert-folder/example.com.key"
gkeConnect
Obrigatório
Imutável
Esta secção contém informações sobre o Google Cloud projeto e a conta de serviço que quer usar para registar o seu cluster numa Google Cloud frota.
gkeConnect.projectID
Obrigatório
Imutável
String
O ID do seu projeto anfitrião da frota.
Para novos clusters, este ID do projeto tem de ser igual ao ID definido em stackdriver.projectID
e cloudAuditLogging.projectID
. Se os IDs dos projetos não forem iguais, a criação do cluster falha. Este requisito não é aplicado aos clusters existentes.
Exemplo:
gkeConnect: projectID: "my-fleet-host-project"
gkeConnect.location
Imutável
String
Predefinição: global
A associação de frotas de cada cluster é gerida pelo serviço Fleet (gkehub.googleapis.com
) e pelo serviço Connect (gkeconnect.googleapis.com
). A localização dos serviços pode ser global ou regional. Na versão 1.28 e posteriores, pode especificar opcionalmente a Google Cloud
região em que os serviços Fleet e Connect são executados. Se não for especificado,
são usadas as instâncias globais dos serviços. Tenha em conta o seguinte:
Os clusters de utilizadores criados antes da versão 1.28 são geridos pelos serviços globais Fleet e Connect.
Os novos clusters criados com os clientes da API GKE On-Prem ( Google Cloud consola, CLI do Google Cloud ou Terraform) usam a mesma região que especificar para a API GKE On-Prem.
Para novos clusters, se incluir este campo, a região especificada tem de ser igual à região configurada em
cloudAuditLogging.clusterLocation
,stackdriver.clusterLocation
egkeOnPremAPI.location
. Se as regiões não forem iguais, a criação do cluster falha.
Exemplo:
gkeConnect: location: "us-central1"
gkeConnect.registerServiceAccountKeyPath
Obrigatório
Mutável
String
O caminho do ficheiro de chave JSON para a sua conta de serviço connect-register.
Para atualizar o valor deste campo, use gkectl update cluster
.
Para obter informações sobre como alterar a chave da conta de serviço de associação/registo, consulte o artigo Alternar chaves da conta de serviço.
Exemplo:
gkeConnect: registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"
gkeConnect.registerServiceAccountKey.secretRef.version
Mutável
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"
A versão de um segredo preparado no cluster de administrador que contém uma chave JSON para a sua conta de serviço de registo de ligação.
Exemplo:
gkeConnect: registerServiceAccountKey: secretRef: version: "1"
gkeOnPremAPI
Na versão 1.16 e posteriores, se a API GKE On-Prem estiver ativada no seu
Google Cloud projeto, todos os clusters no projeto são
inscritos na API GKE On-Prem
automaticamente na região configurada em stackdriver.clusterLocation
.
Se quiser inscrever todos os clusters no projeto na API GKE On-Prem, certifique-se de que executa os passos em Antes de começar para ativar e usar a API GKE On-Prem no projeto.
Se não quiser inscrever o cluster na API GKE On-Prem, inclua esta secção e defina
gkeOnPremAPI.enabled
comofalse
. Se não quiser inscrever nenhum cluster no projeto, desativegkeonprem.googleapis.com
(o nome do serviço para a API GKE On-Prem) no projeto. Para ver instruções, consulte o artigo Desativar serviços.
A inscrição do cluster de utilizadores na API GKE On-Prem permite-lhe usar as ferramentas padrão, ou seja, a Google Cloud consola, a CLI do Google Cloud e o Terraform, para gerir o ciclo de vida do cluster. Além disso, a inscrição do cluster permite-lhe
usar a consola ou a CLI gcloud para ver
detalhes do cluster. Por exemplo, pode executar comandos gcloud
para obter informações sobre o seu cluster de utilizadores.
Depois de adicionar esta secção e criar ou atualizar o cluster, se posteriormente remover a secção e atualizar o cluster, a atualização falha.
gkeOnPremAPI.enabled
Mutable
Boolean
Predefinição: true
Por predefinição, o cluster está inscrito na API GKE On-Prem se a API GKE On-Prem estiver ativada no seu projeto. Defina como false
se não quiser inscrever o cluster.
Depois de o cluster ser inscrito na API GKE On-Prem, se precisar de anular a inscrição do cluster, faça a seguinte alteração e, em seguida, atualize o cluster:
gkeOnPremAPI: enabled: false
gkeOnPremAPI.location
Imutável
String
Predefinição: stackdriver.clusterLocation
A Google Cloud região onde a API GKE On-Prem é executada e armazena
metadados do cluster. Escolha uma das regiões suportadas.
Tem de usar a mesma região configurada em gkeConnect.location
, stackdriver.clusterLocation
e cloudAuditLogging.clusterLocation
. Se
gkeOnPremAPI.enabled
for false
, não inclua este campo.
stackdriver
Obrigatório
Mutável
Esta secção contém as configurações necessárias para o Cloud Logging e o Cloud Monitoring.
stackdriver.projectID
Obrigatório para o registo e a monitorização
Imutável
String
O ID do seu projeto anfitrião da frota.
Para novos clusters, este ID do projeto tem de ser igual ao ID definido em gkeConnect.projectID
e cloudAuditLogging.projectID
. Se os IDs dos projetos não forem iguais, a criação do cluster falha. Este requisito não é aplicado aos clusters existentes.
Se necessário, pode configurar um router de registos neste projeto para encaminhar registos para contentores de registos noutro projeto. Para ver informações sobre como configurar o Log Router, consulte o artigo Destinos suportados.
Exemplo:
stackdriver: projectID: "my-fleet-host-project"
stackdriver.clusterLocation
Obrigatório para registo e monitorização
Imutável
String
Pré-preenchido: "us-central1"
A Google Cloud região onde quer encaminhar e armazenar as métricas do Cloud Monitoring. Recomendamos que escolha uma região próxima do seu centro de dados no local.
Especifica o encaminhamento de registos e a localização de armazenamento do Cloud Logging na configuração do Log Router. Para mais informações sobre o encaminhamento de registos, consulte o artigo Vista geral do encaminhamento e armazenamento.
O operador do Stackdriver (stackdriver-operator
) anexa o valor deste campo a cada entrada de registo e métrica antes de serem encaminhadas para Google Cloud. Estas etiquetas anexadas podem ser úteis para filtrar os registos e as métricas no Explorador de registos e no Explorador de métricas, respetivamente.
Para novos clusters, se incluir as secções gkeOnPremAPI
e cloudAuditLogging
no ficheiro de configuração, a região que definir aqui tem de ser a mesma que definir em gkeConnect.location
, gkeOnPremAPI.location
e cloudAuditLogging.clusterLocation
. Se as regiões não forem as mesmas, a criação de clusters falha.
Exemplo:
stackdriver: clusterLocation: "us-central1"
stackdriver.enableVPC
Imutável
Booleano
Preenchido previamente: falso
Se a rede do cluster for controlada por uma VPC, defina esta opção como true
.
Isto garante que toda a telemetria flui através dos endereços IP restritos da Google.
Caso contrário, defina este valor como false
.
Exemplo:
stackdriver: enableVPC: false
stackdriver.serviceAccountKeyPath
Obrigatório para o registo e a monitorização
Mutável
String
O caminho do ficheiro de chave JSON para a sua conta de serviço de registo e monitorização.
Para atualizar o valor deste campo, use gkectl update cluster
.
Para obter informações sobre como alterar a chave da conta de serviço de monitorização de registos, consulte o artigo Alternar chaves de contas de serviço.
Exemplo:
stackdriver: serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
stackdriver.serviceAccountKey.secretRef.version
Mutável
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"
A versão de um segredo preparado no cluster de administrador que contém uma chave JSON para a sua conta do serviço de monitorização de registos.
Exemplo:
stackdriver: serviceAccountKey: secretRef: version: "1"
stackdriver.disableVsphereResourceMetrics
Mutável
Booleano
Pré-preenchido: falso
Predefinição: falso
Defina esta opção como true
para desativar a recolha de métricas do vSphere.
Caso contrário, defina-o como false
.
Exemplo:
stackdriver: disableVsphereResourceMetrics: true
usageMetering
1.32 e superior
A funcionalidade de medição da utilização não é suportada na versão 1.32 e superiores. Não inclua esta secção quando criar novos clusters. No entanto, os clusters existentes que usam esta funcionalidade continuam a funcionar. Em alternativa, recomendamos que use o painel de controlo predefinido Medição da utilização do cluster do Anthos para compreender a utilização de recursos a diferentes níveis. Contacte o Cloud Customer Care se a alternativa não satisfizer os seus exemplos de utilização.
1.30 e 1.31
Recomendamos que não use esta funcionalidade de pré-visualização quando criar novos clusters. No entanto, os clusters existentes que usam esta funcionalidade continuam a funcionar. Em alternativa, recomendamos que use o painel de controlo predefinido, Anthos Cluster Utilization Metering, para compreender a utilização de recursos a diferentes níveis.
Se o campo enableAdvancedCluster
for
true
, remova esta secção. A medição da utilização não é suportada em clusters avançados.
1,29 e inferior
Pré-visualizar
Imutável
Recomendamos que não use esta funcionalidade de pré-visualização quando criar novos clusters. No entanto, os clusters existentes que usam esta funcionalidade continuam a funcionar. Em alternativa, recomendamos que use o painel de controlo predefinido, Anthos Cluster Utilization Metering, para compreender a utilização de recursos a diferentes níveis.
usageMetering.bigQueryProjectID
Pré-visualização
Obrigatório para a medição da utilização
Imutável
String
O ID do Google Cloud projeto onde quer armazenar os dados de medição da utilização
Exemplo:
usageMetering: bigQueryProjectID: "my-bq-project"
usageMetering.bigQueryDatasetID
Pré-visualização
Obrigatório para a medição da utilização
Imutável
String
O ID do conjunto de dados do BigQuery onde quer armazenar os dados de medição da utilização. Exemplo:
usageMetering: bigQueryDatasetID: "my-bq-dataset"
usageMetering.bigQueryServiceAccountKeyPath
Pré-visualização
Obrigatório para a medição da utilização
Imutável
String.
O caminho do ficheiro de chave JSON para a sua conta de serviço do BigQuery.
Para atualizar o valor deste campo, use gkectl update cluster
.
Para obter informações sobre como alterar a chave da conta de serviço do BigQuery, consulte o artigo Rotação das chaves da conta de serviço.
Exemplo:
usageMetering: bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"
usageMetering.bigQueryServiceAccountKey.secretRef.version
Mutável
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"
A versão de um segredo preparado no cluster de administrador que contém uma chave JSON para a sua conta de serviço do BigQuery.
Exemplo:
gkeConnect: bigQueryServiceAccountKey: secretRef: version: "1"
usageMetering.enableConsumptionMetering
Pré-visualização
Obrigatório para a medição da utilização
Imutável
Booleano
Pré-preenchido: falso
Defina esta opção como true
se quiser ativar a medição baseada no consumo.
Caso contrário, defina este valor como falso.
Exemplo:
usageMetering: enableConsumptionMetering: true
cloudAuditLogging
Se quiser integrar os registos de auditoria do servidor da API Kubernetes do seu cluster com os registos de auditoria do Cloud, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.
cloudAuditLogging.projectID
Obrigatório para registos de auditoria do Cloud
Imutável
String
O ID do seu projeto anfitrião da frota.
Para novos clusters, este ID do projeto tem de ser igual ao ID definido em gkeConnect.projecID
e stackdriver.projectID
. Se os IDs dos projetos não forem iguais, a criação do cluster falha. Este requisito não é aplicado aos clusters existentes.
Se necessário, pode configurar um router de registos neste projeto para encaminhar registos para contentores de registos noutro projeto. Para ver informações sobre como configurar o Log Router, consulte o artigo Destinos suportados.
Exemplo:
cloudAuditLogging: projectID: "my-fleet-host-project"
cloudAuditLogging.clusterLocation
Obrigatório para registos de auditoria do Cloud
Imutável
String
A Google Cloud região onde quer armazenar os registos de auditoria. É recomendável escolher uma região perto do seu centro de dados no local
Para novos clusters, se incluir as secções gkeOnPremAPI
e stackdriver
no ficheiro de configuração, a região que definir aqui tem de ser a mesma que definir em gkeConnect.location
, gkeOnPremAPI.location
e stackdriver.clusterLocation
. Se as regiões não forem iguais, a criação do cluster falha.
Exemplo:
cloudAuditLogging: clusterLocation: "us-central1"
cloudAuditLogging.serviceAccountKeyPath
Obrigatório para os registos de auditoria do Cloud
Mutável
String
O caminho do ficheiro de chave JSON para a sua conta de serviço de registo de auditoria.
Se vai criar o cluster com
enableAdvancedCluster
definido como true
(o que é necessário para
configurar domínios de topologia),
defina cloudAuditLogging.serviceAccountKeyPath
para o mesmo caminho que
stackdriver.serviceAccountKeyPath
.
Para atualizar o valor deste campo, use gkectl update cluster
.
Para obter informações sobre como alterar a chave da conta de serviço de registo de auditoria, consulte o artigo Alternar chaves de contas de serviço.
Exemplo:
cloudAuditLogging: serviceAccountKeyPath: "my-key-folder/audit-log-key.json"
cloudAuditLogging.serviceAccountKey.secretRef.version
Mutável
String
Valores possíveis: uma string de número inteiro ou "latest"
Valor predefinido: "latest"
A versão de um segredo preparado no cluster de administrador que contém uma chave JSON para a conta do seu serviço de registo de auditoria.
Exemplo:
cloudAuditLogging: serviceAccountKey: secretRef: version: "1"
autoRepair.enabled
Opcional
Mutável
Booleano
Pré-preenchido: verdadeiro
Defina esta opção como true
para ativar a reparação automática de nós. Caso contrário, defina-o como false
.
Exemplo:
autoRepair: enabled: true
secretsEncryption
Se quiser encriptar segredos sem precisar de um KMS (serviço de gestão de chaves) externo ou outras dependências, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.
Se vai criar o cluster com
enableAdvancedCluster
definido como true
(o que é necessário para
configurar domínios de topologia),
remova esta secção. Esta funcionalidade não é suportada com clusters avançados.
secretsEncryption.mode
Obrigatório para a encriptação de segredos
Imutável
String
Valor possível: "GeneratedKey"
Pré-preenchido: "GeneratedKey"
O modo de encriptação secreto.
secretsEncryption: mode: "GeneratedKey"
secretsEncryption.generatedKey.keyVersion
Obrigatório para a encriptação de Secrets
Mutável
Número inteiro
Pré-preenchido: 1
Um número inteiro à sua escolha para usar como número da versão da chave. Recomendamos que
comece com 1
.
Para ver informações sobre como atualizar este campo para um cluster existente, consulte o artigo Encriptação de segredos sempre ativos.
Exemplo:
secretsEncryption: generatedKey: keyVersion: 1
secretsEncryption.generatedKey.disabled
Mutável
Booleano
Pré-preenchido: falso
Defina este valor como true
para desativar a encriptação de segredos. Caso contrário, defina-o como false
.
Para ver informações sobre como atualizar este campo para um cluster existente, consulte o artigo Encriptação de segredos sempre ativos.
Exemplo:
secretsEncryption: generatedKey: disabled: false