Saiba mais sobre o Google Distributed Cloud criando clusters de demonstração em máquinas virtuais (VMs) do Compute Engine. A criação de um cluster de administrador e de um cluster de usuário com este guia pode levar de 40 minutos a uma hora. Os clusters de demonstração criados neste guia ajudam a avaliar o processo de provisionamento e operação de clusters do Google Distributed Cloud, mas não são destinados ao uso na produção.
O documento orienta o processo de execução de um script que:
- Provisiona cinco VMs do Compute Engine para instalar os clusters de demonstração
- Configura uma rede VPC para fornecer conectividade ao cluster
Depois que o script provisionar os recursos necessários, use um dos seguintes
clientes para criar um cluster de administrador e um cluster de usuário correspondente que possa
hospedar cargas de trabalho: bmctl
, console do Google Cloud, CLI do Google Cloud ou Terraform.
Visão geral do procedimento
Este guia contém as seguintes etapas principais:
Preparar o ambiente local para que o script tenha as variáveis de ambiente necessárias e você tenha coletado as informações básicas necessárias para executar comandos.
Criar as VMs e a rede com o script baixado.
Criar o cluster de administrador com um dos clientes compatíveis.
Criar o cluster de usuário com um dos clientes compatíveis.
Limpar para remover clusters e VMs criados com este guia.
1. Preparar o ambiente local
Como este guia usa um script que configura a rede para você, não é necessário coletar muitas informações nem fazer um planejamento. As etapas a seguir configuram o ambiente local e coletam as informações básicas necessárias para as seções posteriores do guia:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Anote o ID do projeto, ele é necessário para definir uma variável de ambiente que será usada no script e nos comandos desta página. Se você selecionou um projeto existente, verifique se é proprietário ou editor do projeto.
-
É possível executar o script no Cloud Shell
ou na máquina local executando Linux ou macOS. Se você não estiver usando o
Cloud Shell:
- Verifique se você instalou a
CLI do Google Cloud mais recente, a ferramenta de linha de comando para
interagir com o Google Cloud. Atualize os componentes da gcloud CLI
se necessário:
gcloud components update
Dependendo de como a gcloud CLI foi instalada, talvez você veja a seguinte mensagem:
You cannot perform this action because the Google Cloud CLI component manager is disabled for this installation. You can run the following command to achieve the same result for this installation:
Siga as instruções para copiar e colar o comando e atualizar os componentes.
- Verifique se o
kubectl
está instalado. Se for preciso instalarkubectl
, execute o seguinte comando:gcloud components install kubectl
- Verifique se você instalou a
CLI do Google Cloud mais recente, a ferramenta de linha de comando para
interagir com o Google Cloud. Atualize os componentes da gcloud CLI
se necessário:
- Configurar as variáveis de ambiente:
export PROJECT_ID=PROJECT_ID export ADMIN_CLUSTER_NAME=ADMIN_CLUSTER_NAME export ON_PREM_API_REGION=ON_PREM_API_REGION export ZONE=ZONE
ADMIN_CLUSTER_NAME
: o nome escolhido para o cluster de administrador.ON_PREM_API_REGION
: a região do Google Cloud em que a API GKE On-Prem é executada e armazena os metadados. Especifiqueus-central1
ou outra região compatível.ZONE
: a zona do Google Cloud em que as VMs do Compute Engine são criadas. É possível usarus-central1-a
ou qualquer uma das outras zonas do Compute Engine.
- Execute os comandos a seguir para definir o projeto e a zona padrão.
gcloud config set project $PROJECT_ID gcloud config set compute/zone $ZONE
Se você receber um erro
PERMISSION_DENIED
, verifique novamente o ID do projeto que você inseriu. Se o ID do projeto estiver correto, executegcloud auth login
para fazer login na gcloud CLI com a conta que tem acesso ao projeto. - Veja uma lista das versões compatíveis que podem ser instaladas:
gcloud container bare-metal admin-clusters query-version-config \ --location=ON_PREM_API_REGION
- Selecione uma versão da saída do comando anterior e defina-a em uma
variável de ambiente:
export BMCTL_VERSION=BMCTL_VERSION
Recomendamos que você selecione a versão compatível mais recente para receber as correções e os recursos mais recentes do Google Distributed Cloud.
2. Criar as VMs e a rede
Nesta seção, você faz o download e executa o script install_admin_cluster.sh
Clone o repositório
anthos-samples
e mude para o diretório em que o script está localizado:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-bm-gcp-bash
Execute o script:
bash install_admin_cluster.sh
No prompt, digite
2
para configurar apenas a infraestrutura do Compute Engine e confirme sua seleção quando solicitado.O script cria VMs do Compute Engine, cria uma rede VXLAN e configura a estação de trabalho do administrador e os nós do cluster. Esse processo leva cerca de cinco minutos.
Para saber mais sobre o script, clique neste link:
Sobre o script
É possível conferir o script na pasta
anthos-bm-gcp-bash
do repositório anthos-samples do GitHub. O script automatiza as seguintes etapas manuais:-
Ativa as seguintes APIs do Google Cloud:
anthos.googleapis.com anthosaudit.googleapis.com anthosgke.googleapis.com cloudresourcemanager.googleapis.com connectgateway.googleapis.com container.googleapis.com compute.googleapis.com gkeconnect.googleapis.com gkehub.googleapis.com gkeonprem.googleapis.com serviceusage.googleapis.com stackdriver.googleapis.com monitoring.googleapis.com logging.googleapis.com kubernetesmetadata.googleapis.com iam.googleapis.com opsconfigmonitoring.googleapis.com
-
Em vez de criar várias contas de serviço para diferentes APIs e
serviços, o script cria uma única conta de serviço chamada
baremetal-gcr
e concede a ela os seguintes papéis do IAM:roles/gkehub.admin
roles/gkehub.connect
roles/logging.logWriter
roles/monitoring.dashboardEditor
roles/monitoring.metricWriter
roles/monitoring.viewer
roles/opsconfigmonitoring.resourceMetadata.writer
roles/serviceusage.serviceUsageViewer
roles/stackdriver.resourceMetadata.writer
-
Cria as seguintes VMs:
- Uma VM para a estação de trabalho do administrador.
- Uma VM para o nó do plano de controle do cluster de administrador.
- Duas VMs para os nós de trabalho do cluster de usuário.
- Uma VM para o nó do plano de controle do cluster de usuário.
- Verifica se o SSH está ativado em todas as VMs e se a estação de trabalho do administrador tem acesso SSH a todas as outras VMs criadas para nós do cluster.
-
Cria uma rede de sobreposição de LAN virtual extensível (VXLAN) para conectividade
de camada 2 entre as VMs. A VXLAN não é persistente. Portanto, se você
reinicializar uma instância de VM, a rede será destruída. A rede está configurada
para estar na sub-rede
10.200.0.0/24
. A conectividade da camada 2 é um requisito do balanceador de carga em pacote. -
Instala as seguintes ferramentas na estação de trabalho do administrador:
bmctl
kubectl
- Docker
O script também faz o download da chave da conta de serviço de
baremetal-gcr
para a estação de trabalho do administrador. -
Isso garante que o
root@10.200.0.x
da estação de trabalho do administrador realize as seguintes tarefas:- Geram uma nova chave SSH na estação de trabalho do administrador.
- Adicionam a chave pública a todas as outras VMs na implantação.
O script gera cada comando executado e o status. Quando esse processo terminar, o script mostrará a seguinte:
✅ Successfully set up SSH access from admin workstation to cluster node VMs. ✅ GCE Infrastructure setup complete. Please check the logs for any errors!!! ✅ If you do not see any errors in the output log, then you now have the following setup: |---------------------------------------------------------------------------------------------------------| | VM Name | L2 Network IP (VxLAN) | INFO | |---------------------------------------------------------------------------------------------------------| | abm-admin-cluster-cp | 10.200.0.3 | 🌟 Ready for use as control plane for the admin cluster | | abm-user-cluster-cp | 10.200.0.4 | 🌟 Ready for use as control plane for the user cluster | | abm-user-cluster-w1 | 10.200.0.5 | 🌟 Ready for use as worker for the user cluster | | abm-user-cluster-w2 | 10.200.0.6 | 🌟 Ready for use as worker for the user cluster | |---------------------------------------------------------------------------------------------------------|
-
Ativa as seguintes APIs do Google Cloud:
3. Criar o cluster de administrador
bmctl
Para criar um cluster de administrador com bmctl
, acesse a VM da estação de trabalho do administrador em
uma janela do terminal e execute os comandos:
Use o SSH para acessar a VM da estação de trabalho do administrador,
abm-ws
, como raiz:gcloud compute ssh root@abm-ws --zone ZONE
Defina suas credenciais de usuário como Application Default Credentials (ADC):
gcloud auth application-default login
Siga as instruções para selecionar sua Conta do Google para o ADC.
Gere um arquivo de configuração do cluster:
bmctl create config -c ADMIN_CLUSTER_NAME --project-id=PROJECT_ID
Verifique o arquivo de configuração do cluster de administrador:
O arquivo de configuração do cluster a seguir é preenchido com os valores que você forneceu anteriormente. Além dos valores inseridos, observe as seguintes diferenças em relação ao arquivo de configuração gerado:
- Os comentários foram removidos deste exemplo para melhorar a legibilidade.
- O script cria uma única conta de serviço com todas as permissões necessárias
e faz o download da chave
bm-gcr.json
referenciada no arquivo de configuração.
gcrKeyPath: /root/bm-gcr.json sshPrivateKeyPath: /root/.ssh/id_rsa gkeConnectAgentServiceAccountKeyPath: /root/bm-gcr.json gkeConnectRegisterServiceAccountKeyPath: /root/bm-gcr.json cloudOperationsServiceAccountKeyPath: /root/bm-gcr.json --- apiVersion: v1 kind: Namespace metadata: name: cluster-ADMIN_CLUSTER_NAME --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: ADMIN_CLUSTER_NAME namespace: cluster-ADMIN_CLUSTER_NAME spec: type: admin profile: default anthosBareMetalVersion: BMCTL_VERSION gkeConnect: projectID: PROJECT_ID controlPlane: nodePoolSpec: nodes: - address: 10.200.0.3 clusterNetwork: pods: cidrBlocks: - 192.168.0.0/16 services: cidrBlocks: - 10.96.0.0/20 loadBalancer: mode: bundled ports: controlPlaneLBPort: 443 vips: controlPlaneVIP: 10.200.0.48 clusterOperations: projectID: PROJECT_ID location: us-central1 storage: lvpNodeMounts: path: /mnt/localpv-disk storageClassName: local-disks lvpShare: path: /mnt/localpv-share storageClassName: local-shared numPVUnderSharedPath: 5 nodeConfig: podDensity: maxPodsPerNode: 110
Substitua o conteúdo do arquivo de configuração gerado na estação de trabalho do administrador pelo conteúdo do exemplo anterior.
Abra o arquivo gerado,
bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME.yaml
, e substitua seu conteúdo pelo conteúdo do exemplo que você verificou na etapa anterior.Crie o cluster de administrador:
bmctl create cluster -c ADMIN_CLUSTER_NAME
O comando
bmctl
exibe a saída na tela enquanto executa verificações de simulação e cria o cluster. As informações detalhadas são gravadas em registros da pastabaremetal/bmctl-workspace/abm-user-cluster-metallb/log
na estação de trabalho do administrador.A criação do cluster pode levar vários minutos para ser concluída.
No console, acesse a página Clusters do GKE.
Verifique se o projeto em que você criou o cluster de usuário está selecionado. O cluster de administrador vai aparecer na lista.
Faça login no cluster de administrador:
Clique no link no nome do cluster e, no painel lateral, clique em Login.
Selecione Usar a identidade do Google para fazer login.
Clique em Login.
Verifique o cluster de administrador
É possível encontrar o arquivo kubeconfig do cluster de administrador na estação de trabalho do administrador no
diretório bmctl-workspace
da conta raiz. Para verificar a implantação,
conclua as etapas a seguir:
Use o SSH para acessar a estação de trabalho do administrador como raiz:
gcloud compute ssh root@abm-ws --zone ZONE
Verifique se o cluster de administrador foi criado e está em execução:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
O resultado será semelhante ao exemplo a seguir:
NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m v1.27.4-gke.1600
Quando terminar, digite
exit
para se desconectar da estação de trabalho do administrador.
Console
Para criar um cluster de administrador no console, execute bmctl
register bootstrap
na VM da estação de trabalho do administrador para criar um cluster de inicialização.
Enquanto o comando bmctl register bootstrap
estiver em execução, realize etapas no
console para criar o cluster de administrador.
Inserir os princípios básicos do ambiente de inicialização
No Console do Google Cloud, acesse a página de clusters do GKE .
Clique em Criar.
Na caixa de diálogo Criar cluster, selecione No local e clique em Configurar para bare metal:
Selecione
PROJECT_ID
na lista de projetos.Na barra de navegação à esquerda, clique em Instalar ambiente de inicialização.
Insira
ADMIN_CLUSTER_NAME
como o nome do cluster de administrador.Selecione
BMCTL_VERSION
como a versão do cluster de administrador. O script fez o download dessa versão da ferramenta de linha de comandobmctl
para a estação de trabalho do administrador. A versão do Google Distributed Cloud que você instala precisa corresponder à versãobmctl
.No campo Local da API do Google Cloud, selecione ON_PREM_API_REGION na lista. Essa configuração especifica a região em que a API GKE On-Prem é executada e a região em que os itens a seguir são armazenados:
- Os metadados do cluster necessários para que a API GKE On-Prem gerencie 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 nome, o projeto e o local do cluster identificam exclusivamente o cluster no Google Cloud.
Use as etapas da próxima seção em vez das etapas exibidas no console para criar o cluster de inicialização. Deixe a página do console em exibição, porque você vai continuar nela para criar o cluster de administrador.
Criar o cluster de inicialização
Ao usar um cliente da API GKE On-Prem, como o console, para criar um cluster de administrador, é necessário criar um cluster de inicialização 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.
Na linha de comando, use o SSH para acessar a VM da estação de trabalho do administrador como raiz:
gcloud compute ssh root@abm-ws --zone ZONE
Ignore as mensagens sobre atualização da VM para concluir este tutorial. Se você planeja manter as VMs como um ambiente de teste, talvez queira atualizar o SO ou fazer upgrade para a próxima versão, conforme descrito na documentação do Ubuntu.
Defina suas credenciais de usuário como Application Default Credentials (ADC):
gcloud auth application-default login
Siga as instruções para selecionar sua Conta do Google para o ADC.
Mude para o diretório
baremetal/
e execute o comando a seguir para criar o cluster de inicialização.O nome do cluster de inicialização é derivado adicionando o prefixo
bootstrap-
ao nome do cluster de administrador.bmctl register bootstrap \ --ssh-key=/root/.ssh/id_rsa \ --name=bootstrap-ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID
Depois que
bmctl
criar o cluster de inicialização, você verá uma saída semelhante ao exemplo a seguir:[2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
Criar o cluster de administrador
Na página Instalar ambiente de inicialização na seção Ambiente de inicialização da estação de trabalho do administrador, 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
bmctl register bootstrap
:Verifique se o valor de
--name
corresponde ao Nome de inicialização derivado exibido na seção Noções básicas do ambiente de inicialização.Verifique se o valor de
--project-id
corresponde ao ID do projeto selecionado no console.
Se for preciso alterar o nome do cluster de inicialização ou o ID do projeto, insira
Ctrl-C
para sair debmctl register bootstrap
e execute o comando outra vez.
Rede
Clique em Rede na barra de navegação à esquerda.
Na seção Plano de controle, insira o seguinte IP no campo IP do nó do plano de controle 1.
10.200.0.3
Esse é o endereço IP da VM abm-admin-cluster-cp na VXLAN criada pelo script.
Na seção Balanceador de carga, verifique se a opção Pacotes está selecionada.
Na seção IPs virtuais (VIPs), digite o seguinte no campo VIP do plano de controle:
10.200.0.48
A etapa a seguir depende da disponibilidade do cluster de inicialização. O comando
bmctl register bootstrap
na janela do terminal precisa ser executado por alguns minutos antes que o cluster de inicialização seja exibido como um membro registrado. Se, após alguns minutos, ele ainda não estiver disponível, verifique o nome do cluster de inicialização e o ID do projeto que você usou. Se for preciso mudar o nome do cluster de inicialização ou o ID do projeto, insiraCtrl-C
na outra janela do terminal para sair debmctl register bootstrap
e executar o comando novamente.Clique em Verificar e criar.
O console exibe mensagens de status enquanto verifica as configurações e cria o cluster.
Quando o cluster de administrador é criado, o cluster de inicialização na estação de trabalho do administrador é excluído. A saída do comando
bmctl register bootstrap
na outra janela do terminal é semelhante ao exemplo a seguir:... [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK [2024-04-15 23:16:38+0000] Please run [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes [2024-04-15 23:16:38+0000] to get cluster nodes status. [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK [2024-04-15 23:24:30+0000] Flushing logs... OK [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster. [2024-04-15 23:24:30+0000] Deleting membership... OK [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
Verifique o cluster de administrador
É possível encontrar o arquivo kubeconfig do cluster de administrador na estação de trabalho do administrador no
diretório bmctl-workspace
da conta raiz. Para verificar a implantação,
conclua as etapas a seguir:
Use o SSH para acessar a estação de trabalho do administrador como raiz:
gcloud compute ssh root@abm-ws --zone ZONE
Verifique se o cluster de administrador foi criado e está em execução:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
O resultado será semelhante ao exemplo a seguir:
NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m v1.27.4-gke.1600
Quando terminar, digite
exit
para se desconectar da estação de trabalho do administrador.
gcloud CLI
Nas instruções a seguir, é necessário usar duas janelas de terminal. Em uma janela do terminal,
execute bmctl register bootstrap
para criar um cluster de inicialização. Enquanto o
comando bmctl register bootstrap
estiver em execução, execute gcloud container
bare-metal admin-clusters create
em outra janela do terminal para criar o cluster de
administrador.
Criar o cluster de inicialização
Ao usar um cliente da API GKE On-Prem, como a gcloud CLI, para criar um cluster de administrador, é necessário criar um cluster de inicialização 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.
Na linha de comando, use o SSH para acessar a VM da estação de trabalho do administrador como raiz:
gcloud compute ssh root@abm-ws --zone ZONE
Ignore as mensagens sobre atualização da VM para concluir este tutorial. Se você planeja manter as VMs como um ambiente de teste, talvez queira atualizar o SO ou fazer upgrade para a próxima versão, conforme descrito na documentação do Ubuntu.
Defina suas credenciais de usuário como Application Default Credentials (ADC):
gcloud auth application-default login
Siga as instruções para selecionar sua Conta do Google para o ADC.
Mude para o diretório
baremetal/
e execute o comando a seguir para criar o cluster de inicialização.O nome do cluster de inicialização é derivado adicionando o prefixo
bootstrap-
ao nome do cluster de administrador.bmctl register bootstrap \ --ssh-key=/root/.ssh/id_rsa \ --name=bootstrap-ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID
Depois que
bmctl
criar o cluster de inicialização, você verá uma saída semelhante ao exemplo a seguir:[2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
Criar o cluster de administrador
Em uma nova janela do terminal, confirme se o cluster de inicialização foi registrado como membro da frota:
gcloud container fleet memberships list \ --project=PROJECT_ID
O comando
gcloud container bare-metal admin-clusters create
na etapa a seguir depende da disponibilidade do cluster de inicialização. O comandobmctl register bootstrap
na outra janela do terminal precisa ser executado por alguns minutos antes que o cluster de inicialização seja exibido como um membro registrado. Se, após alguns minutos, ele ainda não estiver listado, verifique o nome do cluster de inicialização e o ID do projeto que você usou. Se for preciso mudar o nome do cluster de inicialização ou o ID do projeto, insiraCtrl-C
na outra janela do terminal para sair debmctl register bootstrap
e execute o comando novamente.Crie o cluster de administrador com o balanceador de carga em pacote:
Verifique se os valores correspondem às variáveis de ambiente especificadas anteriormente para o script.
gcloud container bare-metal admin-clusters create ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION \ --version=BMCTL_VERSION \ --max-pods-per-node=110 \ --control-plane-vip=10.200.0.48 \ --control-plane-load-balancer-port=443 \ --control-plane-node-configs node-ip=10.200.0.3 \ --island-mode-service-address-cidr-blocks=10.96.0.0/20 \ --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \ --lvp-share-path=/mnt/localpv-share \ --lvp-share-storage-class=local-shared \ --lvp-node-mounts-config-path=/mnt/localpv-disk \ --lvp-node-mounts-config-storage-class=local-disks
Nesse comando:
--control-plane-vip
: definida como10.200.0.48
. Esse é o IP virtual (VIP) no balanceador de carga para o servidor da API Kubernetes do cluster.--control-plane-node-configs
: onode-ip
está definido como10.200.0.3
. Esse é o endereço IP da VMabm-admin-cluster-cp
na VXLAN criada pelo script.
Para ver uma lista completa das flags e suas descrições, consulte a referência da gcloud CLI.
A saída deste comando será semelhante ao exemplo a seguir:
Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
No exemplo de saída, a string
operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179
é oOPERATION_ID
da operação de longa duração. Descubra o status da operação executando o comando a seguir em outra janela do terminal:gcloud container bare-metal operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION
Quando
gcloud container bare-metal admin-clusters create
é concluído, a saída é semelhante a esta:Created Anthos on bare metal Admin Cluster [https://gkeonprem.googleapis.com/v1/projects/anonuser-anonproject/locations/us-central1/bareMetalAdminClusters/gce-admin-gcloud-001]. NAME LOCATION VERSION MEMBERSHIP STATE abm-cluster-1 us-central1 1.28.300-gke.131 abm-cluster-1 RUNNING
Quando o cluster de administrador é criado, o cluster de inicialização na estação de trabalho do administrador é excluído. A saída do comando
bmctl register bootstrap
na outra janela do terminal é semelhante ao exemplo a seguir:... [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK [2024-04-15 23:16:38+0000] Please run [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes [2024-04-15 23:16:38+0000] to get cluster nodes status. [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK [2024-04-15 23:24:30+0000] Flushing logs... OK [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster. [2024-04-15 23:24:30+0000] Deleting membership... OK [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
Verifique o cluster de administrador
É possível encontrar o arquivo kubeconfig do cluster de administrador na estação de trabalho do administrador no
diretório bmctl-workspace
da conta raiz. Para verificar a implantação,
conclua as etapas a seguir:
Use o SSH para acessar a estação de trabalho do administrador como raiz:
gcloud compute ssh root@abm-ws --zone ZONE
Verifique se o cluster de administrador foi criado e está em execução:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
O resultado será semelhante ao exemplo a seguir:
NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m v1.27.4-gke.1600
Quando terminar, digite
exit
para se desconectar da estação de trabalho do administrador.
Terraform
Nas instruções a seguir, é necessário usar duas janelas de terminal. Em uma janela do terminal,
execute bmctl register bootstrap
para criar um cluster de inicialização. Enquanto o
comando bmctl register bootstrap
está em execução, execute os comandos do Terraform em
outra janela do terminal para criar o cluster de administrador.
Modificar arquivos de exemplo de cluster de usuário para funcionar em um cluster de administrador
O repositório anthos-samples
não inclui um exemplo específico
para criar um cluster de administrador do Google Distributed Cloud. As etapas a seguir mostram
como criar um cluster de administrador modificando um exemplo de cluster de usuário do Terraform.
No diretório em que você clonou
anthos-samples
, execute o seguinte comando para copiar os arquivos de exemplo do cluster de usuário do MetalLB para uma nova pasta do cluster de administrador:cp -r anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb \ anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basic
Altere para o diretório
abm_admin_cluster_basic
:cd anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basic
Edite os arquivos do Terraform:
variables.tf
:Defina uma variável para os endereços IP do nó do plano de controle (para esta demonstração, usaremos apenas um). Essa variável precisa ser semelhante à entrada
variable "control_plane_ips" { ... }
.Defina uma variável para o endereço VIP do plano de controle. Essa variável precisa ser semelhante à entrada
variable "control_plane_vip" { ... }
.
terraform.tfvars
:Atribua valores de variáveis para as seguintes configurações do cluster de administrador:
Endereços IP do nó do plano de controle:
10.200.0.3
Endereço VIP do plano de controle:
10.200.0.48
main.tf
:Substitua o recurso
google_gkeonprem_bare_metal_cluster
pelogoogle_gkeonprem_bare_metal_admin_cluster
.Exclua o recurso
google_gkeonprem_bare_metal_node_pool
e a seçãolifecycle
relacionada.Atualize o recurso para usar as variáveis recém-definidas.
Confira um exemplo de como o arquivo
main.tf
pode ficar quando editado para criar um cluster de administrador:/** * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #[START anthos_onprem_terraform_bare_metal_admin_cluster_basic_main] module "enable_google_apis_primary" { source = "terraform-google-modules/project-factory/google//modules/project_services" version = "~> 14.0" project_id = var.project_id activate_apis = [ "anthos.googleapis.com", "anthosaudit.googleapis.com", "anthosgke.googleapis.com", "cloudresourcemanager.googleapis.com", "compute.googleapis.com", "connectgateway.googleapis.com", "container.googleapis.com", "file.googleapis.com", "gkehub.googleapis.com", "iam.googleapis.com", "kubernetesmetadata.googleapis.com", "logging.googleapis.com", "monitoring.googleapis.com", "opsconfigmonitoring.googleapis.com", "serviceusage.googleapis.com", "stackdriver.googleapis.com" ] disable_services_on_destroy = false } # Enable GKE OnPrem API resource "google_project_service" "default" { project = var.project_id service = "gkeonprem.googleapis.com" disable_on_destroy = false } # Create an anthos baremetal admin cluster and enroll it with the gkeonprem API resource "google_gkeonprem_bare_metal_admin_cluster" "admin-cluster-basic" { name = var.admin_cluster_name description = "Anthos bare metal admin cluster" provider = google depends_on = [google_project_service.default] location = var.region bare_metal_version = var.bare_metal_version network_config { island_mode_cidr { service_address_cidr_blocks = ["0.96.0.0/20"] pod_address_cidr_blocks = ["192.168.0.0/16"] } } node_config { max_pods_per_node = 250 } control_plane { control_plane_node_pool_config { node_pool_config { operating_system = "LINUX" dynamic "node_configs" { for_each = var.admin_cp_ips content { node_ip = node_configs.value } } } } } load_balancer { port_config { control_plane_load_balancer_port = 443 } vip_config { control_plane_vip = var.admin_cp_vip } } storage { lvp_share_config { lvp_config { path = "/mnt/localpv-share" storage_class = "local-shared" } shared_path_pv_count = 5 } lvp_node_mounts_config { path = "/mnt/localpv-disk" storage_class = "local-disks" } } dynamic "security_config" { for_each = length(var.admin_user_emails) == 0 ? [] : [1] content { authorization { dynamic "admin_users" { for_each = var.admin_user_emails content { username = admin_users.value } } } } } lifecycle { ignore_changes = [ annotations["onprem.cluster.gke.io/user-cluster-resource-link"], annotations["alpha.baremetal.cluster.gke.io/cluster-metrics-webhook"], annotations["baremetal.cluster.gke.io/operation"], annotations["baremetal.cluster.gke.io/operation-id"], annotations["baremetal.cluster.gke.io/start-time"], annotations["baremetal.cluster.gke.io/upgrade-from-version"] ] } } #[END anthos_onprem_terraform_bare_metal_admin_cluster_basic_main]
Para mais informações sobre o recurso do Terraform para clusters de administrador, consulte google_gkeonprem_bare_metal_admin_cluster no registro do Terraform.
Criar o cluster de inicialização
Ao usar um cliente da API GKE On-Prem, como o Terraform, para criar um cluster de administrador, é necessário criar um cluster de inicialização 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.
Na linha de comando, use o SSH para acessar a VM da estação de trabalho do administrador como raiz:
gcloud compute ssh root@abm-ws --zone ZONE
Ignore as mensagens sobre atualização da VM para concluir este tutorial. Se você planeja manter as VMs como um ambiente de teste, talvez queira atualizar o SO ou fazer upgrade para a próxima versão, conforme descrito na documentação do Ubuntu.
Defina suas credenciais de usuário como Application Default Credentials (ADC):
gcloud auth application-default login
Siga as instruções para selecionar sua Conta do Google para o ADC.
Mude para o diretório
baremetal/
e execute o comando a seguir para criar o cluster de inicialização.O nome do cluster de inicialização é derivado adicionando o prefixo
bootstrap-
ao nome do cluster de administrador.bmctl register bootstrap \ --ssh-key=/root/.ssh/id_rsa \ --name=bootstrap-ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID
Depois que
bmctl
criar o cluster de inicialização, você verá uma saída semelhante ao exemplo a seguir:[2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
Criar o cluster de administrador
Inicialize e crie o plano do Terraform:
terraform init
O Terraform instala todas as bibliotecas necessárias, como o provedor do Google Cloud.
Revise a configuração e faça alterações, se necessário:
terraform plan
Aplique o plano do Terraform para criar o cluster de administrador:
terraform apply
Esse processo leva 15 minutos ou mais. Quando a criação do cluster for concluída, você vai receber uma mensagem como esta:
... google_gkeonprem_bare_metal_admin_cluster.admin-cluster-basic: Still creating... [20m10s elapsed] google_gkeonprem_bare_metal_admin_cluster.admin-cluster-basic: Creation complete after 20m11s [id=projects/anonuser-anonproject/locations/us-central1/bareMetalAdminClusters/gce-admin-terra002] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Quando o cluster de administrador é criado, o cluster de inicialização na estação de trabalho do administrador é excluído. A saída do comando
bmctl register bootstrap
na outra janela do terminal é semelhante ao exemplo a seguir:... [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK [2024-04-15 23:16:38+0000] Please run [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes [2024-04-15 23:16:38+0000] to get cluster nodes status. [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK [2024-04-15 23:24:30+0000] Flushing logs... OK [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster. [2024-04-15 23:24:30+0000] Deleting membership... OK [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
No console, acesse a página Clusters do GKE.
Verifique se o projeto em que você criou o cluster de usuário está selecionado. O cluster de administrador vai aparecer na lista.
Faça login no cluster de administrador:
Clique no link no nome do cluster e, no painel lateral, clique em Login.
Selecione Usar a identidade do Google para fazer login.
Clique em Login.
Verifique o cluster de administrador
É possível encontrar o arquivo kubeconfig do cluster de administrador na estação de trabalho do administrador no
diretório bmctl-workspace
da conta raiz. Para verificar a implantação,
conclua as etapas a seguir:
Use o SSH para acessar a estação de trabalho do administrador como raiz:
gcloud compute ssh root@abm-ws --zone ZONE
Verifique se o cluster de administrador foi criado e está em execução:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
O resultado será semelhante ao exemplo a seguir:
NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m v1.27.4-gke.1600
Quando terminar, digite
exit
para se desconectar da estação de trabalho do administrador.
4. Criar o cluster de usuário
Use o console do Google Cloud, a CLI do Google Cloud ou o Terraform para criar
o cluster de usuário. Para simplificar, use abm-user-cluster-metallb
como nome do
cluster de usuário para corresponder ao nome codificado nos scripts do Terraform.
bmctl
Use o SSH para acessar a VM da estação de trabalho do administrador,
abm-ws
, como raiz:gcloud compute ssh root@abm-ws --zone ZONE
Gere um arquivo de configuração do cluster:
bmctl create config -c abm-user-cluster-metallb \ --project-id=PROJECT_ID
No arquivo de configuração do cluster de usuário a seguir, defina seu endereço de e-mail na seção
clusterSecurity
e verifique o restante das configurações:O arquivo de configuração do cluster a seguir é preenchido com os valores inseridos anteriormente na tabela de planejamento. Além dos valores inseridos, observe as seguintes diferenças em relação ao arquivo de configuração gerado:
- Os comentários foram removidos deste exemplo para melhorar a legibilidade.
- A seção de credenciais foi removida, como é normal para clusters de usuários.
- O tipo de cluster,
spec.type
, foi definido comouser
. - O campo
spec.clusterSecurity.authorization.clusterAdmin.gcpAccounts
foi adicionado para concederclusterrole/cluster-admin
à sua conta. Entre outras coisas, esse campo permite fazer login no cluster pelo console do Google Cloud para ver mais detalhes do cluster.
--- apiVersion: v1 kind: Namespace metadata: name: cluster-abm-user-cluster-metallb --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: abm-user-cluster-metallb namespace: cluster-abm-user-cluster-metallb spec: type: user profile: default anthosBareMetalVersion: BMCTL_VERSION gkeConnect: projectID: PROJECT_ID controlPlane: nodePoolSpec: nodes: - address: 10.200.0.4 clusterNetwork: pods: cidrBlocks: - 192.168.0.0/16 services: cidrBlocks: - 10.96.0.0/20 loadBalancer: mode: bundled ports: controlPlaneLBPort: 443 vips: controlPlaneVIP: 10.200.0.50 ingressVIP: 10.200.0.51 addressPools: - name: pool1 addresses: - 10.200.0.51-10.200.0.70 clusterOperations: projectID: PROJECT_ID location: us-central1 clusterSecurity: authorization: clusterAdmin: gcpAccounts: - YOUR_EMAIL_ADDRESS storage: lvpNodeMounts: path: /mnt/localpv-disk storageClassName: local-disks lvpShare: path: /mnt/localpv-share storageClassName: local-shared numPVUnderSharedPath: 5 nodeConfig: podDensity: maxPodsPerNode: 250 --- apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: node-pool-1 namespace: cluster-abm-user-cluster-metallb spec: clusterName: abm-user-cluster-metallb nodes: - address: 10.200.0.5
Substitua o conteúdo do arquivo de configuração gerado na estação de trabalho do administrador pelo conteúdo do exemplo anterior.
Abra o arquivo gerado,
bmctl-workspace/abm-user-cluster-metallb/abm-user-cluster-metallb.yaml
, e substitua o conteúdo dele pelo conteúdo do exemplo que você verificou na etapa anterior.Crie o cluster de usuário:
bmctl create cluster -c abm-user-cluster-metallb \ --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
O comando
bmctl
exibe a saída na tela enquanto executa verificações de simulação e cria o cluster. As informações detalhadas são gravadas em registros da pastabaremetal/bmctl-workspace/abm-user-cluster-metallb/log
na estação de trabalho do administrador.A criação do cluster pode levar vários minutos para ser concluída.
No Console do Google Cloud, acesse a página de clusters do GKE .
Verifique se o projeto em que você criou o cluster de usuário está selecionado. O cluster de administrador e o cluster de usuário estarão na lista.
Faça login no cluster de usuário:
Clique no link no nome do cluster e, no painel lateral, clique em Login.
Selecione Usar a identidade do Google para fazer login.
Clique em Login.
Repita as mesmas etapas para fazer login no cluster de administrador.
Console
Siga estas etapas para criar um cluster de usuário no console:
No console, acesse a página Criar um cluster bare metal.
Verifique se o projeto do Google Cloud em que você criou o cluster de administrador está selecionado.
Clique em Criar cluster.
Na caixa de diálogo, clique em No local.
Ao lado de Bare Metal, clique em Configurar. A página Pré-requisitos é exibida.
Em Escolher o tipo de cluster, selecione Criar um cluster de usuário para um cluster de administrador já existente
Clique em Próxima.
Noções básicas sobre clusters
Digite um nome para o cluster de usuário ou use o padrão.
Verifique se o cluster de administrador recém-criado está selecionado. Você pode usar os padrões para o restante das configurações nesta página.
Clique em Rede na barra de navegação à esquerda.
Rede
O script executado para criar VMs e o cluster de administrador também criou uma
VXLAN de camada 2 com endereços IP na sub-rede 10.200.0.0/24
.
Na seção Plano de controle, insira o seguinte IP no campo IP do nó do plano de controle 1:
10.200.0.4
Este é o endereço IP da VM
abm-user-cluster-cp1
na VXLAN criada pelo script.Na seção Balanceador de carga, use o balanceador de carga padrão, Incorporado com MetalLB.
Na seção Novo pool de endereços, insira o intervalo de endereços IP a seguir no campo Intervalo de endereços IP 1:
10.200.0.51-10.200.0.70
Clique em Concluído.
Na seção IPs virtuais, insira o endereço IP a seguir no campo VIP do plano de controle:
10.200.0.50
Digite o seguinte endereço IP para o VIP de entrada:
10.200.0.51
Use os endereços IP padrão na seção CIDRs de serviço e pod.
Clique em Pool padrão na barra de navegação à esquerda.
Criar um pool de nós
O cluster de usuário precisa ter pelo menos um pool de nós para nós de trabalho.
Digite o seguinte endereço IP no campo Endereço de nós 1:
10.200.0.5
Este é o endereço IP da VM abm-user-cluster-w1 na VXLAN criada pelo script.
Criar o cluster
Clique em Verificar e concluir para criar o cluster de usuário.
Esse processo leva 15 minutos ou mais. O console exibe mensagens de status enquanto verifica as configurações e cria o cluster.
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.
Para saber mais informações sobre o processo de criação, clique em Mostrar detalhes para exibir um painel lateral. Clique em
para fechar o painel de detalhes.Quando o cluster é criado, o Status do cluster: em execução é exibido.
Depois que o cluster for criado, clique em
Clusters para voltar à página Clusters.Faça login no cluster de usuário:
Clique no link no nome do cluster e, no painel lateral, clique em Login.
Selecione Usar a identidade do Google para fazer login.
Clique em Login.
Repita as mesmas etapas para fazer login no cluster de administrador.
gcloud CLI
Para criar o cluster de usuário:
Execute o comando a seguir para criar o cluster de usuário:
gcloud container bare-metal clusters create abm-user-cluster-metallb \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/ON_PREM_API_REGION/memberships/ADMIN_CLUSTER_NAME \ --location=ON_PREM_API_REGION \ --version=BMCTL_VERSION \ --admin-users=YOUR_EMAIL_ADDRESS \ --metal-lb-address-pools='pool=lb-pool-1,manual-assign=True,addresses=10.200.0.51-10.200.0.70' \ --control-plane-node-configs='node-ip=10.200.0.4' \ --control-plane-vip=10.200.0.50 \ --control-plane-load-balancer-port=443 \ --ingress-vip=10.200.0.51 \ --island-mode-service-address-cidr-blocks=10.96.0.0/20 \ --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \ --lvp-share-path=/mnt/localpv-share \ --lvp-share-storage-class=local-shared \ --lvp-node-mounts-config-path=/mnt/localpv-disk \ --lvp-node-mounts-config-storage-class=local-disks
Depois de executar o comando, será exibida uma saída como esta:
Waiting for operation [projects/PROJECT_ID/locations/ON_PREM_API_REGION/operations/operation-1678304606537-5f668bde5c57e-341effde-b612ff8a] to complete...
No exemplo de saída, a string
operation-1678304606537-5f668bde5c57e-341effde-b612ff8a
é oOPERATION_ID
da operação de longa duração.Para descobrir o status da operação, abra outra janela do terminal e execute o comando.
gcloud container bare-metal operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION
Substitua
OPERATION_ID
pela string correspondente da saída da etapa anterior.A criação do cluster leva 15 minutos ou mais. À medida que o cluster é criado, é possível executar o comando anterior de vez em quando para ver o status atual.
Quando o cluster é criado, é exibida uma saída como esta:
Created Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/abm-user-cluster-metallb].
Para mais informações sobre o comando
gcloud container bare-metal clusters create
, incluindo descrições de cada flag, consulte a página container bare-metal clusters create do recurso de clusters na referência da gcloud CLI.
Criar um pool de nós
Depois que o cluster for criado, você poderá criar um pool de nós para ele.
Para criar um pool de nós:
Execute o comando a seguir para criar um pool de nós:
gcloud container bare-metal node-pools create NODE_POOL_NAME \ --cluster=abm-user-cluster-metallb \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION \ --node-configs='node-ip=10.200.0.5'
Substitua
NODE_POOL_NAME
por um nome para o pool de nós.Depois de executar o comando, será exibida uma saída como esta:
Waiting for operation [projects/PROJECT_ID/locations/ON_PREM_API_REGION/operations/operation-1678308682052-5f669b0d132cb-6ebd1c2c-816287a7] to complete...
A criação do pool de nós leva até cinco minutos. Quando o pool de nós é criado, é exibida uma saída como esta:
Created node pool in Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/abm-user-cluster-metallb/bareMetalNodePools/NODE_POOL_NAME].
Acesse a página Criar um cluster bare metal no console:
Acesse a página Criar um cluster bare metal
Verifique se o projeto em que você criou o cluster de usuário está selecionado. O cluster de administrador e o cluster de usuário estarão na lista.
Faça login no cluster de usuário:
Clique no link no nome do cluster e, no painel lateral, clique em Login.
Selecione Usar a identidade do Google para fazer login.
Clique em Login.
Repita as mesmas etapas para fazer login no cluster de administrador.
Terraform
Use a amostra de configuração básica a seguir para criar um cluster de usuário
com o balanceador de carga MetalLB empacotado. Para mais informações, consulte a documentação de referência do google_gkeonprem_bare_metal_cluster
.
No diretório em que você clonou
anthos-samples
, mude para o diretório em que a amostra do Terraform está localizada:cd anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb
A amostra fornece um arquivo de variáveis de exemplo a ser transmitido para
main.tf
.Faça uma cópia do arquivo
terraform.tfvars.sample
:cp terraform.tfvars.sample terraform.tfvars
Verifique os valores no exemplo a seguir:
O arquivo de variáveis do Terraform a seguir,
terraform.tfvars.sample
, é preenchido com os endereços IP e valores que você inseriu nas seções anteriores deste guia.Substitua
ADMIN_2_EMAIL_ADDRESS
por um endereço de e-mail associado à sua conta do Google Cloud ou remova-o ao editar o arquivo de variáveis.Para mais informações sobre os argumentos no exemplo em que você está definindo variáveis, consulte a Referência de argumentos na documentação do Terraform para clusters de usuários do Google Distributed Cloud.
Substitua o conteúdo da sua cópia do arquivo de variáveis pelo conteúdo da amostra anterior.
Inicialize e crie o plano do Terraform:
terraform init
O Terraform instala todas as bibliotecas necessárias, como o provedor do Google Cloud.
Revise a configuração e faça alterações, se necessário:
terraform plan
Aplique o plano do Terraform para criar o cluster de usuário:
terraform apply
Esse processo leva 15 minutos ou mais. É possível visualizar o cluster no Console do Google Cloud na página Clusters do GKE.
No Console do Google Cloud, acesse a página de clusters do GKE .
Verifique se o projeto em que você criou o cluster de usuário está selecionado. O cluster de administrador e o cluster de usuário estarão na lista.
Faça login no cluster de usuário:
Clique no link no nome do cluster e, no painel lateral, clique em Login.
Selecione Usar a identidade do Google para fazer login.
Clique em Login.
Repita as mesmas etapas para fazer login no cluster de administrador.
5. Limpar
Use as instruções a seguir para remover clusters e VMs criados com este guia.
Excluir o cluster de usuário
bmctl
Para excluir o cluster de usuário com
bmctl
, execute o seguinte comando na VM da estação de trabalho do administrador,abm-ws
:bmctl reset \ --cluster abm-user-cluster-metallb \ --admin-kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
Console
No console, acesse a página Clusters do GKE .
Na lista de clusters, clique no cluster de usuário.
No painel Detalhes, clique em Ver mais detalhes.
Próximo à parte superior da janela, clique em
Excluir.Quando uma confirmação for solicitada, insira o nome do cluster e clique em Excluir.
Clique em
no canto superior direito para ver o status da exclusão. Talvez seja necessário atualizar a página para atualizar a lista de clusters.
gcloud CLI
Para excluir o cluster, execute o seguinte comando:
gcloud container bare-metal clusters delete abm-user-cluster-metallb \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION \ --force
A flag
--force
permite excluir um cluster que tenha pools de nós. Sem a flag--force
, é necessário excluir os pools de nós primeiro e, em seguida, excluir o cluster.
Para informações sobre outras flags, consulte gcloud container bare-metal clusters delete.
Terraform
O comando terraform destroy
encerra os recursos que foram criados quando você
executou terraform apply
para criar o cluster de usuário.
Execute o comando a seguir no diretório em que os arquivos de exemplo do cluster de usuário do Terraform, como
main.tf
, estão localizados:terraform destroy
Aguarde até que o cluster de usuário seja excluído antes de excluir o cluster de administrador e as VMs.
Excluir o cluster de administrador e as VMs
Cancele a inscrição do cluster de administrador na API GKE On-Prem:
gcloud container bare-metal admin-clusters unenroll ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION
Conecte-se à estação de trabalho do administrador:
gcloud compute ssh root@abm-ws --zone ZONE
Exclua o cluster de administrador:
bmctl reset -c ADMIN_CLUSTER_NAME
bmctl
cancela o registro do cluster na frota e depois o exclui. Aguarde até que o cluster seja excluído antes de excluir as VMs.Saia da estação de trabalho do administrador:
exit
Liste todas as VMs que têm
abm
no nome:gcloud compute instances list | grep 'abm'
Verifique se não há problemas em excluir todas as VMs que contêm
abm
no nome.Depois de verificar, você pode excluir as VMS
abm
executando o comando a seguir:gcloud compute instances list --format="value(name)" | \ grep 'abm' | \ xargs gcloud compute instances delete --quiet --zone ZONE
Execute o comando a seguir para excluir a conta de serviço e, quando solicitado, digite
y
:gcloud iam service-accounts delete baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com
A seguir
Para começar a criar clusters no seu próprio hardware, consulte Planejar uma instalação básica no hardware e Criar clusters básicos no hardware.
Para requisitos de instalação detalhados, consulte Visão geral dos pré-requisitos de instalação.
Para mais informações sobre a instalação, consulte Visão geral da criação de clusters.
Para instruções sobre como implantar no cluster, consulte Implantar um aplicativo.