Ficheiro de configuração do cluster de administrador 1.30 e superior

Este documento descreve os campos no ficheiro de configuração do cluster de administrador 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 gkeadm para criar a estação de trabalho de administrador, o gkeadm gerou um modelo para o ficheiro de configuração do cluster de administrador. 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 administrador.

Para gerar um modelo para o ficheiro de configuração do cluster de administrador:

gkectl create-config admin --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 admin-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 admin --gke-on-prem-version=1.33.0-gke.799. Esta versão tem de ser igual ou inferior à versão do gkectl. Se omitir este indicador, o modelo de configuração gerado é preenchido com valores baseados na atualização 1.33 mais recente.

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.

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 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 domínios de topologia. Este campo é obrigatório se infraConfigFilePath estiver configurado.

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 enableAdvancedClusters como true para ativar o cluster avançado quando criar um novo cluster. Quando esta flag está ativada, 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, como domínios de topologia. Este campo é obrigatório se infraConfigFilePath estiver configurado.

1,30 e inferior

Não disponível.

name

Opcional
String
Predefinição: um nome aleatório que começa com o prefixo "gke-admin-"

Um nome à sua escolha para o cluster.

Exemplo:

name: "my-admin-cluster"

bundlePath

Obrigatório
Mutável
String

O caminho do ficheiro do pacote do Google Distributed Cloud.

O ficheiro do pacote completo do Google Distributed Cloud contém todos os componentes numa versão específica do Google Distributed Cloud. Quando cria uma estação de trabalho de administração, esta inclui um pacote completo em:

/var/lib/gke/bundles/gke-onprem-vsphere-VERSION-full.tgz

Exemplo:

bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.10.0-gke.8.full.tgz"

preparedSecrets.enabled

Se infraConfigFilePath estiver configurado, remova este campo.

Pré-visualização
Opcional
Imutável
Booleano
Preenchido previamente: false
Predefinição: false

Defina esta opção como true se quiser usar credenciais preparadas no cluster de administração. Caso contrário, defina-o como false ou omita o campo.

Exemplo:

preparedSecrets:
  enabled: true

vCenter

Estas secções contêm informações sobre o seu ambiente vSphere e a sua ligação ao vCenter Server.

Se infraConfigFilePath estiver configurado, remova esta secção na íntegra. Caso contrário, esta secção é obrigatória e imutável.

vCenter.address

Obrigatório
Imutável
String

O endereço IP ou o nome de anfitrião do seu servidor vCenter.

Para mais informações, consulte o artigo Encontrar o endereço do servidor vCenter.

Exemplos:

vCenter:
  address: "203.0.113.100"
vCenter:
  address: "my-vcenter-server.my-domain.example"

vCenter.datacenter

Obrigatório
Imutável
String

O caminho relativo de um centro de dados do vSphere.

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-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-1"

vCenter.cluster

Obrigatório
Imutável
String

O caminho relativo de um cluster do vSphere que representa os anfitriões ESXi onde as VMs do cluster de administrador são executadas. Este cluster do vSphere representa um subconjunto dos anfitriões ESXi físicos no seu centro de dados do vCenter.

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-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-1"

vCenter.resourcePool

Obrigatório
Imutável
String

Um pool de recursos do vCenter para as VMs do cluster de administrador.

Se quiser usar o conjunto de recursos predefinido, defina esta opção como VSPHERE_CLUSTER/Resources.

Exemplo:

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

Se quiser usar um conjunto de recursos que já criou, defina este parâmetro como o caminho relativo do conjunto de recursos.

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-resource-pool"

Caso contrário, o valor é um caminho relativo que tem dois ou mais conjuntos de recursos.

Exemplo:

vCenter:
  resourcePool: "resource-pool-1/resource-pool-2"

vCenter.datastore

Obrigatório se vCenter.storagePolicyName não estiver especificado
Imutável
String

O nome de um repositório de dados do vSphere para o cluster de administrador.

O valor especificado tem de ser um nome, não um caminho. Não inclua pastas no valor.

Exemplo:

vCenter:
  datastore: "my-datastore"

Tem de especificar um valor para vCenter.datastore ou vCenter.storagePolicyName, mas não ambos. 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

Obrigatório se vCenter.datastore não estiver especificado
Imutável
String

O nome de uma política de armazenamento de VMs para os nós do cluster.

O cluster de administrador tem de estar altamente disponível (HA) para funcionar com a política de armazenamento.

Para mais informações, consulte o artigo Configure uma política de armazenamento.

Tem de especificar um valor para vCenter.datastore ou vCenter.storagePolicyName, mas não ambos. Se especificar um valor para este campo, não especifique um valor para vCenter.datastore.

vCenter.caCertPath

Obrigatório
Mutável
String

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.

Para ver informações sobre como atualizar este campo para um cluster existente, consulte o artigo Atualize as referências de certificados do vCenter.

Exemplo:

vCenter:
  caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert.pem"

vCenter.credentials.fileRef.path

Obrigatório
String

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 deve ter a função de administrador ou privilégios equivalentes. Consulte os requisitos do vSphere.

Pode usar gkectl update para atualizar este campo num cluster existente.

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-folder/admin-creds.yaml"

vCenter.credentials.fileRef.entry

Obrigatório
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 de utilizador do vCenter.

Pode usar gkectl update para atualizar este campo num cluster existente.

Para ver informações sobre como atualizar as credenciais do vCenter, consulte o artigo Atualizar credenciais do cluster.

Exemplo:

vCenter:
  credentials:
    fileRef:
      entry: "vcenter-creds"

vCenter.folder

Opcional
Imutável
String
Predefinição: a pasta ao nível do centro de dados

O caminho relativo de uma pasta do vSphere que já criou. Esta pasta vai conter as VMs do cluster de administrador.

Se não especificar um valor, as VMs do cluster de administrador 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-folder"

Em alternativa, o valor pode ser um caminho relativo que inclua mais do que uma pasta.

Exemplo:

vCenter:
  folder: "folders/folder-1"

vCenter.dataDisk

Não indique um valor para este campo. Elimine o campo ou deixe-o comentado.

network

Obrigatório
Imutável

Esta secção contém informações sobre a rede do cluster de administrador.

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 infraConfigFilePath estiver configurado, remova esta secção na íntegra. Caso contrário, esta secção é obrigatória e imutável.

network.hostConfig.dnsServers

Obrigatório se a secção network.hostConfig estiver preenchida.
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 se a secção network.hostConfig estiver preenchida.
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

Opcional
Imutável
Matriz de strings

Domínios de pesquisa de DNS para as VMs 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".

Na maioria dos casos, deve especificar static porque tem sempre de fornecer endereços IP para os nós do plano de controlo do cluster de administrador. O DHCP é usado apenas para fornecer endereços IP nos seguintes casos:

  • Se a opção enableControlplaneV2 não estiver ativada nos clusters de utilizadores, pode usar o DHCP para os nós do plano de controlo do cluster de utilizadores, que estão no cluster de administrador.

  • Na versão 1.16 e inferiores, os nós suplementares para clusters de administrador não de HA podem obter os respetivos endereços IP do DHCP. Na versão 1.28 e superior, os clusters de administrador têm de ser de alta disponibilidade e não têm nós de suplementos.

Exemplo:

network:
  ipMode:
    type: "static"

network.ipMode.ipBlockFilePath

O caminho absoluto ou relativo do ficheiro de blocos de IP para o seu cluster.

Se infraConfigFilePath estiver configurado, este campo é obrigatório.

Este campo também é obrigatório nos seguintes casos:

  • 1.16 e inferior: liste os endereços IP do nó do plano de controlo e dos nós suplementares num ficheiro de bloco de IP.

  • 1.16 e inferior HA admin cluster: liste os endereços IP dos nós de suplementos num ficheiro de bloco de IP.

  • 1.29 e clusters de utilizadores kubeception inferiores: liste os endereços IP dos nós do plano de controlo do cluster de utilizadores no ficheiro de blocos de IP do cluster de administrador.

Imutável
String

Exemplo:

network:
  ipMode:
    ipBlockFilePath: "/my-config-folder/admin-cluster-ipblock.yaml"

network.serviceCIDR

Obrigatório
Imutável
String
Intervalo mais pequeno possível: /24
Intervalo mais amplo possível: /12
Pré-preenchido: "10.96.232.0/24"

Um intervalo de endereços IP, no formato CIDR, a ser usado para os serviços no seu cluster.

Exemplo:

network:
  serviceCIDR: "10.96.232.0/24"

network.podCIDR

Obrigatório
Imutável
String
Intervalo mais pequeno possível: /18
Intervalo mais largo possível: /8
Pré-preenchido: "192.168.0.0/16"

Um intervalo de endereços IP, no formato CIDR, a usar para os pods no seu cluster.

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

O nome da rede vSphere para os nós do cluster.

Se infraConfigFilePath estiver configurado, remova este campo. Caso contrário, este campo é obrigatório e imutável.

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: "/data-centers/data-center-1/network/my-network"

network.controlPlaneIPBlock

Informações de rede para os nós do plano de controlo do cluster de administrador.

Se infraConfigFilePath estiver configurado, remova esta secção na íntegra. Caso contrário, esta secção é obrigatória e imutável.

network.controlPlaneIPBlock.netmask

Obrigatório
Imutável
String

A máscara de rede da rede que tem os nós do plano de controlo.

Exemplo:

network:
  controlPlaneIPBlock:
    netmask: "255.255.255.0"

network.controlPlaneIPBlock.gateway

Obrigatório
Imutável
String

O endereço IP do gateway predefinido para os nós do plano de controlo.

Exemplo:

network:
  controlPlaneIPBlock:
    gateway: "172.16.22.1"

network.controlPlaneIPBlock.ips

Obrigatório
Imutável
Matriz de três objetos, cada um dos quais tem um endereço IP e um nome de anfitrião opcional.

Estes são os endereços IP que vão ser atribuídos aos nós do plano de controlo.

Exemplo:

network:
  controlPlaneIPBlock:
    ips:
    - ip: "172.16.22.6"
      hostname: "admin-cp-vm-1"
    - ip: "172.16.22.7"
      hostname: "admin-cp-vm-2"
    - ip: "172.16.22.8"
      hostname: "admin-cp-vm-3"

infraConfigFilePath

1.31

A especificação de um caminho neste campo ativa os domínios de topologia.

Pré-visualização
Opcional
String
Mutável

Especifique o caminho completo do ficheiro de configuração da infraestrutura do vSphere.

Exemplo:

infraConfigFilePath: "/my-config-folder/vsphere-infrastructure.yaml"

Além de adicionar o caminho, copie o ficheiro de configuração da infraestrutura do vSphere para o diretório aplicável.

Se adicionar um caminho a infraConfigFilePath, tem de fazer as seguintes alterações aos ficheiros de configuração do cluster de administrador e do cluster de utilizadores.

Alterações ao ficheiro de configuração do cluster de administrador

  • Remova o seguinte do ficheiro de configuração do cluster de administrador. Pode configurar estas informações no ficheiro de configuração da infraestrutura do vSphere por domínio de topologia.

    • vCenter: remova toda a secção vCenter.
    • network.hostConfig: remova toda a secção network.hostConfig.
    • network.vCenter.networkName: remova este campo.
  • Faça as seguintes alterações no ficheiro de configuração do cluster de administrador:

    • network.controlPlaneIPBlock: remover toda a secção. Em alternativa, especifique os endereços IP dos nós do plano de controlo do cluster de administrador num ficheiro de blocos de IP.

    • preparedSecrets: remova este campo. As credenciais preparadas não são suportadas quando os domínios de topologia estão ativados. Remova este campo.

  • Os seguintes campos são obrigatórios:

    • enableAdvancedCluster: definido como true.

    • network.ipMode.ipBlockFilePath: definido como o caminho completo ou relativo do ficheiro de bloco de IP do cluster de administrador.

    • loadBalancer.kind: definido como "ManualLB". O "ManualLB" é a única opção de balanceamento de carga de várias sub-redes (camada 3) disponível que o Google Distributed Cloud oferece.

Alterações ao ficheiro de configuração do cluster de utilizadores

  • Remova o seguinte do ficheiro de configuração do cluster de utilizadores. Pode configurar estas informações no ficheiro de configuração da infraestrutura do vSphere por domínio de topologia.

    • vCenter: remova toda a secção vCenter.
    • network.hostConfig: remova toda a secção network.hostConfig.
    • network.vCenter.networkName: remova este campo.
    • masterNode.vsphere: remover toda a secção.
    • nodePools[i].vsphere.datastore e nodePools[i].vsphere.storagePolicyName: remova estes campos.
  • Faça as seguintes alterações no ficheiro de configuração do cluster de utilizadores:

    • network.controlPlaneIPBlock: remover toda a secção. Em alternativa, especifique os endereços IP dos nós do plano de controlo do cluster de administrador num