Crie um cluster de administrador

Esta página mostra como criar um cluster de administrador para o Google Distributed Cloud. O cluster de administrador faz a gestão dos clusters de utilizadores que executam as suas cargas de trabalho. Se quiser usar domínios de topologia, consulte o artigo Crie um cluster de administrador para utilização com domínios de topologia.

Esta página destina-se a administradores, arquitetos e operadores que configuram, monitorizam e gerem a infraestrutura técnica. Para saber mais sobre as funções comuns e exemplos de tarefas que referimos no conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE. Google Cloud

Para mais detalhes sobre o cluster de administrador, consulte a vista geral da instalação.

Na versão 1.33 e superior, todos os novos clusters são criados como clusters avançados. Certifique-se de que revê as diferenças quando executa clusters avançados.

Antes de começar

  • Certifique-se de que configurou e consegue iniciar sessão na sua estação de trabalho de administrador, conforme descrito no artigo Crie uma estação de trabalho de administrador.

  • Certifique-se de que os ficheiros de chaves JSON das contas de serviço estão na sua estação de trabalho de administrador.

  • Reveja o documento de planeamento de endereços IP. Certifique-se de que tem endereços IP suficientes disponíveis para os três nós do plano de controlo e um VIP do plano de controlo. Se planeia criar quaisquer clusters de utilizadores de kubeception, tem de ter endereços IP suficientes disponíveis para os nós do plano de controlo desses clusters de utilizadores.

  • Reveja a vista geral do balanceamento de carga e volte a analisar a sua decisão sobre o tipo de balanceador de carga que quer usar. Para equilibradores de carga manuais, tem de configurar o equilibrador de carga antes de criar o cluster de administrador.

  • Se estiver a usar gkectl para criar o cluster de administrador, decida se quer usar um registo público ou privado para os componentes do Google Distributed Cloud. Para informações sobre a utilização de um registo Docker privado, consulte privateRegistry. Nem o Terraform nem a Google Cloud consola suportam a utilização de um registo Docker privado para componentes do sistema.

  • Decida que tipo de sistema operativo quer executar nos nós do cluster de administrador.

  • Se a sua organização exigir que o tráfego de saída passe por um servidor proxy, certifique-se de que adiciona à lista de autorizações as APIs necessárias e o endereço do Artifact Registry.

  • Na versão 1.29 e superior, as verificações prévias do lado do servidor estão ativadas por predefinição. As verificações prévias do lado do servidor requerem regras de firewall adicionais. Em Regras de firewall para clusters de administrador, pesquise "Verificações prévias" e certifique-se de que todas as regras de firewall necessárias estão configuradas. As verificações prévias do lado do servidor são executadas no cluster de arranque, em vez de serem executadas localmente na estação de trabalho do administrador.

Crie um cluster de administrador com a ferramenta da sua escolha

Esta secção fornece passos para criar um cluster de administrador através do gkectlTerraform e da Google Cloud consola. Para obter informações que ajudam a escolher uma ferramenta e limitações com algumas ferramentas, consulte o artigo Escolha uma ferramenta para gerir o ciclo de vida do cluster.

gkectl

Vista geral do procedimento

Seguem-se os principais passos envolvidos na criação de um cluster de administração:

  1. Preencha os ficheiros de configuração.
    Especifique os detalhes do novo cluster de administrador concluindo e validando um ficheiro de configuração do cluster de administrador, um ficheiro de configuração de credenciais e, possivelmente, um ficheiro de bloco de IPs.
  2. Importe imagens do SO para o vSphere e envie imagens de contentores para o registo privado, se aplicável.
    Corrida gkectl prepare.
  3. Crie um cluster de administrador.
    Use gkectl para criar um novo cluster de administrador, conforme especificado nos ficheiros de configuração concluídos. Quando o Google Distributed Cloud cria um cluster de administrador, implementa um cluster Kubernetes in Docker (kind) para alojar temporariamente os controladores Kubernetes necessários para criar o cluster de administrador. Este cluster transitório é denominado cluster de arranque. Os clusters de utilizadores são criados e atualizados pelo respetivo administrador de gestão sem usar um cluster de arranque.
  4. Verifique se o cluster de administração está em execução.
    Use kubectl para ver os nós do cluster.

No final deste procedimento, terá um cluster de administrador em execução que pode usar para criar e gerir clusters de utilizadores.

Se usar os VPC Service Controls, pode ver erros quando executar alguns comandos gkectl, como "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services". Para evitar estes erros, adicione o parâmetro --skip-validation-gcp aos seus comandos.

Preencha o ficheiro de configuração

  • Certifique-se de que a estação de trabalho do administrador tem a versão necessária do gkectl. Normalmente, usa a mesma versão do gkectl que vai ser usada quando criar o cluster. Especifica a versão do cluster no campo gkeOnPremVersion no ficheiro de configuração do cluster. As seguintes regras de versão são aplicadas durante a criação do cluster:

    • A versão secundária gkectl não pode ser inferior à versão secundária do cluster. Por exemplo, não é permitido criar um cluster 1.30 com a versão 1.29 do gkectl. As versões de patch não são importantes. Por exemplo, pode usar a versão 1.29.0-gke.1456 para criar um cluster com uma versão de patch superior, como 1.29.1000-gke.94.gkectl

    • A versão secundária gkectl não pode ser mais de duas versões secundárias superior à versão do cluster. Por exemplo, se estiver a criar um cluster 1.28, a versão gkectl pode ser 1.29 ou 1.30. No entanto, não pode usar a versão 1.31 do gkectl porque é três versões secundárias superior à versão do cluster.

    Se necessário, consulte Transferir gkectl para obter uma versão suportada do gkectl.

Se usou o gkeadm para criar a sua estação de trabalho de administrador, este gerou um ficheiro de configuração denominado admin-cluster.yaml.

Se não usou gkeadm para criar a estação de trabalho de administrador, gere o ficheiro admin-cluster.yaml executando este comando na estação de trabalho de administrador:

gkectl create-config admin

Este ficheiro de configuração destina-se à criação do cluster de administrador.

Familiarize-se com o ficheiro de configuração analisando o documento ficheiro de configuração do cluster de administrador. Recomendamos que mantenha este documento aberto num separador ou numa janela separada, porque vai consultá-lo à medida que conclui os passos seguintes.

name

Se quiser especificar um nome para o cluster de administrador, preencha o campo name.

bundlePath

O pacote é um ficheiro comprimido que contém componentes de cluster. Está incluído na estação de trabalho de administrador. Este campo já está preenchido.

vCenter

Os campos nesta secção já estão preenchidos com os valores que introduziu quando criou a sua estação de trabalho de administrador.

enableAdvancedCluster

Na versão 1.31, se quiser ativar a funcionalidade de cluster avançada, defina enableAdvancedCluster como true.

Tenha em atenção as seguintes diferenças entre as versões:

  • Na versão 1.31, a funcionalidade de cluster avançada está em pré-visualização:

    • Só pode ativar o cluster avançado no momento da criação do cluster para novos clusters 1.31.

    • Depois de ativar o cluster avançado, não pode atualizar o cluster para a versão 1.32. Ative o cluster avançado apenas num ambiente de teste.

  • Na versão 1.32, a funcionalidade de cluster avançada está em DG.

    • Por predefinição, os clusters de administrador são criados como clusters avançados. Tem de definir explicitamente enableAdvancedCluster como false se quiser criar um cluster não avançado.

    • Para clusters com a funcionalidade de clusters avançados ativada, as atualizações de clusters são suportadas.

  • Na versão 1.33 e superior, todos os clusters são criados como clusters avançados. Se definir enableAdvancedCluster como false, a criação do cluster falha.

network

Preencha a secção network.controlPlaneIPBlock e a secção network.hostConfig. Definir também adminMaster.replicas como 3.

Os campos network.podCIDR e network.serviceCIDR têm valores pré-preenchidos que pode deixar inalterados, a menos que entrem em conflito com endereços já usados na sua rede. O Kubernetes usa estes intervalos para atribuir endereços IP a pods e serviços no seu cluster.

Preencha os restantes campos na secção de rede do ficheiro de configuração conforme necessário.

loadBalancer

Reserve um IP virtual para o servidor da API Kubernetes do cluster de administrador. Indique o seu VIP como o valor de loadBalancer.vips.controlPlaneVIP

Para mais informações, consulte o artigo VIPs na sub-rede do cluster de administrador.

Decida que tipo de equilíbrio de carga quer usar. As opções são as seguintes:

  • Balanceamento de carga integrado do MetalLB. Definir loadBalancer.kind para "MetalLB".

  • Balanceamento de carga manual. Defina loadBalancer.kind como "ManualLB" e remova a secção manualLB.

Para mais informações sobre as opções de equilíbrio de carga, consulte o artigo Vista geral do equilíbrio de carga.

antiAffinityGroups

Defina antiAffinityGroups.enabled como true ou false de acordo com a sua preferência.

Use este campo para especificar se quer que o Google Distributed Cloud crie regras de anti-afinidade do Distributed Resource Scheduler (DRS) da VMware para os nós do cluster de administrador, o que faz com que sejam distribuídos por, pelo menos, três anfitriões físicos no seu centro de dados.

adminMaster

Se quiser especificar a CPU e a memória para os nós do plano de controlo do cluster de administrador, preencha os campos cpus e memoryMB na secção adminMaster.

Os clusters de administrador têm de ter três nós do plano de controlo. Defina o campo replicas na secção adminMaster como 3.

proxy

Se a rede que vai ter os nós do cluster de administrador estiver atrás de um servidor proxy, preencha a secção proxy.

privateRegistry

Decida onde quer manter as imagens de contentores para os componentes do Google Distributed Cloud. As opções são as seguintes:

  • Artifact Registry

  • O seu próprio registo Docker privado.

    Se quiser usar o seu próprio registo privado, preencha a secção privateRegistry.

componentAccessServiceAccountKeyPath

O Google Distributed Cloud usa a sua conta de serviço de acesso aos componentes para transferir componentes do cluster do Artifact Registry. Este campo contém o caminho de um ficheiro de chave JSON para a sua conta de serviço de acesso a componentes.

Este campo já está preenchido.

gkeConnect

Registe o cluster de administrador numa Google Cloud frota preenchendo a secção gkeConnect. Se incluir as secções stackdriver e cloudAuditLogging no ficheiro de configuração, o ID em gkeConnect.projectID 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.

Na versão 1.28 e posteriores, pode especificar opcionalmente uma região onde os serviços Fleet e Connect são executados em gkeConnect.location. Se não incluir este campo, o cluster usa as instâncias globais destes serviços.

Se incluir gkeConnect.location, a região especificada tem de ser igual à região configurada em cloudAuditLogging.clusterLocation, stackdriver.clusterLocation e gkeOnPremAPI.location. Se as regiões não forem iguais, a criação do cluster falha.

gkeOnPremAPI

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. A região gkeOnPremAPI.location tem de ser igual à região especificada em cloudAuditLogging.clusterLocation, gkeConnect.location e stackdriver.clusterLocation. Se as regiões não forem as mesmas, a criação do cluster falha.

  • 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 como false. Se não quiser inscrever nenhum cluster no projeto, desative gkeonprem.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.

stackdriver

Se quiser ativar o Cloud Logging e o Cloud Monitoring para o seu cluster, preencha a secção stackdriver.

Esta secção é obrigatória por predefinição. Ou seja, se não preencher esta secção, tem de incluir a flag --skip-validation-stackdriver quando executar gkectl create admin.

Tenha em atenção os seguintes requisitos:

  • Se ativar o cluster avançado, tem de especificar o mesmo caminho em cloudAuditLogging.serviceAccountKeyPath e stackdriver.serviceAccountKeyPath.

  • O ID em stackdriver.projectID tem de ser igual ao ID em gkeConnect.projectID e cloudAuditLogging.projectID.

  • A Google Cloud região definida em stackdriver.clusterLocation tem de ser igual à região definida em cloudAuditLogging.clusterLocation e gkeConnect.location. Além disso, se gkeOnPremAPI.enabled for true, tem de definir a mesma região em gkeOnPremAPI.location.

Se os IDs dos projetos e as regiões não forem os mesmos, a criação do cluster falha.

cloudAuditLogging

Se quiser integrar os registos de auditoria do servidor da API Kubernetes do seu cluster com os registos de auditoria na nuvem, preencha a secção cloudAuditLogging.

Tenha em atenção os seguintes requisitos:

  • Se ativar o cluster avançado, tem de especificar o mesmo caminho em cloudAuditLogging.serviceAccountKeyPath e stackdriver.serviceAccountKeyPath.

  • O ID em cloudAuditLogging.projectID tem de ser igual ao ID em gkeConnect.projectID e stackdriver.projectID.

  • A Google Cloud região definida em cloudAuditLogging.clusterLocation tem de ser igual à região definida em stackdriver.clusterLocation e gkeConnect.location (se o campo estiver incluído no seu ficheiro de configuração). Além disso, se gkeOnPremAPI.enabled for true, tem de definir a mesma região em gkeOnPremAPI.location.

Se os IDs dos projetos e as regiões não forem os mesmos, a criação do cluster falha.

clusterBackup

Se quiser ativar a cópia de segurança do cluster de administração, defina clusterBackup.datastore para o repositório de dados do vSphere onde quer guardar as cópias de segurança do cluster.

Se ativar o cluster avançado, remova esta secção. A criação de uma cópia de segurança do cluster de administrador num arquivo de dados do vSphere não é suportada.

autoRepair

Se quiser ativar a reparação automática de nós para o seu cluster de administrador, defina autoRepair.enabled como true.

secretsEncryption

Se quiser ativar a encriptação de segredos sempre ativa, preencha a secção secretsEncryption.

Se ativar o cluster avançado, defina secretsEncryption.enabled como false. A encriptação de segredos sempre ativa não é suportada.

osImageType

Decida que tipo de imagem do SO quer usar para os nós do cluster de administrador e preencha a secção osImageType em conformidade.

Se ativar o cluster avançado, defina osImageType como ubuntu_cgroupv2 ou ubuntu_containerd.

Exemplo de ficheiros de configuração preenchidos

Segue-se um exemplo de um ficheiro de configuração do cluster de administrador preenchido. A configuração ativa algumas das funcionalidades disponíveis, mas não todas.

vc-01-admin-cluster.yaml

apiVersion: v1
kind: AdminCluster
name: "gke-admin-01"
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.28.0-gke.1-full.tgz"
vCenter:
  address: "vc01.example"
  datacenter: "vc-01"
  cluster: "vc01-workloads-1"
  resourcePool: "vc-01-pool-1"
  datastore: "vc01-datastore-1"
  caCertPath: "/usr/local/google/home/me/certs/vc01-cert.pem""
  credentials:
    fileRef:
      path: "credential.yaml"
      entry: "vCenter"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"
  vCenter:
    networkName: "vc01-net-1"
  controlPlaneIPBlock:
    netmask: "255.255.248.0"
    gateway: "21.0.143.254"
    ips:
    - ip: "21.0.140.226"
      hostname: "admin-cp-vm-1"
    - ip: "21.0.141.48"
      hostname: "admin-cp-vm-2"
    - ip: "21.0.141.65"
      hostname: "admin-cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.59"
  kind: "MetalLB"
antiAffinityGroups:
  enabled: true
adminMaster:
  cpus: 4
  memoryMB: 16384
  replicas: 3
componentAccessServiceAccountKeyPath: "sa-key.json"
gkeConnect:
  projectID: "my-project-123"
  registerServiceAccountKeyPath: "connect-register-sa-2203040617.json"
stackdriver:
  projectID: "my-project-123"
  clusterLocation: "us-central1"
  enableVPC: false
  serviceAccountKeyPath: "log-mon-sa-2203040617.json"
  disableVsphereResourceMetrics: false
clusterBackup:
  datastore: "vc-01-datastore-bu"
autoRepair:
  enabled: true
osImageType: "ubuntu_containerd"

Valide o ficheiro de configuração

Depois de preencher o ficheiro de configuração do cluster de administrador, execute gkectl check-config para verificar se o ficheiro é válido:

gkectl check-config --config ADMIN_CLUSTER_CONFIG

Substitua ADMIN_CLUSTER_CONFIG pelo caminho do ficheiro de configuração do cluster de administrador.

Se o comando devolver mensagens de falha, corrija os problemas e valide o ficheiro novamente.

Se quiser ignorar as validações mais demoradas, transmita a flag --fast. Para ignorar validações individuais, use as flags --skip-validation-xxx. Para saber mais acerca do comando check-config, consulte o artigo Executar verificações pré-publicação.

Obtenha imagens do SO

Execute gkectl prepare para inicializar o seu ambiente vSphere:

gkectl prepare --config ADMIN_CLUSTER_CONFIG

O comando gkectl prepare executa as seguintes tarefas preparatórias:

  • Importa imagens do SO para o vSphere e marca-as como modelos de VMs.

  • Se estiver a usar um registo Docker privado, envia as imagens de contentores para o seu registo.

  • Opcionalmente, valida as atestações de compilação das imagens de contentores, verificando assim que as imagens foram criadas e assinadas pela Google e estão prontas para implementação.

Crie o cluster de administrador

Crie o cluster de administrador:

gkectl create admin --config ADMIN_CLUSTER_CONFIG

Se usar os VPC Service Controls, pode ver erros quando executar alguns comandos gkectl, como "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services". Para evitar estes erros, adicione o parâmetro --skip-validation-gcp aos seus comandos.

Retome a criação do cluster de administrador após uma falha

Se a criação do cluster de administrador falhar ou for cancelada, pode executar novamente o comando create:

gkectl create admin --config ADMIN_CLUSTER_CONFIG

Localize o ficheiro kubeconfig do cluster de administrador

O comando gkectl create admin cria um ficheiro kubeconfig denominado kubeconfig no diretório atual. Vai precisar deste ficheiro kubeconfig mais tarde para interagir com o cluster de administrador.

O ficheiro kubeconfig contém o nome do cluster de administrador. Para ver o nome do cluster, pode executar o seguinte comando:

kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG

O resultado mostra o nome do cluster. Por exemplo:

NAME
gke-admin-tqk8x

Se quiser, pode alterar o nome e a localização do ficheiro kubeconfig.

Faça a gestão do ficheiro checkpoint.yaml

Esta secção aplica-se apenas a clusters de administrador sem HA. O ficheiro checkpoint.yaml não é usado na criação de clusters de administrador de HA.

Quando executou o comando gkectl create admin para criar o cluster de administrador, este criou um ficheiro de ponto de verificação na mesma pasta de armazenamento de dados que o disco de dados do cluster de administrador. Por predefinição, este ficheiro tem o nome DATA_DISK_NAME‑checkpoint.yaml. Se o comprimento de DATA_DISK_NAME for igual ou superior a 245 carateres, devido ao limite do vSphere no comprimento do nome do ficheiro, o nome é DATA_DISK_NAME.yaml.

Este ficheiro contém o estado e as credenciais do cluster de administrador e é usado para futuras atualizações. Não elimine este ficheiro, a menos que esteja a seguir o processo de eliminação de um cluster de administrador.

Se ativou a encriptação de VMs na sua instância do vCenter Server, tem de ter o privilégio Cryptographic operations.Direct Access antes de criar ou atualizar o cluster de administrador. Caso contrário, o ponto de verificação não é carregado. Se não conseguir obter este privilégio, pode desativar o carregamento do ficheiro de ponto de verificação através do sinalizador oculto --disable-checkpoint quando executar um comando relevante.

O ficheiro checkpoint.yaml é atualizado automaticamente quando executa o comando gkectl upgrade admin ou quando executa um comando gkectl update que afeta o cluster de administrador.

Verifique se o cluster de administrador está em execução

Verifique se o cluster de administração está em execução:

kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Substitua ADMIN_CLUSTER_KUBECONFIG pelo caminho do ficheiro kubeconfig do cluster de administrador.

O resultado mostra os nós do cluster de administração. Por exemplo:

admin-cp-vm-1   Ready    control-plane,master   ...
admin-cp-vm-2   Ready    control-plane,master   ...
admin-cp-vm-3   Ready    control-plane,master   ...

Faça uma cópia de segurança dos ficheiros

Recomendamos que faça uma cópia de segurança do ficheiro kubeconfig do cluster de administrador. Ou seja, copie o ficheiro kubeconfig da estação de trabalho do administrador para outra localização. Em seguida, se perder o acesso à estação de trabalho de administrador ou se o ficheiro kubeconfig na estação de trabalho de administrador for eliminado acidentalmente, continua a ter acesso ao cluster de administrador.

Também recomendamos que faça uma cópia de segurança da chave SSH privada do cluster de administrador. Em seguida, se perder o acesso ao cluster de administrador, pode continuar a usar o SSH para se ligar aos nós do cluster de administrador. Isto permite-lhe resolver problemas e investigar problemas de conetividade com o cluster de administrador.

Extraia a chave SSH do cluster de administrador para um ficheiro com o nome admin-cluster-ssh-key:

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get secrets -n kube-system sshkeys \
    -o jsonpath='{.data.vsphere_tmp}' | base64 -d > admin-cluster-ssh-key

Agora, pode fazer uma cópia de segurança do admin-cluster-ssh-key noutra localização à sua escolha.

Políticas de RBAC

Quando preenche a secção gkeConnect no ficheiro de configuração do cluster de administrador, o cluster é registado na sua frota durante a criação ou a atualização. Para ativar a funcionalidade de gestão de frotas, Google Cloud implementa oagente Connect e cria uma conta de serviço Google que representa o projeto no qual o cluster está registado. O agente Connect estabelece uma ligação com a conta de serviço para processar pedidos ao servidor da API Kubernetes do cluster. Isto permite o acesso às funcionalidades de gestão de clusters e cargas de trabalho no Google Cloud, incluindo o acesso à Google Cloud consola, que lhe permite interagir com o seu cluster.

O servidor da API Kubernetes do cluster de administrador tem de poder autorizar pedidos do agente Connect. Para garantir isto, as seguintes políticas de controlo de acesso baseado em funções (CABF) estão configuradas na conta de serviço:

  • Uma política de roubo de identidade que autoriza o agente Connect a enviar pedidos para o servidor da API Kubernetes em nome da conta de serviço.

  • Uma política de autorizações que especifica as operações permitidas noutros recursos do Kubernetes.

A conta de serviço e as políticas de RBAC são necessárias para poder gerir o ciclo de vida dos clusters de utilizadores na consola do Google Cloud .

Terraform

Vista geral do procedimento

Antes de criar o cluster de administrador, tem de executar o comando gkectl register bootstrap na estação de trabalho de administrador. Este comando implementa um cluster do Kubernetes in Docker (kind) na estação de trabalho do administrador. Este cluster de bootstrap aloja os controladores do Kubernetes necessários para criar o cluster de administrador. Quando cria o cluster de administrador, os controladores no cluster de arranque aprovisionam nós, executam verificações prévias e registam o cluster de administrador na frota. O cluster de arranque é eliminado automaticamente após a criação bem-sucedida do cluster de administrador.

Seguem-se os passos de nível elevado para criar um cluster de administrador com o Terraform:

  1. Preencha o ficheiro de configuração.
    Use o recurso google_gkeonprem_vmware_admin_cluster e o exemplo que se segue para criar o ficheiro de configuração main.tf.
  2. Crie um cluster de bootstrap.
    Execute o comando gkectl register bootstrap para criar o cluster de arranque. Quando o comando terminar de criar o cluster de arranque, o resultado indica que deve concluir a configuração do cluster de administrador. O processo continua a ser executado até que o cluster de administrador seja criado.
  3. Crie um cluster de administrador.
    Noutra janela do terminal ou noutro computador com acesso à API GKE On-Prem, execute os comandos terraform para criar um novo cluster de administrador, conforme especificado no ficheiro de configuração main.tf concluído.

Preencha o ficheiro de configuração

O exemplo seguinte mostra a criação de um cluster de administrador de alta disponibilidade (HA) com três nós do plano de controlo com o MetalLB. Na versão 1.28 e superior, os novos clusters de administrador têm de ter elevada disponibilidade. Devido a este requisito, tem de definir control_plane_node.replicas como 3.

Para mais informações e outros exemplos, consulte a google_gkeonprem_vmware_admin_cluster documentação de referência. Para obter informações sobre a utilização de um registo privado para imagens do sistema, consulte o artigo Configure um registo de contentores privado.

Preencha as variáveis dos marcadores de posição no exemplo seguinte e, de seguida, copie e cole-as em main.tf. Se usou o gkeadm para criar a estação de trabalho de administrador, abra o ficheiro de configuração da estação de trabalho de administrador para poder copiar os valores da secção vCenter para as variáveis de marcadores de posição correspondentes.

resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-metallb" {
  provider = google-beta
  name = "ADMIN_CLUSTER_NAME"
  project = "PROJECT_ID"
  location = "REGION"
  description = "DESCRIPTION"
  bootstrap_cluster_membership = "projects/PROJECT_ID/locations/REGION/memberships/bootstrap-ADMIN_CLUSTER_NAME"
  on_prem_version = "VERSION"
  image_type = "IMAGE_TYPE"
  vcenter {
    address = "VCENTER_ADDRESS"
    datacenter = "DATA_CENTER"
    cluster = "VCENTER_CLUSTER"
    resource_pool = "RESOURCE_POOL"
    datastore = "DATASTORE"
    ca_cert_data = "CA_CERT_DATA"
  }
  network_config {
    service_address_cidr_blocks = ["10.96.232.0/24"]
    pod_address_cidr_blocks = ["192.168.0.0/16"]
    vcenter_network = "NETWORK"
    dhcp_ip_config {
      enabled = true
    }
    host_config {
      dns_servers = ["DNS_SERVERS"]
      ntp_servers = ["NTP_SERVERS"]
    }
    ha_control_plane_config {
      control_plane_ip_block {
        gateway = "GATEWAY"
        netmask = "NETMASK"
        ips {
          hostname = "CONTROL_PLANE_HOST_1"
          ip       = "CONTROL_PLANE_NODE_IP_1"
        }
        ips {
          hostname = "CONTROL_PLANE_HOST_2"
          ip       = "CONTROL_PLANE_NODE_IP_2"
        }
        ips {
          hostname = "CONTROL_PLANE_HOST_3"
          ip       = "CONTROL_PLANE_NODE_IP_3"
        }
      }
    }
  }
  control_plane_node {
     cpus = NUM_CPUS
     memory = MEMORY
     replicas = 3
  }
  load_balancer {
    vip_config {
      control_plane_vip = "CONTROL_PLANE_VIP"
    }
    metal_lb_config {
      enabled = true
    }
  }
}

Substitua o seguinte:

  • ADMIN_CLUSTER_NAME: o nome do cluster de administrador. O nome tem um comprimento máximo de 20 carateres.

  • PROJECT_ID: o Google Cloud ID do projeto.

  • REGION: a Google Cloud região na qual a API GKE On-Prem (gkeonprem.googleapis.com), o serviço Fleet (gkehub.googleapis.com) e o serviço Connect (gkeconnect.googleapis.com) são executados. Especifique us-west1 ou outra região suportada.

    O campo location corresponde à flag --location no comando gkectl register bootstrap.

  • DESCRIPTION: uma descrição do cluster de administrador.

  • VERSION: a versão do Google Distributed Cloud para o cluster. A criação de um cluster com o Terraform só é suportada nas versões 1.28 e superiores. A versão que especificar aqui tem de corresponder à versão do pacote que especificar na flag --bundle-path no comando gkectl register bootstrap. Para ver uma lista de versões, consulte o artigo Versões do Google Distributed Cloud.

  • IMAGE_TYPE: o tipo de imagem do SO a executar nos nós do cluster de administração. Especifique um dos seguintes: "ubuntu_containerd", "cos", "ubuntu_cgv2" ou "cos_cgv2".

  • VCENTER_ADDRESS: o endereço do vCenter Server.

    • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.credentials.address.

    • O campo vcenter.address corresponde à flag --vcenter-address no comando gkectl register bootstrap.

  • DATA_CENTER: o nome do seu centro de dados do vCenter.

    • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.datacenter.

    • O campo vcenter.datacenter corresponde à flag --vcenter-datacenter no comando gkectl register bootstrap.

  • VCENTER_CLUSTER: o nome do seu cluster do vCenter.

    • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.cluster.

    • O campo vcenter.cluster corresponde à flag --vcenter-cluster no comando gkectl register bootstrap.

  • RESOURCE_POOL: o nome ou o caminho do seu conjunto de recursos do vCenter.

    • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.resourcePool.

    • O campo vcenter.resource_pool corresponde à flag --vcenter-resource-pool no comando gkectl register bootstrap.

  • DATASTORE: o nome do seu repositório de dados do vCenter. O valor que especificar tem de ser um nome e não um caminho. Se precisar de introduzir um caminho, adicione o seguinte campo: folder = "FOLDER"

    • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.datastore.

    • O campo vcenter.datastore corresponde à flag --vcenter-datastore no comando gkectl register bootstrap.

    Se quiser usar uma política de armazenamento de VMs para os nós do cluster, remova o campo vcenter.datastore e adicione vcenter.storage_policy_name em alternativa. Além disso, adicione a flag --vcenter-storage-policy ao comando gkectl register bootstrap. Tem de especificar um valor para vcenter.datastore ou vcenter.storage_policy_name, mas não ambos.

  • FOLDER: o nome da pasta do vCenter onde as VMs do cluster vão estar localizadas. Se não estiver a usar uma pasta, remova este campo.

    • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.folder.

    • O campo vcenter.folder corresponde à flag --vcenter-folder no comando gkectl register bootstrap.

  • CA_CERT_DATA: introduza o certificado da AC do vCenter no formato PEM. Para obter os dados do certificado da AC:

    1. Execute o seguinte comando:

      cat CA_CERT_PATH_LOCAL |  tr '\n' '\\n'
      

      Substitua CA_CERT_PATH_LOCAL pelo caminho para o certificado da AC raiz do seu vCenter Server. Se usou o gkeadm para criar a estação de trabalho de administrador, pode usar o valor do campo caCertPath no ficheiro de configuração da estação de trabalho de administrador, que é o caminho no seu computador local. gkeadm copiou o ficheiro do certificado da CA para a estação de trabalho do administrador. Tem de especificar o caminho da estação de trabalho de administração na flag --vcenter-ca-cert-path no comando gkectl register bootstrap.

    2. Copie o certificado gerado pelo comando anterior e cole-o num editor de texto. Substitua todas as instâncias do caráter de barra invertida (\) por um caráter de nova linha (\n).

    3. Copie o certificado modificado e cole-o na variável de marcador de posição CA_CERT_DATA.

  • NETWORK: introduza o nome da sua rede vCenter.

    • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.network.

    • O campo network_config.vcenter_network corresponde à flag --vcenter-network no comando gkectl register bootstrap.

  • GATEWAY: o endereço IP do gateway predefinido para a sub-rede que tem os nós do cluster do plano de controlo.

  • NETMASK: a máscara de rede para a sub-rede que tem os nós do cluster do plano de controlo.

  • DNS_SERVERS: o endereço IP do servidor DNS.

  • NTP_SERVERS: o endereço IP do servidor de tempo (NTP).

  • Introduza os endereços IP e, opcionalmente, o nome do anfitrião dos três nós do plano de controlo na secção control_plane_ip_block.ips. Se não introduzir um nome de anfitrião, remova os campos hostname da configuração.

  • NUM_CPUS : o número de vCPUs para cada nó do plano de controlo no cluster de administrador. Tem de ter, no mínimo, 4.

  • MEMORY: número de mebibytes de memória para cada nó do plano de controlo no cluster de administrador. Tem de ter um mínimo de 8192, mas recomendamos 16 384.

  • CONTROL_PLANE_VIP: o endereço IP que escolheu para configurar no balanceador de carga para o servidor da API Kubernetes do cluster de administrador.

Valide o ficheiro de configuração e o plano

No diretório onde se encontra main.tf, execute os seguintes comandos:

  1. Inicialize o Terraform:

    terraform init
    

    O Terraform instala todas as bibliotecas necessárias, como o Google Cloud fornecedor. Corrija eventuais erros em maint.tf, se necessário.

  2. Crie o plano do Terraform:

    terraform plan -out tfplan
    

    Reveja a configuração e faça alterações, se necessário.

Antes de aplicar o plano, tem de criar primeiro o cluster de arranque, conforme descrito na secção seguinte.

Crie o cluster de arranque

Quando executa o comando gkectl register bootstrap, é-lhe pedido o nome de utilizador e a palavra-passe da conta do vCenter. Certifique-se de que tem as credenciais disponíveis. Se usou gkeadm para criar a estação de trabalho de administrador, o nome de utilizador e a palavra-passe encontram-se no ficheiro credential.yaml.

  1. Inicie sessão na sua estação de trabalho de administrador através de SSH.

  2. Autentique com a CLI do Google Cloud:

    gcloud auth login
    
  3. Execute o seguinte comando para criar o cluster de arranque. Muitos dos valores de indicação são iguais aos dos campos main.tf. No entanto, tenha em atenção que o comando aceita valores adicionais que tem de especificar nas variáveis de marcadores de posição fornecidas.

    gkectl register bootstrap \
        --target-cluster-name=ADMIN_CLUSTER_NAME \
        --project-id=PROJECT_ID \
        --location=REGION \
        --vcenter-address=VCENTER_ADDRESS \
        --vcenter-datacenter=DATA_CENTER \
        --vcenter-cluster=VCENTER_CLUSTER \
        --vcenter-resource-pool=RESOURCE_POOL \
        --vcenter-datastore=DATASTORE \
        --vcenter-network=NETWORK \
        --vcenter-ca-cert-path=CA_CERT_PATH \
        --bundle-path=BUNDLE_PATH \
        --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \
        --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \
        --stackdriver-service-account-key-path=LOG_MON_SA_PATH \
        --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
    

    Substitua o seguinte pelos caminhos da estação de trabalho do administrador:

    • CA_CERT_PATH: o caminho para o certificado da CA raiz do seu vCenter Server.
    • BUNDLE_PATH: o caminho para o ficheiro do pacote. Se usou o comando gkeadm para criar a estação de trabalho de administração, o ficheiro do pacote encontra-se em /var/lib/gke/bundles/. O nome do ficheiro depende da versão do Google Distributed Cloud. Por exemplo, gke-onprem-vsphere-1.31.0-gke.889-full.tgz.
    • COMPONENT_ACCESS_SA_PATH: o caminho para o ficheiro de chave da conta de serviço de acesso aos componentes.
    • CONNECT_REGISTER_SA_PATH: o caminho para o ficheiro de chave da conta de serviço connect-register.
    • LOG_MON_SA_PATH: o caminho para o ficheiro de chave da conta de serviço de registo e monitorização.
    • CLOUD_AUDIT_SA_PATH: o caminho para a conta de serviço de registo de auditoria. Se não criou uma conta de serviço de registo de auditoria, especifique o caminho para o ficheiro de chave da conta de serviço de registo e monitorização.

    Modifique o comando conforme necessário para as seguintes flags:

    • Se especificou uma pasta em main.tf, adicione a seguinte flag: --vcenter-folder=FOLDER
    • Se especificou uma política de armazenamento de VMs em main.tf, remova --vcenter-datastore e adicione a seguinte flag: --vcenter-storage-policy-name=STORAGE_POLICY_NAME
    • Se a rede que vai ter a sua estação de trabalho de administração estiver protegida por um servidor proxy, adicione as seguintes flags: --proxy-url=PROXY_URL e --no-proxy=NO_PROXY. Substitua PROXY_URL pelo URL do servidor proxy e NO_PROXY pelo valor dos domínios e endereços IP excluídos do proxy, separados por vírgulas.

    Se adicionar um sinalizador, certifique-se de que adiciona o caráter de barra invertida de continuação da linha de comando (\).

  4. Quando lhe for pedido, introduza (ou copie e cole) o nome de utilizador do vCenter. O nome de utilizador não é repetido no ecrã.

  5. Quando lhe for pedido, introduza (ou copie e cole) a palavra-passe do vCenter. A palavra-passe não é repetida no ecrã.

O comando executa várias validações. Depois de gkectl criar com êxito o cluster de arranque, vê um resultado semelhante ao seguinte, que é truncado para facilitar a leitura:

Running workstation validations
- Validation Category: Workstation
    - [SUCCESS] Workstation OS
    - [SUCCESS] Workstation Hardware
    - [SUCCESS] Workstation Package
    - [SUCCESS] Workstation NTP
    - [SUCCESS] Workstation Docker
...
All validation results were SUCCESS.
Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz
...
Successfully created and registered the bootstrap cluster
...
Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -

O processo continua a ser executado até o cluster de administrador ser criado.

Se sair do comando gkectl register bootstrap antes de o cluster de administrador ser criado, a criação do cluster de administrador falha e tem de eliminar o cluster de arranque com o seguinte comando:

gkectl delete bootstrap \
    --target-cluster-name=ADMIN_CLUSTER_NAME \
    --project-id=PROJECT_ID \
    --location=REGION \
     --register-service-account-key-path=CONNECT_REGISTER_SA_PATH

Crie o cluster de administrador

Aplique o plano do Terraform para criar o cluster de administrador:

terraform apply "tfplan"

A criação do cluster de administrador demora cerca de 15 minutos ou mais. Pode ver o cluster na Google Cloud consola na página Clusters do GKE.

Consola

Vista geral do procedimento

Antes de criar o cluster de administrador, tem de executar o comando gkectl register bootstrap na estação de trabalho de administrador. Este comando implementa um cluster do Kubernetes in Docker (kind) na estação de trabalho do administrador. Este cluster de bootstrap aloja os controladores do Kubernetes necessários para criar o cluster de administrador. Quando cria o cluster de administrador, os controladores no cluster de arranque aprovisionam nós, executam verificações prévias e registam o cluster de administrador na frota. O cluster de arranque é eliminado automaticamente após a criação bem-sucedida do cluster de administrador.

Seguem-se os passos de nível elevado para criar um cluster de administrador através da consola:

  1. Na consola, introduz informações que o gkectl register bootstrap requer. A consola apresenta o comando gkectl register bootstrap com as informações que introduziu. O comando apresentado também inclui sinalizadores para caminhos que tem de especificar antes de executar o comando.

  2. Na estação de trabalho de administração, execute gkectl register bootstrap para criar o cluster de arranque. Quando o comando terminar de criar o cluster de arranque, o resultado indica que deve concluir a configuração do cluster de administrador. O processo continua a ser executado até que o cluster de administrador seja criado.

  3. Regressa à consola para terminar de introduzir as informações necessárias para criar o cluster. Durante a criação do cluster, o comando gkectl register bootstrap produz informações de progresso e escreve registos na sua estação de trabalho de administrador. Quando o cluster de administrador é criado, o cluster de arranque é eliminado automaticamente.

Comece a configurar o cluster

  1. Na consola, aceda à página Crie um cluster no VMware.

    Aceda a Crie um cluster no VMware

  2. Selecione o Google Cloud projeto no qual quer criar o cluster.

    Quando criar o cluster de arranque numa secção seguinte, o ID do projeto selecionado é apresentado no comando gkectl register bootstrap na flag --project-id.

  3. Certifique-se de que a opção Criar um cluster de administrador está selecionada.

  4. Clique em Seguinte: instalar ambiente de arranque.

Instale o ambiente de arranque

Nesta secção, introduza as informações que o comando gkectl register bootstrap requer. À medida que introduz valores nos campos da IU, a consola copia os valores para as flags correspondentes do comando gkectl register bootstrap que é apresentado na secção Ambiente de arranque a partir da estação de trabalho de administração na parte inferior da página.

Noções básicas do ambiente de arranque

  1. Introduza um nome para o cluster de administrador. A consola usa o nome do cluster como o valor da flag --target-cluster-name no comando gkectl register bootstrap apresentado na parte inferior da página. O nome tem um comprimento máximo de 20 carateres.

  2. No campo Google Cloud Localização da API, selecione uma Google Cloud região na lista. Esta definição especifica a região onde as seguintes APIs e serviços são executados:

    • API GKE On-Prem (gkeonprem.googleapis.com)
    • Serviço de frota (gkehub.googleapis.com)
    • Serviço Connect (gkeconnect.googleapis.com)

    Esta definição também controla a região na qual os seguintes elementos são armazenados:

    • Os metadados do cluster de que a API GKE On-Prem precisa para gerir o ciclo de vida do cluster
    • Os dados do Cloud Logging e do Cloud Monitoring dos componentes do sistema
    • O registo de auditoria do administrador criado pelos registos de auditoria da nuvem

    O campo Google Cloud API Location corresponde à flag --location no comando gkectl register bootstrap.

  3. No campo Versão do cluster de administrador, introduza a versão a usar para criar o cluster. A versão que selecionar aqui tem de corresponder à versão do pacote que especificar na flag --bundle-path no comando gkectl register bootstrap.

Configuração do vCenter

Se usou gkeadm para criar a sua estação de trabalho de administrador, abra o ficheiro de configuração da estação de trabalho de administrador para poder copiar valores da secção vCenter para os campos na consola. Tenha em atenção que o ficheiro de configuração do cluster de administrador gerado também contém estas informações.

A maioria dos campos nesta secção é imutável. Consulte a secção vCenter na referência do ficheiro de configuração do cluster de administrador se precisar de saber se um campo é mutável ou imutável.

  1. No campo Endereço, introduza o endereço do vCenter Server.

    • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.credentials.address.

    • O campo Address corresponde à flag --vcenter-address no comando gkectl register bootstrap.

  2. No campo Datacenter, introduza o nome do seu centro de dados do vCenter.

    • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.datacenter.

    • O campo Datacenter corresponde à flag --vcenter-datacenter no comando gkectl register bootstrap.

  3. No campo Nome do cluster, introduza o nome do seu cluster do vCenter.

    • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.cluster.

    • O campo Nome do cluster corresponde à flag --vcenter-cluster no comando gkectl register bootstrap.

  4. No campo Conjunto de recursos, introduza o nome ou o caminho do seu conjunto de recursos do vCenter.

    • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.resourcePool.

    • O campo Conjunto de recursos corresponde à flag --vcenter-resource-pool no comando gkectl register bootstrap.

  5. Configure uma opção de armazenamento introduzindo uma das seguintes opções:

    • Campo Datastore: introduza o nome do seu armazenamento de dados do vCenter. O valor que especificar tem de ser um nome e não um caminho. Se precisar de introduzir um caminho, introduza-o no campo Pasta.

      • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.datastore.

      • O campo Datastore corresponde à flag --vcenter-datastore no comando gkectl register bootstrap.

    • Campo Nome da política de armazenamento: introduza o nome da política de armazenamento de VMs para os nós do cluster. Para mais informações, consulte o artigo Configure uma política de armazenamento.

      • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.storagePolicyName.

      • O campo Nome da política de armazenamento corresponde à flag --vcenter-storage-policy no comando gkectl register bootstrap.

    Tem de introduzir um valor no campo Datastore ou no campo Storage Policy Name, mas não em ambos.

  6. Opcionalmente, no campo Pasta, introduza o nome da pasta do vCenter onde as VMs do cluster vão estar localizadas.

    • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.folder.

    • O campo Pasta corresponde à flag --vcenter-folder no comando gkectl register bootstrap.

  7. No campo Rede, introduza o nome da sua rede do vCenter.

    • Ficheiro de configuração da estação de trabalho de administração: use o valor do campo vCenter.network.

    • O campo Network corresponde à marca --vcenter-network no comando gkectl register bootstrap.

  8. No campo Caminho do certificado da AC, introduza o caminho para o certificado da AC de raiz do seu vCenter Server.

    • Se usou o gkeadm para criar a estação de trabalho de administração, o gkeadm copiou o ficheiro de certificado da AC que tinha localmente para a estação de trabalho de administração.

    • O campo Caminho do certificado da CA corresponde a --vcenter-ca-cert-path no comando gkectl register bootstrap.

Obtenha o certificado da AC

Depois de criar o cluster de arranque, tem de fornecer o certificado de AC do vCenter no formato PEM no campo Dados do certificado de AC na página Noções básicas do cluster. Execute o seguinte comando para apresentar o certificado:

cat CA_CERT_PATH

Substitua CA_CERT_PATH pelo caminho para o certificado da CA raiz do vCenter Server. Se executar este comando localmente, use o caminho em vCenter.caCertPath no ficheiro de configuração da estação de trabalho de administrador.

Copie todo o certificado para um editor de texto para que possa colá-lo no campo Dados do certificado da AC na página Noções básicas do cluster após a criação do cluster de arranque.

Inicialize o ambiente a partir da estação de trabalho do administrador

Quando executa o comando gkectl register bootstrap, é-lhe pedido o nome de utilizador e a palavra-passe da conta do vCenter. Certifique-se de que tem as credenciais disponíveis. Se usou gkeadm para criar a estação de trabalho de administrador, o nome de utilizador e a palavra-passe encontram-se no ficheiro credential.yaml.

  1. Desloque a página até à secção Inicialize o ambiente a partir da estação de trabalho do administrador para apresentar o comando gkectl register bootstrap.

    Deixe esta página aberta enquanto acede à estação de trabalho de administração para criar o cluster de arranque.

  2. Copie e cole o comando gkectl register bootstrap num editor de texto para poder especificar valores para as seguintes flags:

        ./gkectl register bootstrap \
          ...
          --bundle-path=BUNDLE_PATH \
          ...
          --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \
          --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \
          --stackdriver-service-account-key-path=LOG_MON_SA_PATH \
          --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
    

    Substitua o seguinte pelos caminhos da estação de trabalho do administrador:

    • BUNDLE_PATH: o caminho para o ficheiro do pacote. Se usou o comando gkeadm para criar a estação de trabalho de administração, o ficheiro do pacote encontra-se em /var/lib/gke/bundles/. O nome do ficheiro depende da versão do Google Distributed Cloud. Por exemplo, gke-onprem-vsphere-1.31.0-gke.889-full.tgz.
    • COMPONENT_ACCESS_SA_PATH: o caminho para o ficheiro de chave da conta de serviço de acesso aos componentes.
    • CONNECT_REGISTER_SA_PATH: o caminho para o ficheiro de chave da conta de serviço connect-register.
    • LOG_MON_SA_PATH: o caminho para o ficheiro de chave da conta de serviço de registo e monitorização.
    • CLOUD_AUDIT_SA_PATH: o caminho para a conta de serviço de registo de auditoria. Se não criou uma conta de serviço de registo de auditoria, especifique o caminho para o ficheiro de chave da conta de serviço de registo e monitorização.

    Além disso, se usou o gkeadm para criar a sua estação de trabalho de administrador, o gkectl foi transferido para o diretório /usr/bin/. Neste caso, remova ./ do início do comando, uma vez que gkectl não se encontra no diretório de trabalho atual.

  3. Use SSH para se ligar à sua estação de trabalho de administração.

  4. Copie o comando e cole-o numa janela de terminal na sua estação de trabalho de administrador.

  5. Quando lhe for pedido, introduza (ou copie e cole) o nome de utilizador do vCenter. O nome de utilizador não é repetido no ecrã.

  6. Quando lhe for pedido, introduza (ou copie e cole) a palavra-passe do vCenter. A palavra-passe não é repetida no ecrã.

O comando executa várias validações. Depois de gkectl criar com êxito o cluster de arranque, vê um resultado semelhante ao seguinte, que é truncado para facilitar a leitura:

Running workstation validations
- Validation Category: Workstation
    - [SUCCESS] Workstation OS
    - [SUCCESS] Workstation Hardware
    - [SUCCESS] Workstation Package
    - [SUCCESS] Workstation NTP
    - [SUCCESS] Workstation Docker
...
All validation results were SUCCESS.
Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz
...
Successfully created and registered the bootstrap cluster
...
Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -

O processo continua a ser executado até o cluster de administrador ser criado.

Se sair do comando gkectl register bootstrap antes de o cluster de administrador ser criado, a criação do cluster de administrador falha e tem de eliminar o cluster de arranque com o seguinte comando:

gkectl delete bootstrap \
    --target-cluster-name=ADMIN_CLUSTER_NAME \
    --project-id=PROJECT_ID \
    --location=REGION \
     --register-service-account-key-path=CONNECT_REGISTER_SA_PATH

Conclua a configuração do cluster de administrador

Regresse à consola e siga os passos abaixo:

  1. Na página Instalar ambiente de arranque, clique em Verificar ligação.

    Se for bem-sucedida, a consola apresenta a mensagem Ligação estabelecida.

    A ligação ao cluster de arranque tem de ser estabelecida antes de continuar. Se a ligação não for estabelecida, verifique os argumentos que especificou no comando gkectl register bootstrap:

    • Certifique-se de que o valor de --target-cluster-name corresponde ao nome do cluster de administrador apresentado na secção Noções básicas do ambiente de arranque.

    • Certifique-se de que o valor de --project-id corresponde ao ID do projeto que selecionou na consola.

    Se precisar de alterar o nome do cluster de arranque, o ID do projeto ou outros valores de flags, faça o seguinte:

    1. Introduza Ctrl-C para sair de gkectl register bootstrap.
    2. Elimine o cluster de arranque:

      gkectl delete bootstrap \
        --target-cluster-name=ADMIN_CLUSTER_NAME \
        --project-id=PROJECT_ID \
        --location=REGION \
        --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
      
    3. Execute novamente o comando gkectl register bootstrap.

  2. Clique em Seguinte: noções básicas do cluster para começar a configurar o cluster de administrador.

Noções básicas sobre clusters

  1. No campo Dados do certificado da AC, copie e cole todo o certificado da AC do vCenter no formato PEM, conforme descrito anteriormente na secção Obtenha o certificado da AC.

  2. Na secção Autorização, introduza os endereços de email dos utilizadores aos quais quer conceder a função clusterrole/view do Kubernetes só de leitura. Tenha em atenção que o seu endereço de email é adicionado automaticamente. As políticas de controlo de acesso baseado em funções (RBAC) aplicadas permitem que os utilizadores executem comandos só de leitura através do gateway de ligação.

  3. Clique em Plano de controlo seguinte.

Plano de controlo

  1. Reveja as predefinições na secção Plano de controlo e altere-as conforme necessário.

  2. Na secção IPs de nós do plano de controlo, introduza os endereços IP nos seguintes campos:

    • Gateway: o endereço IP do gateway predefinido para a sub-rede que tem os nós do cluster.

    • Máscara de rede: a máscara de rede para a sub-rede que tem os nós do cluster.

    • Endereços IP: introduza o endereço IP e, opcionalmente, o nome do anfitrião para os três nós do plano de controlo.

  3. Clique em Seguinte: rede.

Trabalhar em rede

Nesta secção, especifica as informações de rede necessárias para criar o cluster de administrador.

  1. Na secção CIDRs de serviços e agrupamentos, aceite os valores predefinidos para os intervalos de endereços IP de serviços e agrupamentos do Kubernetes ou introduza intervalos de endereços CIDR diferentes.

    • CIDR do serviço: o intervalo mais pequeno possível é /24. Maior intervalo possível: /12.

    • CIDR do agrupamento: o intervalo mais pequeno possível é /18. Maior intervalo possível: /8`.

  2. Na secção Host config, especifique os servidores NTP, os servidores DNS e, opcionalmente, os domínios de pesquisa DNS usados pelas VMs que são os nós do cluster. Depois de criar o cluster, não pode modificar estes valores.

  3. Clique em Seguinte: equilibrador de carga.

Balanceador de carga

Nesta secção, seleciona o tipo de balanceador de carga a usar. Para mais informações, consulte a Vista geral do equilíbrio de carga.

  1. Na lista Tipo de balanceador de carga, selecione um balanceador de carga:

    • Incluído no MetalLB: o balanceador de carga do MetalLB está incluído e requer menos configuração do que o balanceamento de carga manual. Os componentes do MetalLB são executados nos nós do cluster, pelo que não tem de criar VMs separadas para o equilibrador de carga.

    • Manual: pode usar qualquer equilibrador de carga à sua escolha, desde que o configure antes de criar o cluster. Com qualquer equilibrador de carga que configurar manualmente, tem de configurar mapeamentos entre IPs virtuais (VIPs), endereços de nós e valores de nodePort.

  2. No campo VIP do plano de controlo, introduza o VIP a usar para o tráfego enviado para o servidor da API Kubernetes.

  3. Clique em Validar e criar.

    A consola apresenta mensagens de estado à medida que valida as definições e cria o cluster no seu centro de dados.

    Se existir um problema com a configuração, a consola apresenta uma mensagem de erro que deve ser suficientemente clara para corrigir o problema de configuração e tentar novamente criar o cluster.

Os detalhes sobre o processo de criação de clusters são apresentados na estação de trabalho do administrador. Se as verificações pré-voo forem aprovadas, vê algo semelhante ao seguinte:

[2023-03-22 23:12:47+0000] Waiting for cluster kubeconfig to become ready OK
[2023-03-22 23:15:47+0000] Writing kubeconfig file
[2023-03-22 23:15:47+0000] kubeconfig of cluster being created is present at gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig
[2023-03-22 23:15:47+0000] Please restrict access to this file as it contains authentication credentials of your cluster.
[2023-03-22 23:15:47+0000] Waiting for cluster to become ready OK
[2023-03-22 23:20:17+0000] Please run
[2023-03-22 23:20:17+0000] kubectl --kubeconfig gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig get nodes
[2023-03-22 23:20:17+0000] to get cluster nodes status.
[2023-03-22 23:20:17+0000] Waiting for node pools to become ready OK
[2023-03-22 23:20:37+0000] Waiting for metrics to become ready in GCP OK
[2023-03-22 23:25:38+0000] Waiting for cluster API provider to install in the created admin cluster OK
[2023-03-22 23:25:48+0000] Moving admin cluster resources to the created admin cluster
[2023-03-22 23:25:51+0000] Waiting for node update jobs to finish OK
[2023-03-22 23:27:41+0000] Flushing logs... OK
[2023-03-22 23:27:41+0000] Deleting membership... OK
[2023-03-22 23:27:42+0000] Deleting bootstrap cluster.

Ligue-se ao cluster de administrador

O comando gkectl register bootstrap cria um ficheiro kubeconfig para o cluster de administrador na sua estação de trabalho de administrador. O diretório onde o ficheiro kubeconfig está localizado e o nome do ficheiro baseiam-se no nome do cluster de administrador da seguinte forma:

gkectl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig

Tem de restringir o acesso a este kubeconfig porque contém credenciais de autenticação para o cluster.

Além disso, pode executar comandos kubectl só de leitura através do gateway de ligação.

  1. Execute o seguinte comando num computador com a CLI gcloud para obter uma entrada kubeconfig que possa aceder ao cluster através do gateway de ligação.

    gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME \
        --project=PROJECT_ID
    

    O resultado é semelhante ao seguinte:

    Starting to build Gateway kubeconfig...
    Current project_id: PROJECT_ID
    A new kubeconfig entry "connectgateway_PROJECT_ID_global_ADMIN_CLUSTER_NAME" has been generated and set as the current context.
    
  2. Agora, pode executar comandos kubectl só de leitura através do gateway de ligação:

    kubectl get pods -A
    

    Se precisar de privilégios administrativos completos para o cluster de administrador, consulte o artigo Configure o gateway de ligação.

Resolução de problemas

Consulte o artigo Resolução de problemas de criação e atualização de clusters.

O que se segue?

Crie um cluster de utilizadores