Criar um cluster de administrador usando o console do Google Cloud

Use o console Google Cloud para criar um cluster de administrador para o software do Google Distributed Cloud somente para VMware e usar uma interface gráfica do usuário para orientação estruturada. Você também pode criar um cluster de administrador usando gkectl ou o Google Cloud console.

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.

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 mostrado 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, você insere 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. Observe que 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 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 de CA que você tinha localmente para a estação de trabalho do administrador.

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

Receber 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 de 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 \
          --admin-kubeconfig-out=KUBECONFIG_NAME
    

    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.
    • KUBECONFIG_NAME: o nome do arquivo kubeconfig que o comando gkectl register bootstrap cria. Se você não especificar essa flag, o comando vai criar o arquivo com o nome kubeconfig no diretório de trabalho atual. Se houver um arquivo chamado kubeconfig, o comando vai substituir esse arquivo.

    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, digite (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 de CA, copie e cole todo o certificado de CA do vCenter no formato PEM, conforme descrito anteriormente na seção Obter o certificado de 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. Se você não especificou a flag --admin-kubeconfig-out ao executar gkectl register bootstrap, o comando cria um arquivo kubeconfig chamado kubeconfig no diretório em que você executou o comando.

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

    kubectl get pods -A
    

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