O provisionamento de máquinas virtuais (VMs) do Compute Engine com o Terraform permite avaliar o Google Distributed Cloud no modo de alta disponibilidade (HA) sem hardware físico. Neste tutorial, você vai usar os scripts do Terraform fornecidos para configurar uma rede de VM emulada, implantar um cluster híbrido de amostra e verificar a instalação.
Esta implantação é apenas para fins de avaliação. Não execute o Google Distributed Cloud nas VMs do Compute Engine em produção. Para implantar o Google Distributed Cloud na produção, siga as etapas em Criar clusters básicos.
Se você preferir avaliar o Google Distributed Cloud usando a Google Cloud CLI em vez do Terraform, consulte Testar o Google Distributed Cloud em VMs do Compute Engine.
Antes de começar
A implantação requer os recursos a seguir:
- Uma estação de trabalho com acesso à Internet e às seguintes ferramentas instaladas: Git, Google Cloud CLI e Terraform (entre as versões v0.15.5 e 1,2).
Um projeto do Google Cloud .
Uma conta de serviço no projeto que atenda a um dos seguintes requisitos e o respectivo arquivo de chave salvo na estação de trabalho:
- A conta de serviço tem permissões de proprietário
- A conta de serviço tem as permissões de IAM de editor e de administrador do projeto
Configure a rede de VMs no Compute Engine
Nesta seção, você usará os scripts do Terraform no repositório anthos-samples. Os scripts configuram o Compute Engine com os seguintes recursos:
- Seis VMs para implantar o cluster híbrido:
- Uma VM de administrador usada para implantar o cluster híbrido nas outras máquinas.
- Três VMs para os três nós do plano de controle necessários para executar o plano de controle do cluster híbrido.
- Duas VMs para os dois nós de trabalho necessários para executar cargas de trabalho no cluster híbrido.
- Uma rede
VxLANde sobreposição entre todos os nós para emular a conectividade L2. - Acesso SSH aos nós de plano de controle e trabalho pelo administrador da VM.
É possível alterar o número de nós no cluster adicionando novos nomes de nó à
variável instance_count do Terraform:
Faça o download dos scripts do Terraform para a amostra
anthos-bm-gcp-terraform:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-bm-gcp-terraformAtualize o arquivo
terraform.tfvars.samplepara incluir variáveis específicas ao ambiente:project_id = "PROJECT_ID" region = "GOOGLE_CLOUD_REGION" zone = "GOOGLE_CLOUD_ZONE" credentials_file = "PATH_TO_GOOGLE_CLOUD_SERVICE_ACCOUNT_KEY_FILE"Renomeie o arquivo
terraform.tfvars.samplecomo o nome padrão usado pelo Terraform para o arquivo de variáveis:mv terraform.tfvars.sample terraform.tfvarsInicialize o diretório de amostra como um diretório de trabalho do Terraform. Isso define as configurações necessárias de gerenciamento de estado do Terraform, semelhantes a
git init:terraform initCrie um plano de execução do Terraform. Esta etapa compara o estado dos recursos, verifica os scripts e cria um plano de execução:
terraform planAplique as alterações descritas no script do Terraform. Essa etapa executa o plano no provedor fornecido (neste caso, Google Cloud) para alcançar o estado de destino dos recursos:
terraform apply # when prompted to confirm the Terraform plan, type 'Yes' and enter
Implante o cluster híbrido
Depois que a execução do Terraform for concluída, você poderá implantar o cluster híbrido.
Use o SSH para se conectar ao host do administrador:
gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONEÉ possível ignorar todas as mensagens sobre a atualização da VM e 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.
Execute o seguinte bloco de código para criar o cluster híbrido
cluster1nas VMs configuradas do Compute Engine:sudo ./run_initialization_checks.sh && \ sudo bmctl create config -c cluster1 && \ sudo cp ~/cluster1.yaml bmctl-workspace/cluster1 && \ sudo bmctl create cluster -c cluster1
A execução do comando bmctl começa a configurar um novo cluster híbrido. Isso
inclui executar verificações de simulação nos nós, criar os clusters
de administrador e usuário e registrar o cluster no Google Cloud usando o
Agente do Connect. A configuração toda pode levar até 15 minutos. A saída a seguir será exibida enquanto o cluster é criado:
Created config: bmctl-workspace/cluster1/cluster1.yaml
Creating bootstrap cluster... OK
Installing dependency components... OK
Waiting for preflight check job to finish... OK
- Validation Category: machines and network
- [PASSED] 10.200.0.3
- [PASSED] 10.200.0.4
- [PASSED] 10.200.0.5
- [PASSED] 10.200.0.6
- [PASSED] 10.200.0.7
- [PASSED] gcp
- [PASSED] node-network
Flushing logs... OK
Applying resources for new cluster
Waiting for cluster to become ready OK
Writing kubeconfig file
kubeconfig of created cluster is at bmctl-workspace/cluster1/cluster1-kubeconfig, please run
kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig get nodes
to get cluster node status.
Please restrict access to this file as it contains authentication credentials of your cluster.
Waiting for node pools to become ready OK
Moving admin cluster resources to the created admin cluster
Flushing logs... OK
Deleting bootstrap cluster... OK
Verifique e interaja com o cluster
O arquivo kubeconfig do cluster pode ser encontrado na máquina de administração, no
diretório bmctl-workspace. Para verificar a implantação, conclua as etapas
a seguir.
Se você se desconectou do host de administrador, use o SSH para se conectar ao host:
# You can copy the command from the output of the Terraform execution above gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONEConfigure a variável de ambiente
KUBECONFIGcom o caminho para o arquivo de configuração do cluster para executar comandoskubectlno cluster.export CLUSTER_ID=cluster1 export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig kubectl get nodesVocê verá os nós do cluster impressos, semelhantes à seguinte saída:
NAME STATUS ROLES AGE VERSION cluster1-abm-cp1-001 Ready master 17m v1.18.6-gke.6600 cluster1-abm-cp2-001 Ready master 16m v1.18.6-gke.6600 cluster1-abm-cp3-001 Ready master 16m v1.18.6-gke.6600 cluster1-abm-w1-001 Ready <none> 14m v1.18.6-gke.6600 cluster1-abm-w2-001 Ready <none> 14m v1.18.6-gke.6600
Fazer login no cluster pelo console do Google Cloud
Para observar as cargas de trabalho no console do Google Cloud , faça login no cluster.
Para instruções e mais informações sobre como fazer login no cluster, consulte Trabalhar com clusters no console do Google Cloud .
Limpar
Há duas formas de limpar a configuração do cluster.
Console
Terraform
- Cancele o registro do cluster antes de excluir todos os recursos criados pelo Terraform.
# Use SSH to connect to the admin host
gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
# Reset the cluster
export CLUSTER_ID=cluster1
export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig
sudo bmctl reset --cluster $CLUSTER_ID
# log out of the admin host
exit
- Use o Terraform para excluir todos os recursos.
terraform destroy --auto-approve