Esta página descreve os campos no ficheiro de configuração do cluster de utilizadores do Google Distributed Cloud.
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 pretendida. Por exemplo:
gkectl create-config cluster --gke-on-prem-version=1.10.0-gke.8
.
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 e não for indicado nenhum valor predefinido, o campo é 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.
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 quiser usar credenciais preparadas, preencha este campo. Caso contrário, remova este campo ou deixe-o comentado.
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 diferentes domínios de falha ou sites geográficos. 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
Preenchido previamente: 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 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 armazenamento 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
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 equilibrador 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:
network.ipMode.type
está definido comostatic
enableControlplaneV2
está definido comotrue
ou tem autorização para usartrue
por predefinição.loadBalancer.kind
está definido 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 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"
.
Exemplo:
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
Obrigatório se network.ipMode.type
= static
Imutável
String
O caminho do ficheiro de bloqueio 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
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 definir enableControlplaneV2
como true
, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.
network.controlPlaneIPBlock.netmask
Obrigatório se enableControlplaneV2
= true
Imutável
String
Exemplo:
network: controlPlaneIPBlock: netmask: "255.255.255.0"
network.controlPlaneIPBlock.gateway
Obrigatório se enableControlplaneV2
= true
Imutável
String
Exemplo:
network: controlPlaneIPBlock: gateway: "172.16.21.1"
network.controlPlaneIPBlock.ips
Obrigatório se enableControlplaneV2
= true
Imutável
Matriz de objetos, cada um dos quais tem um endereço IP e um nome do anfitrião opcional.
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
Obrigatório
Imutável
String
Pré-preenchido: "MetalLB"
Defina esta opção como "ManualLB"
, "F5BigIP"
, "Seesaw"
ou "MetalLB"
.
Para ativar funcionalidades novas e avançadas, recomendamos que use "ManualLB"
se tiver um balanceador de carga de terceiros (como o F5 BIG-IP ou o Citrix) ou "MetalLB"
para a nossa solução integrada.
Exemplo:
loadBalancer: kind: "MetalLB"
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
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. Tem de escolher um valor nodePort
para o HTTP ServicePort.
Defina este campo para o valor nodePort
.
Exemplo:
loadBalancer: manualLB: ingressHTTPNodePort: 32527
loadBalancer.manualLB.ingressHTTPSNodePort
Obrigatório se loadBalancer.kind
= ManualLB
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. Tem de escolher um valor para o HTTPS ServicePort.nodePort
Defina este campo para o valor nodePort
.
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
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.
loadBalancer.f5BigIP.address
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
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
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 do F5 BIG-IP.
Exemplo:
loadBalancer: f5BigIP: credentials: fileRef: entry: "f5-creds"
loadBalancer.f5BigIP.partition
Obrigatório se loadBalancer.kind
= "f5BigIP"
String
O nome de uma partição do BIG-IP que criou para o seu cluster de utilizadores.
Exemplo:
loadBalancer: f5BigIP: partition: "my-f5-user-partition"
loadBalancer.f5BigIP.snatPoolName
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
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.
Se estiver a usar o equilibrador de carga do SeeSaw, recomendamos que migre para o MetalLB.
loadBalancer.seesaw.ipBlockFilePath
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
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
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
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
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 é 2^20 = 1.048.576 bytes. Um megabyte equivale a 10^6 = 1 000 000 bytes.
loadBalancer.seesaw.vCenter.networkName
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
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
Imutável
Relevante se loadBalancer.kind
= Seesaw
Booleano
Pré-preenchido: verdadeiro
Predefinição: verdadeiro
Se definir esta opção como true
, o equilibrador 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. Recomendamos que defina esta opção como true
. 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"
Mutable
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.
loadBalancer.metalLB.addressPools[i].name
Obrigatório se loadBalancer.kind
= MetalLB
Mutável
String
Um nome à sua escolha para o conjunto de endereços.
Exemplo:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1"
loadBalancer.metalLB.addressPools[i].addresses
Obrigatório se loadBalancer.kind
= MetalLB
Mutável
Matriz de strings, cada uma das quais é um intervalo de endereços. Cada intervalo tem de estar no formato CIDR ou no formato de intervalo com hífen.
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 é a 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
Imutá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"
Nota: a atualização deste campo pode originar um problema conhecido, dependendo das versões do cluster. Aplique a solução descrita se a versão do seu cluster for afetada.
multipleNetworkInterfaces
Imutável
Booleano
Pré-preenchido: false
Predefinição: false
Se quiser ativar várias interfaces de rede para os pods, defina esta opção como true
. Caso contrário, defina este valor como false
.
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
.
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.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.
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.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
.
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
Mutável
String
Valores possíveis: "ubuntu_containerd", "cos", "ubuntu_cgv2", "cos_cgv2", "windows"
Pré-preenchido: "ubuntu_cgv2"
Predefinição: "ubuntu_containerd"
O tipo de imagem do SO a executar nas VMs no conjunto de nós.
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.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
Array 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
Defina esta opção como true
se quiser permitir que o altifalante do MetalLB seja executado nos nós do 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
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 da licença do 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 seja possível agendar VMs do vSphere, defina antiAffinityGroups.enabled
como false
.
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: TODO: REVIEWERS: DOES THIS HAVE A DEFAULT VALUE?
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.
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 cada cluster à frota é 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 região na qual os serviços Fleet e Connect são executados. Google CloudSe 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
Exigido por predefinição
Mutável
Se quiser ativar o Cloud Logging e o Cloud Monitoring para o seu cluster, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.
Esta secção é obrigatória por predefinição. Ou seja, se não incluir esta secção, tem de incluir a flag --skip-validation-stackdriver
quando executar gkectl create cluster
.
Esta secção é necessária se quiser gerir o ciclo de vida do cluster de utilizadores através de clientes da API GKE On-Prem.
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
Pré-visualizar
Imutável
Se quiser ativar a medição da utilização para o seu cluster, preencha esta secção. Caso contrário, remova esta secção ou deixe-a comentada.
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.
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.
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