Criar um cluster de administrador

Nesta página, mostramos como criar um cluster de administrador para o Google Distributed Cloud. O cluster de administrador gerencia clusters de usuários que executam suas cargas de trabalho. Se você quiser usar domínios de topologia, consulte Criar um cluster de administrador para uso com domínios de topologia.

Esta página é destinada a administradores, arquitetos e operadores que configuram, monitoram e gerenciam a infraestrutura de tecnologia. Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no conteúdo do Google Cloud , consulte Tarefas e funções de usuário comuns do GKE.

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

Na versão 1.33 e mais recentes, todos os novos clusters são criados como clusters avançados. Confira as diferenças ao executar clusters avançados.

Antes de começar

  • Verifique se você configurou e pode fazer login na estação de trabalho do administrador, conforme descrito em Criar uma estação de trabalho de administrador.

  • Verifique se os arquivos de chave JSON das contas de serviço estão na estação de trabalho do administrador.

  • Consulte o documento de planejamento de endereços IP. Verifique se há endereços IP suficientes disponíveis para os três nós do plano de controle e um VIP do plano de controle. Se você planeja criar clusters de usuários do kubeception, é necessário ter endereços IP suficientes disponíveis para os nós do plano de controle desses clusters de usuários.

  • Consulte a visão geral do balanceamento de carga e reveja sua decisão sobre o tipo de balanceador de carga que você quer usar. Para balanceadores de carga manuais, configure o balanceador antes de criar o cluster de administrador.

  • Se você estiver usando gkectl para criar o cluster de administrador, decida se quer usar um registro público ou particular para componentes do Google Distributed Cloud. Para informações sobre como usar um registro privado do Docker, consulte privateRegistry. Nem o Terraform nem o console do Google Cloud permitem usar um registro particular do Docker para componentes do sistema.

  • Decida que tipo de sistema operacional você quer executar nos nós de cluster de administrador.

  • Se a organização exigir que o tráfego de saída passe por um servidor proxy, inclua as APIs necessárias e o endereço do Artifact Registry na lista de permissões.

  • Na versão 1.29 e mais recentes, as verificações de simulação do lado do servidor são ativadas por padrão. Verificações de simulação do lado do servidor não exigem regras de firewall adicionais. Em Regras de firewall para clusters de administrador, pesquise "Verificações de simulação" e garantir que todas as regras de firewall necessárias sejam configurados. As verificações de simulação do lado do servidor são executadas no cluster de inicialização em vez de localmente na estação de trabalho do administrador.

Crie um cluster de administrador com a ferramenta de sua escolha

Nesta seção, fornecemos etapas para criar um cluster de administrador usando gkectl, Terraform e o console Google Cloud . Para informações que ajudam a escolher uma ferramenta e limitações de algumas delas, consulte Escolher uma ferramenta para gerenciar o ciclo de vida do cluster.

gkectl

Visão geral do procedimento

Estas são as principais etapas para criar um cluster de administrador:

  1. Preencher os arquivos de configuração.
    Especifique os detalhes do novo cluster de administrador preenchendo e validando um arquivo de configuração do cluster de administrador, um arquivo de configuração de credenciais e possivelmente um arquivo de bloco de IP.
  2. Importe imagens do SO para o vSphere e envie imagens de contêiner para o registro particular, se aplicável.
    Executar gkectl prepare.
  3. Criar um cluster de administrador.
    Use gkectl para criar um novo cluster de administrador, conforme especificado nos arquivos de configuração concluídos. Quando o Google Distributed Cloud cria um cluster de administrador, ele implanta um cluster do Kubernetes no Docker (tipo) para hospedar temporariamente os controladores do Kubernetes necessários para criar o cluster de administrador. Esse cluster transitório é chamado de cluster de inicialização. Os clusters de usuário são criados e atualizados pelo administrador de gerenciamento sem o uso de um cluster de inicialização.
  4. Verifique se o cluster de administrador está em execução.
    Use o kubectl para ver os nós do cluster.

No final do procedimento, você terá um cluster de administrador em execução para criar e gerenciar clusters de usuários.

Se você usa o VPC Service Controls, talvez apareçam erros ao executar alguns comandos gkectl, como "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services". Para evitar esses erros, adicione o parâmetro --skip-validation-gcp aos comandos.

Preencher o arquivo de configuração

  • Verifique se a estação de trabalho do administrador tem a versão necessária do gkectl. Normalmente, você usa a mesma versão do gkectl que será usada ao criar o cluster. Você especifica a versão do cluster no campo gkeOnPremVersion do arquivo 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 usando a versão 1.29 do gkectl. As versões de patch não importam. Por exemplo, é possível usar a versão 1.29.0-gke.1456 do gkectl para criar um cluster com uma versão de patch mais recente, como 1.29.1000-gke.94.

    • A versão secundária gkectl não pode ser mais de duas versões secundárias mais recente do que a versão do cluster. Por exemplo, se você estiver criando um cluster 1.28, a versão gkectl poderá ser 1.29 ou 1.30. Mas não é possível usar a versão 1.31 do gkectl porque ela é três versões secundárias mais recente que a versão do cluster.

    Se necessário, consulte Fazer o download do gkectl para baixar uma versão compatível do gkectl.

Se você usou gkeadm para criar a estação de trabalho do administrador, ela gerou um arquivo de configuração chamado admin-cluster.yaml.

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

gkectl create-config admin

Esse arquivo de configuração serve para criar seu cluster de administrador.

Para se familiarizar com o arquivo de configuração, leia o documento arquivo de configuração do cluster de administrador. É recomendável manter esse documento aberto em uma guia ou janela separada para fazer referência a ele ao concluir as etapas a seguir.

name

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

bundlePath

O pacote é um arquivo compactado que contém componentes de cluster. Ele está incluído na estação de trabalho de administrador. Este campo já foi preenchido para você.

vCenter

Os campos nesta seção já estão preenchidos com os valores que você inseriu quando criou sua estação de trabalho de administrador.

enableAdvancedCluster

Na versão 1.31, se você quiser ativar o recurso avançado de cluster, defina enableAdvancedCluster como true.

Observe as seguintes diferenças entre as versões:

  • Na versão 1.31, o recurso de cluster avançado está em prévia:

    • É possível ativar o cluster avançado no momento da criação apenas para novos clusters 1.31.

    • Depois que o cluster avançado for ativado, não será possível fazer upgrade dele para a versão 1.32. Ative o cluster avançado apenas em um ambiente de teste.

  • Na versão 1.32, o recurso de cluster avançado está em disponibilidade geral.

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

    • Para clusters com o recurso de clusters avançados ativado, os upgrades de cluster são compatíveis.

  • Na versão 1.33 e mais recentes, todos os clusters são criados como clusters avançados. Se você definir enableAdvancedCluster como false, a criação do cluster vai falhar.

network

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

O network.podCIDR e o network.serviceCIDR têm valores pré-preenchidos que não podem ser alterados, a menos que entrem em conflito com endereços que já estão em uso na sua rede. O Kubernetes usa esses intervalos para atribuir endereços IP a pods e serviços no cluster.

Preencha o restante dos campos na seção de rede do arquivo de configuração conforme necessário.

loadBalancer

Separe um VIP para o servidor da API do Kubernetes do cluster de administrador. Informe seu VIP como o valor de loadBalancer.vips.controlPlaneVIP.

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

Decida qual tipo de balanceamento de carga você quer usar. As opções são:

  • Balanceamento de carga em pacote MetalLB. Defina loadBalancer.kind como "MetalLB".

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

Para mais informações, consulte Visão geral do balanceamento de carga.

antiAffinityGroups

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

Use esse campo para especificar se você quer que o Google Distributed Cloud crie regras de antiafinidade Programador de recursos distribuído (DRS) do VMware para os nós do cluster de administrador, fazendo com que eles sejam distribuídos por pelo menos três hosts físicos no data center.

adminMaster

Se você quiser especificar a CPU e a memória para os nós do plano de controle do cluster de administrador, preencha os campos cpus e memoryMB no adminMaster.

Os clusters de administrador precisam ter três nós do plano de controle. Defina o campo replicas na seção adminMaster como 3.

proxy

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

privateRegistry

Decida onde você quer manter as imagens de contêiner dos componentes do Google Distributed Cloud. As opções são:

  • Artifact Registry

  • Seu próprio registro particular do Docker.

    Se você quiser usar seu próprio registro particular, preencha a seção privateRegistry.

Para mais informações sobre como usar um registro particular, incluindo diferenças entre clusters normais e avançados, consulte Configurar um registro de contêiner particular.

componentAccessServiceAccountKeyPath

O Google Distributed Cloud usa sua conta de serviço de acesso a componentes para fazer o download de componentes do cluster do Artifact Registry. Esse campo contém o caminho de um arquivo de chave JSON para sua conta de serviço de acesso a componentes.

Este campo já foi preenchido para você.

gkeConnect

Registre seu cluster de administrador em uma frota do Google Cloud preenchendo a seçãogkeConnect. Se você incluir as seções stackdriver e cloudAuditLogging no arquivo de configuração, o ID em gkeConnect.projectID precisará ser o mesmo definido em stackdriver.projectID e cloudAuditLogging.projectID. Se os IDs do projeto não forem iguais, a criação do cluster falhará.

Na versão 1.28 e mais recentes, é possível especificar uma região em que os serviços de frota e Connect são executados em gkeConnect.location. Se você não incluir esse campo, o cluster vai usar as instâncias globais desses serviços.

Se você incluir gkeConnect.location, a região especificada precisará ser a mesma configurada em cloudAuditLogging.clusterLocation, stackdriver.clusterLocation e gkeOnPremAPI.location. Se as regiões não forem iguais, a criação do cluster falhará.

gkeOnPremAPI

Se a API GKE On-Prem estiver ativada no seu projetoGoogle Cloud , todos os clusters do projeto serão registrados na API GKE On-Prem automaticamente na região configurada em stackdriver.clusterLocation. A região gkeOnPremAPI.location precisa ser a mesma especificada em cloudAuditLogging.clusterLocation, gkeConnect.location e stackdriver.clusterLocation. Se as regiões não forem iguais, a criação do cluster falhará.

  • Se você quiser registrar todos os clusters do projeto na API GKE On-Prem, siga as etapas em Antes de começar para ativar e usar a API GKE On-Prem no projeto.

  • Se você não quiser registrar o cluster na API GKE On-Prem, inclua esta seção e defina gkeOnPremAPI.enabled como false. Se você não quiser registrar clusters no projeto, desative gkeonprem.googleapis.com (o nome do serviço da API GKE On-Prem) no projeto. Para instruções, consulte Como desativar serviços.

stackdriver

Se você quiser ativar o Cloud Logging e o Cloud Monitoring para o cluster, preencha a seção stackdriver.

Esta seção é obrigatória por padrão. Ou seja, se você não preencher essa seção, inclua a sinalização --skip-validation-stackdriver ao executar gkectl create admin.

Observe os requisitos abaixo:

  • Se você ativar o cluster avançado, especifique o mesmo caminho em cloudAuditLogging.serviceAccountKeyPath e stackdriver.serviceAccountKeyPath.

  • O ID em stackdriver.projectID precisa ser o mesmo que o ID em gkeConnect.projectID e cloudAuditLogging.projectID.

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

Se os IDs do projeto e as regiões não forem iguais, a criação do cluster vai falhar.

cloudAuditLogging

Se você quiser integrar os registros de auditoria do servidor da API Kubernetes do cluster com os registros de auditoria do Cloud, preencha a seção cloudAuditLogging.

Observe os requisitos abaixo:

  • Se você ativar o cluster avançado, especifique o mesmo caminho em cloudAuditLogging.serviceAccountKeyPath e stackdriver.serviceAccountKeyPath.

  • O ID em cloudAuditLogging.projectID precisa ser o mesmo que o ID em gkeConnect.projectID e stackdriver.projectID.

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

Se os IDs do projeto e as regiões não forem iguais, a criação do cluster vai falhar.

clusterBackup

Se você quiser ativar o backup do cluster de administrador, defina clusterBackup.datastore como o armazenamento de dados do vSphere em que você quer salvar os backups de cluster.

Se você ativar o cluster avançado, remova esta seção. Não é possível fazer backup do cluster de administrador em um armazenamento de dados do vSphere.

autoRepair

Se você quiser ativar o reparo automático de nós no cluster de administrador, defina autoRepair.enabled como true.

secretsEncryption

Se você quiser ativar a criptografia de Secrets sempre ativada, preencha a seção secretsEncryption.

Se você ativar o cluster avançado, defina secretsEncryption.enabled como false. A criptografia de secrets sempre ativada não é compatível.

osImageType

Decida o tipo de imagem do SO que você quer usar para os nós do cluster de administrador e preencha a seção osImageType conforme necessário.

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

Exemplo de arquivos de configuração preenchidos

Veja um exemplo de um arquivo de configuração de cluster de administrador preenchido. A configuração ativa alguns, mas não todos, os recursos disponíveis.

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"

Validar o arquivo de configuração

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

gkectl check-config --config ADMIN_CLUSTER_CONFIG

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

Se o comando retornar mensagens, corrija os problemas e valide o arquivo novamente.

Se quiser pular as validações mais demoradas, transmita a sinalização --fast. Para pular validações individuais, use as flags --skip-validation-xxx. Para saber mais sobre o comando check-config, consulte Como executar verificações de simulação.

Instalar imagens do SO

Execute gkectl prepare para inicializar o ambiente do vSphere:

gkectl prepare --config ADMIN_CLUSTER_CONFIG

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

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

  • Se você estiver usando um registro particular do Docker, as imagens do contêiner serão enviadas para seu registro.

  • Como alternativa, valide os atestados de build das imagens do contêiner, verificando se as imagens foram criadas e assinadas pelo Google e estão prontas para implantação.

Crie o cluster de administrador

Crie o cluster de administrador:

gkectl create admin --config ADMIN_CLUSTER_CONFIG

Se você usa o VPC Service Controls, talvez apareçam erros ao executar alguns comandos gkectl, como "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services". Para evitar esses erros, adicione o parâmetro --skip-validation-gcp aos comandos.

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

Se a criação do cluster de administrador falhar ou for cancelada, será possível executar o comando create novamente:

gkectl create admin --config ADMIN_CLUSTER_CONFIG

Localizar o arquivo kubeconfig do cluster de administrador

O comando gkectl create admin cria um arquivo kubeconfig chamado kubeconfig no diretório atual. Você precisará desse arquivo kubeconfig mais tarde para interagir com o cluster de administrador.

O arquivo kubeconfig contém o nome do cluster de administrador. Para acessar o nome do cluster, execute o seguinte:

kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG

A saída mostra o nome do cluster. Por exemplo:

NAME
gke-admin-tqk8x

Se preferir, é possível alterar o nome e o local do arquivo kubeconfig.

Gerenciar o arquivo checkpoint.yaml

Esta seção se aplica apenas a clusters de administrador sem alta disponibilidade. O arquivo checkpoint.yaml não é usado na criação de clusters de administrador de alta disponibilidade.

Quando você executou o comando gkectl create admin para criar o cluster de administrador, ele criou um arquivo de ponto de controle na mesma pasta do armazenamento de dados do disco de dados do cluster de administrador. Por padrão, esse arquivo tem o nome DATA_DISK_NAME‑checkpoint.yaml. Se o comprimento de DATA_DISK_NAME for maior ou igual a 245 caracteres, devido ao limite de vSphere no tamanho do nome de arquivo, o nome será DATA_DISK_NAME.yaml.

Esse arquivo contém o estado e as credenciais do cluster de administrador e é usado para upgrades futuros. Não exclua esse arquivo, a menos que você esteja seguindo o processo de exclusão de um cluster de administrador.

Se você tiver ativado a criptografia de VM na instância do vCenter Server, precisará ter o privilégio Operações criptográficas.Acesso direto antes de criar ou fazer upgrade do cluster de administrador. Caso contrário, o checkpoint não será enviado. Se você não conseguir esse privilégio, desative o upload do arquivo de checkpoint usando a sinalização oculta --disable-checkpoint ao executar um comando relevante.

O arquivo checkpoint.yaml é atualizado automaticamente quando você executa o comando gkectl upgrade admin ou 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 administrador está em execução:

kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG

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

A saída mostra os nós do cluster de administrador. 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   ...

Fazer backup de arquivos

Recomendamos que você faça backup do arquivo kubeconfig do cluster de administrador. Ou seja, copie o arquivo kubeconfig da estação de trabalho do administrador para outro local. Se você perder o acesso à estação de trabalho do administrador ou se o arquivo kubeconfig na estação de trabalho de administrador for excluído acidentalmente, você ainda terá acesso ao cluster de administrador.

Também recomendamos que você faça backup da chave SSH privada do cluster de administrador. Em seguida, se você perder o acesso ao cluster de administrador, ainda vai poder usar o SSH para se conectar aos nós desse cluster. Isso permite resolver e investigar problemas de conectividade com o cluster de administrador.

Extraia a chave SSH do cluster de administrador para um arquivo chamado 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 já é possível fazer backup do admin-cluster-ssh-key em outro local que quiser.

Políticas de RBAC

Quando você preenche a seção gkeConnect no arquivo de configuração do cluster de administrador, o cluster é registrado na sua frota durante a criação ou atualizar. Para ativar a funcionalidade de gerenciamento de frota,o Google Cloud implanta o agente do Connect e cria uma conta de serviço do Google que representa o projeto em que o cluster está registrado. O agente do Connect estabelece uma conexão com a conta de serviço para processar solicitações para o servidor da API Kubernetes do cluster. Assim, você tem acesso aos recursos de gerenciamento de clusters e cargas de trabalho no Google Cloud, incluindo o acesso ao console doGoogle Cloud , que permite interagir com o cluster.

O servidor da API Kubernetes do cluster de administrador precisa autorizar solicitações do agente do Connect. Para garantir isso, as seguintes políticas de controle de acesso baseado em papéis (RBAC) são configuradas na conta de serviço:

  • Uma política de falsificação de identidade que autoriza o agente do Connect a enviar solicitações ao servidor da API Kubernetes em nome de uma conta de serviço.

  • Uma política de permissões que especifica as operações permitidas em outros recursos do Kubernetes.

A conta de serviço e as políticas do RBAC são necessárias para gerenciar o ciclo de vida dos clusters de usuário no Google Cloud console.

Terraform

Visão geral do procedimento

Antes de criar o cluster de administrador, você precisa executar o comando gkectl register bootstrap na estação de trabalho do administrador. Esse comando implanta um cluster do Kubernetes no Docker (tipo) na estação de trabalho do administrador. Esse cluster de inicialização hospeda os controladores do Kubernetes necessários para criar o cluster de administrador. Quando você cria o cluster de administrador, os controladores no cluster de inicialização provisionam os nós, executam verificações de simulação e registram o cluster de administrador na frota. O cluster de inicialização é excluído automaticamente após a criação do cluster de administrador.

Confira a seguir as etapas gerais para criar um cluster de administrador usando o Terraform:

  1. Preencha o arquivo de configuração.
    Use o recurso google_gkeonprem_vmware_admin_cluster e o exemplo a seguir para criar o arquivo de configuração main.tf.
  2. Crie um cluster bootstrap.
    Execute o gkectl register bootstrap para criar o cluster de inicialização. Quando o comando terminar de criar o cluster de inicialização, a saída vai informar que você precisa concluir a configuração do cluster de administrador. O processo continua sendo executado até que o cluster de administrador seja criado.
  3. Criar um cluster de administrador.
    Em outra janela de terminal ou em outro computador com acesso à API GKE On-Prem, execute comandos terraform para criar um cluster de administrador, conforme especificado no arquivo de configuração main.tf concluído.

Preencher o arquivo de configuração

O exemplo a seguir mostra a criação de um cluster de administrador de alta disponibilidade (HA) com três nós do plano de controle com o MetalLB. Na versão 1.28 e mais recentes, os novos clusters de administrador precisam ser de alta disponibilidade. Por isso, você precisa definir control_plane_node.replicas como 3.

Para mais informações e outros exemplos, consulte a documentação de referência de google_gkeonprem_vmware_admin_cluster. Para informações sobre como usar um registro particular para imagens do sistema, consulte Configurar um registro de contêiner particular.

Preencha as variáveis de marcador no exemplo a seguir e copie e cole em main.tf. Se você usou gkeadm para criar a estação de trabalho do administrador, abra o arquivo de configuração dela para copiar valores da seção vCenter para as variáveis de marcador 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:

  • ADMIN_CLUSTER_NAME: o nome do cluster de administrador. O nome pode ter até 20 caracteres.

  • PROJECT_ID: o ID do projeto Google Cloud .

  • REGION: a Google Cloud região em que 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 compatível.

    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 usando o Terraform só é compatível com as versões 1.28 e mais recentes. A versão especificada aqui precisa corresponder à versão do pacote especificada na flag --bundle-path do comando gkectl register bootstrap. Para conferir uma lista de versões, consulte Versões do Google Distributed Cloud.

  • IMAGE_TYPE: o tipo de imagem do SO a ser executado nos nós do cluster de administrador. Especifique uma das seguintes opções: "ubuntu_containerd", "cos", "ubuntu_cgv2" ou "cos_cgv2".

  • VCENTER_ADDRESS: o endereço do vCenter Server.

    • Arquivo de configuração da estação de trabalho de administrador: 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 data center do vCenter.

    • Arquivo de configuração da estação de trabalho de administrador: 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.

    • Arquivo de configuração da estação de trabalho de administrador: 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 caminho do seu pool de recursos do vCenter.

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

    • O campo vcenter.resource_pool corresponde à sinalização --vcenter-resource-pool no comando gkectl register bootstrap.

  • DATASTORE: o nome do seu armazenamento de dados do vCenter. O valor especificado precisa ser um nome, e não um caminho. Se você precisar inserir um caminho, adicione o seguinte campo: folder = "FOLDER"

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

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

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

  • FOLDER: o nome da pasta do vCenter em que as VMs do cluster estarão localizadas. Se você não estiver usando uma pasta, remova esse campo.

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

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

  • CA_CERT_DATA: insira o certificado de CA do vCenter no formato PEM. Para acessar os dados do certificado de CA:

    1. Execute este comando:

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

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

    2. Copie o certificado que foi gerado pelo comando anterior e cole em um editor de texto. Substitua todas as instâncias do caractere de barra invertida (\) por um caractere de nova linha (\n).

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

  • NETWORK: insira o nome da sua rede do vCenter.

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

    • O campo network_config.vcenter_network corresponde à sinalização --vcenter-network no comando gkectl register bootstrap.

  • GATEWAY: o endereço IP do gateway padrão da sub-rede que tem os nós do cluster do plano de controle.

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

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

  • NTP_SERVERS: o endereço IP do servidor de horário (NTP).

  • Insira os endereços IP e, opcionalmente, o nome do host para os três nós do plano de controle na seção control_plane_ip_block.ips. Se você não inserir um nome de host, remova os campos hostname da configuração.

  • NUM_CPUS : o número de vCPUs de cada nó do plano de controle no cluster de administrador. Precisa ser no mínimo 4.

  • MEMORY: número de mebibytes de memória para cada nó do plano de controle no cluster de administrador. Precisa ser no mínimo 8.192, mas recomendamos 16.384.

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

Opcional: configurar um registro particular

Por padrão, durante a criação ou o upgrade do cluster, o Google Distributed Cloud extrai imagens do sistema de gcr.io/gke-on-prem-release usando a conta de serviço de acesso a componentes. Se quiser, você pode fornecer seu próprio servidor de registro de contêiner para que as imagens do sistema sejam extraídas do seu servidor de registro particular.

Para configurar um registro particular, faça o seguinte:

  1. Adicione o código abaixo ao arquivo de configuração:

      private_registry_config {
        address = "ADDRESS"
        ca_cert = "CA_CERT"
      }
    

    Substitua:

    • ADDRESS: o endereço IP ou FQDN (nome de domínio totalmente qualificado) da máquina que executa o registro privado.

    • CA_CERT: a chave pública do certificado da CA para o registro particular.

  2. Se a rede estiver protegida por um servidor proxy, adicione o seguinte ao arquivo de configuração:

    proxy {
      url: "PROXY_SERVER_ADDRESS"
      no_proxy: "BYPASS_LIST"
    }
    

    Substitua:

    • PROXY_SERVER_ADDRESS: o endereço HTTP do seu servidor proxy. Inclua o número da porta mesmo que ele seja igual à porta padrão do esquema.

    • BYPASS_LIST: uma lista separada por vírgulas de endereços IP, intervalos de endereços IP, nomes de host e nomes de domínio que não podem passar pelo servidor proxy.

    Exemplo:

    url: "http://my-proxy.example.local:80"
    no_proxy: "192.0.2.0/24,my-host.example.local,198.51.100.0"
    

    Quando o Google Distributed Cloud envia uma solicitação para um desses endereços, hosts ou domínios, a solicitação ignora o servidor proxy e é enviada diretamente ao destino.

Para mais informações sobre como usar um registro particular, incluindo diferenças entre clusters normais e avançados, consulte Configurar um registro de contêiner particular.

Verificar o arquivo de configuração e o plano

No diretório em que main.tf está localizado, execute os seguintes comandos:

  1. Inicialize o Terraform:

    terraform init
    

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

  2. Crie o plano do Terraform:

    terraform plan -out tfplan
    

    Revise a configuração e faça mudanças, se necessário.

Antes de aplicar o plano, crie o cluster de inicialização conforme descrito na próxima seção.

Criar o cluster de inicialização

Quando você executa o comando gkectl register bootstrap, ele solicita o nome de usuário e a senha da conta do vCenter. Verifique se você tem as credenciais disponíveis. Se você usou gkeadm para criar a estação de trabalho de administrador, o nome de usuário e a senha estão no arquivo credential.yaml.

  1. Faça login na estação de trabalho do administrador usando SSH.

  2. Faça a autenticação com a Google Cloud CLI:

    gcloud auth login
    
  3. Execute o comando a seguir para criar o cluster de inicialização. Muitos dos valores de flag são os mesmos dos campos main.tf. No entanto, o comando usa outros valores que precisam ser especificados nas variáveis de marcador 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 de administrador:

    • CA_CERT_PATH: o caminho para o certificado de CA raiz do servidor vCenter.
    • BUNDLE_PATH: o caminho para o arquivo do pacote. Se você usou gkeadm para criar a estação de trabalho de administrador, o arquivo de pacote está localizado em /var/lib/gke/bundles/. O nome do arquivo 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 arquivo de chave da conta de serviço de acesso a componentes.
    • CONNECT_REGISTER_SA_PATH: o caminho para o arquivo de chave da conta de serviço connect-register.
    • LOG_MON_SA_PATH: o caminho para o arquivo de chave da conta de serviço do Logging e do Monitoring.
    • CLOUD_AUDIT_SA_PATH: o caminho para a conta de serviço de registro de auditoria. Se você não criou uma conta de serviço de registro de auditoria, especifique o caminho para o arquivo de chave da conta de serviço de registro e monitoramento.

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

    • Se você especificou uma pasta em main.tf, adicione a seguinte flag: --vcenter-folder=FOLDER
    • Se você especificou uma política de armazenamento de VM em main.tf, remova --vcenter-datastore e adicione a seguinte flag: --vcenter-storage-policy-name=STORAGE_POLICY_NAME
    • Se a estação de trabalho de administrador estiver em uma rede atrás de um servidor proxy, adicione as seguintes flags:

      • --proxy-url=PROXY_URL
      • --no-proxy=NO_PROXY

      Substitua:

      • PROXY_URL: o URL do servidor proxy.
      • NO_PROXY: o valor dos domínios e endereços IP excluídos do proxy, separados por vírgula.

    Se você adicionar uma flag, inclua o caractere de barra invertida (\) de continuação da linha de comando.

  4. Quando solicitado, digite (ou copie e cole) o nome de usuário do vCenter. O nome de usuário não é repetido na tela.

  5. Quando solicitado, insira (ou copie e cole) a senha do vCenter. A senha não é mostrada na tela.

O comando executa várias validações. Depois que gkectl criar o cluster de inicialização, será exibida uma saída como esta, que está truncada 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 sendo executado até que o cluster de administrador seja criado.

Se você sair do comando gkectl register bootstrap antes da criação do cluster de administrador, a criação vai falhar, e será necessário excluir o cluster de inicialização usando 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 leva 15 minutos ou mais. É possível visualizar o cluster no console do Google Cloud na página Clusters do GKE.

Console

Visão geral do procedimento

Antes de criar o cluster de administrador, você precisa executar o comando gkectl register bootstrap na estação de trabalho do administrador. Esse comando implanta um cluster do Kubernetes no Docker (tipo) na estação de trabalho do administrador. Esse cluster de inicialização hospeda os controladores do Kubernetes necessários para criar o cluster de administrador. Quando você cria o cluster de administrador, os controladores no cluster de inicialização provisionam os nós, executam verificações de simulação e registram o cluster de administrador na frota. O cluster de inicialização é excluído automaticamente após a criação do cluster de administrador.

Confira a seguir as etapas gerais para criar um cluster de administrador usando o console:

  1. No console, insira as informações necessárias para o gkectl register bootstrap. O console mostra o comando gkectl register bootstrap com as informações que você inseriu. O comando exibido também inclui flags para caminhos que precisam ser especificados antes da execução.

  2. Na estação de trabalho de administrador, execute gkectl register bootstrap para criar o cluster de inicialização. Quando o comando terminar de criar o cluster de inicialização, a saída vai informar que você precisa concluir a configuração do cluster de administrador. O processo continua sendo executado até que o cluster de administrador seja criado.

  3. Você volta ao console para terminar de inserir as informações necessárias para criar o cluster. Durante a criação do cluster, o comando gkectl register bootstrap gera informações de progresso e grava registros na estação de trabalho do administrador. Quando o cluster de administrador é criado, o cluster de inicialização é excluído automaticamente.

Começar a configurar o cluster

  1. No console, acesse a página Criar um cluster no VMware.

    Acessar "Criar um cluster no VMware"

  2. Selecione o projeto Google Cloud em que você quer criar o cluster.

    Quando você cria o cluster de inicialização em uma seção a seguir, o ID do projeto selecionado é mostrado no comando gkectl register bootstrap na flag --project-id.

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

  4. Clique em Próxima: instalar ambiente de inicialização.

Instalar o ambiente de inicialização

Nesta seção, insira as informações necessárias para o comando gkectl register bootstrap. À medida que você insere valores nos campos da UI, o console copia os valores para as flags correspondentes do comando gkectl register bootstrap exibido na seção Ambiente de inicialização da estação de trabalho do administrador na parte de baixo da página.

Noções básicas do ambiente de inicialização

  1. Digite um Nome para o cluster de administrador. O console usa o nome do cluster como o valor da flag --target-cluster-name no comando gkectl register bootstrap exibido na parte de baixo da página. O nome pode ter até 20 caracteres.

  2. No campo Local da APIGoogle Cloud , selecione uma região Google Cloudna lista. Essa configuração especifica a região em que as seguintes APIs e serviços são executados:

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

    Essa configuração também controla a região em que os seguintes itens são armazenados:

    • Os metadados do cluster de que a API GKE On-Prem precisa para gerenciar o ciclo de vida do cluster
    • Os dados do Cloud Logging e do Cloud Monitoring dos componentes do sistema
    • O registro de auditoria do administrador criado pelos registros de auditoria do Cloud

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

  3. No campo Versão do cluster de administrador, insira a versão a ser usada para criar o cluster. A versão selecionada aqui precisa corresponder à versão do pacote especificada na flag --bundle-path do comando gkectl register bootstrap.

Configuração do vCenter

Se você usou gkeadm para criar a estação de trabalho de administrador, abra o arquivo de configuração dela para copiar valores da seção vCenter para os campos no console. O arquivo de configuração do cluster de administrador gerado também contém essas informações.

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

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

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

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

  2. No campo Data center, insira o nome do seu data center do vCenter.

    • Arquivo de configuração da estação de trabalho de administrador: 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, insira o nome do seu cluster do vCenter.

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

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

  4. No campo Pool de recursos, insira o nome ou o caminho do pool de recursos do vCenter.

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

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

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

    • Campo Armazenamento de dados: insira o nome do seu armazenamento de dados do vCenter. O valor especificado precisa ser um nome, e não um caminho. Se você precisar inserir um caminho, faça isso no campo Pasta.

      • Arquivo de configuração da estação de trabalho de administrador: 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: insira o nome da política de armazenamento de VM para os nós do cluster. Para mais informações, consulte Configurar uma política de armazenamento.

      • Arquivo de configuração da estação de trabalho de administrador: 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.

    Insira um valor no campo Datastore ou Nome da política de armazenamento, mas não nos dois.

  6. Se quiser, no campo Pasta, insira o nome da pasta do vCenter em que as VMs do cluster estarão localizadas.

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

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

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

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

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

  8. No campo Caminho do certificado da CA, insira o caminho para o certificado de CA raiz do vCenter Server.

    • Se você usou gkeadm para criar a estação de trabalho do administrador, gkeadm copiou o arquivo de certificado da CA que você tinha localmente para a estação de trabalho do administrador.

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

Acessar o certificado de CA

Depois de criar o cluster de bootstrap, você precisará fornecer o certificado de CA do vCenter no formato PEM no campo Dados do certificado de CA na página Noções básicas do cluster. Execute o comando a seguir para mostrar o certificado:

cat CA_CERT_PATH

Substitua CA_CERT_PATH pelo caminho do certificado de CA raiz do seu vCenter Server. Se você executar esse comando localmente, use o caminho em vCenter.caCertPath no arquivo de configuração da estação de trabalho do administrador.

Copie todo o certificado para um editor de texto para que você possa colá-lo no campo Dados do certificado da CA na página Noções básicas do cluster depois que o cluster de bootstrap for criado.

Ambiente de inicialização da estação de trabalho do administrador

Quando você executa o comando gkectl register bootstrap, ele solicita o nome de usuário e a senha da conta do vCenter. Verifique se você tem as credenciais disponíveis. Se você usou gkeadm para criar a estação de trabalho de administrador, o nome de usuário e a senha estão no arquivo credential.yaml.

  1. Role até a seção Ambiente de inicialização da estação de trabalho do administrador para mostrar o comando gkectl register bootstrap.

    Deixe esta página aberta enquanto você acessa a estação de trabalho de administrador para criar o cluster de inicialização.

  2. Copie e cole o comando gkectl register bootstrap em um editor de texto para 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 de administrador:

    • BUNDLE_PATH: o caminho para o arquivo do pacote. Se você usou gkeadm para criar a estação de trabalho de administrador, o arquivo de pacote está localizado em /var/lib/gke/bundles/. O nome do arquivo 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 arquivo de chave da conta de serviço de acesso a componentes.
    • CONNECT_REGISTER_SA_PATH: o caminho para o arquivo de chave da conta de serviço connect-register.
    • LOG_MON_SA_PATH: o caminho para o arquivo de chave da conta de serviço do Logging e do Monitoring.
    • CLOUD_AUDIT_SA_PATH: o caminho para a conta de serviço de registro de auditoria. Se você não criou uma conta de serviço de registro de auditoria, especifique o caminho para o arquivo de chave da conta de serviço de registro e monitoramento.

    Além disso, se você usou gkeadm para criar a estação de trabalho do administrador, o gkectl foi baixado para o diretório /usr/bin/. Nesse caso, remova ./ do início do comando, já que gkectl não está no diretório de trabalho atual.

  3. Use SSH para se conectar à estação de trabalho do administrador.

  4. Copie e cole o comando em uma janela de terminal na estação de trabalho do administrador.

  5. Quando solicitado, digite (ou copie e cole) o nome de usuário do vCenter. O nome de usuário não é repetido na tela.

  6. Quando solicitado, insira (ou copie e cole) a senha do vCenter. A senha não é mostrada na tela.

O comando executa várias validações. Depois que gkectl criar o cluster de inicialização, será exibida uma saída como esta, que está truncada 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 sendo executado até que o cluster de administrador seja criado.

Se você sair do comando gkectl register bootstrap antes da criação do cluster de administrador, a criação vai falhar, e será necessário excluir o cluster de inicialização usando 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

Concluir a configuração do cluster de administrador

Volte ao console e siga estas etapas:

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

    Se o processo for bem-sucedido, o console exibirá Conexão estabelecida.

    A conexão com o cluster de inicialização precisa ser estabelecida antes de você continuar. Se a conexão não estiver estabelecida, verifique os argumentos especificados para o comando gkectl register bootstrap:

    • Verifique se o valor de --target-cluster-name corresponde ao Nome do cluster de administrador exibido na seção Princípios básicos do ambiente de inicialização.

    • Verifique se o valor de --project-id corresponde ao ID do projeto selecionado no console.

    Se for preciso mudar o nome do cluster de inicialização, o ID do projeto ou outros valores de flag, faça o seguinte:

    1. Digite Ctrl-C para sair do gkectl register bootstrap.
    2. Exclua o cluster de bootstrap:

      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 Próxima: conceitos básicos do cluster para começar a configurar o cluster de administrador.

Noções básicas sobre clusters

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

  2. Na seção Autorização, insira os endereços de e-mail dos usuários a quem você quer conceder a função de leitura do Kubernetes clusterrole/view. Seu endereço de e-mail é adicionado automaticamente. As políticas de controle de acesso baseado em papéis (RBAC) aplicadas permitem que os usuários executem comandos somente leitura pelo gateway do Connect.

  3. Clique em Próximo plano de controle.

Plano de controle

  1. Revise as configurações padrão na seção Plano de controle e mude-as conforme necessário.

  2. Na seção IPs do nó do plano de controle, insira os endereços IP nos seguintes campos:

    • Gateway: o endereço IP do gateway padrão da sub-rede que tem os nós do cluster.

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

    • Endereços IP: insira o endereço IP e, opcionalmente, o nome do host dos três nós do plano de controle.

  3. Clique em Próxima: rede.

Rede

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

  1. Na seção CIDRs de serviço e pod, aceite os valores padrão para os intervalos de endereços IP do serviço e do pod do Kubernetes ou insira intervalos de endereços CIDR diferentes.

    • CIDR de serviço: menor intervalo possível: /24. Maior intervalo possível: /12.

    • CIDR do pod: menor intervalo possível: /18. O maior intervalo possível é /8.

  2. Na seção Configuração do host, 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. Após a criação do cluster, não é possível modificar esses valores.

  3. Clique em Próxima: balanceador de carga.

Balanceador de carga

Nesta seção, você seleciona o tipo de balanceador de carga a ser usado. Para mais informações, consulte Visão geral do balanceamento de carga.

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

    • Em pacote com o MetalLB: o balanceador de carga MetalLB é fornecido com e requer menos configuração do que o balanceamento de carga manual. Os componentes do MetalLB são executados nos nós do cluster. Assim, você não precisa criar VMs separadas para o balanceador de carga.

    • Manual: é possível usar qualquer balanceador de carga de sua escolha, desde que você o configure antes de criar o cluster. Com qualquer balanceador de carga configurado manualmente, é necessário configurar mapeamentos entre IPs virtuais (VIPs), endereços de nó e valores de nodePort.

  2. No campo VIP do plano de controle, insira o VIP a ser usado para o tráfego enviado ao servidor da API Kubernetes.

  3. Clique em Verificar e criar.

    O console exibe mensagens de status durante a verificação das configurações e a criação do cluster no data center.

    Se houver um problema com a configuração, o console exibirá uma mensagem de erro que deve estar clara o suficiente para que você possa corrigi-lo e tente criar o cluster novamente.

Os detalhes sobre o processo de criação do cluster são gerados na estação de trabalho do administrador. Se as verificações de simulação forem aprovadas, você verá algo como:

[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.

Conectar-se ao cluster de administrador

O comando gkectl register bootstrap cria um arquivo kubeconfig para o cluster de administrador na estação de trabalho do administrador. O diretório em que kubeconfig está localizado e o nome do arquivo são baseados no nome do cluster de administrador da seguinte maneira:

gkectl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig

É necessário restringir o acesso a esse kubeconfig, porque ele contém as credenciais de autenticação do cluster.

Além disso, é possível executar comandos kubectl somente leitura pelo gateway de conexão.

  1. Execute o comando a seguir em um computador com a CLI gcloud para receber uma entrada kubeconfig que pode acessar o cluster pelo gateway de conexão.

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

    O resultado será assim:

    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 é possível executar comandos kubectl somente leitura pelo gateway de conexão:

    kubectl get pods -A
    

    Se você precisar de privilégios administrativos completos para o cluster de administrador, consulte Configurar o gateway de conexão.

Solução de problemas

Consulte Solução de problemas na criação e no upgrade de clusters.

A seguir

Criar um cluster de usuário