Este documento mostra como configurar VMs no Compute Engine com o Terraform para que possa instalar e experimentar o Google Distributed Cloud no modo de alta disponibilidade (HA). Para obter informações sobre como usar a CLI do Google Cloud para este fim, consulte o artigo Experimente o Google Distributed Cloud em VMs do Compute Engine.
Pode experimentar o Google Distributed Cloud rapidamente e sem ter de preparar hardware. Os scripts do Terraform fornecidos criam uma rede de VMs no Compute Engine que pode ser usada para executar o Google Distributed Cloud. Neste tutorial, usamos o modelo de implementação de cluster híbrido.
Conclua os passos seguintes para executar um cluster de amostra:
- Execute o script do Terraform para configurar uma rede de VMs no Compute Engine
- Implemente um cluster híbrido
- Valide o seu cluster
Antes de começar
A implementação requer os seguintes recursos:
- Uma estação de trabalho com acesso à Internet e as seguintes ferramentas instaladas: Git, CLI do Google Cloud e Terraform (>= v0.15.5, < 1.2).
Um Google Cloud projeto.
Uma conta de serviço no projeto que satisfaça um dos seguintes requisitos e o respetivo ficheiro de chave transferido para a estação de trabalho:
- A conta de serviço tem autorizações de proprietário
- A conta de serviço tem autorizações de editor e administrador de IAM do projeto
Configure a rede de VMs no Compute Engine
Nesta secção, usa os scripts do Terraform do repositório anthos-samples. Os scripts configuram o Compute Engine com os seguintes recursos:
- Seis VMs para implementar o cluster híbrido:
- Uma VM de administrador usada para implementar o cluster híbrido nas outras máquinas.
- Três VMs para os três nós do plano de controlo necessários para executar o plano de controlo 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 de sobreposição
VxLAN
entre todos os nós para emular a conetividade L2. - Acesso SSH aos nós control-plane e worker a partir da VM de administrador.
Pode alterar o número de nós no cluster adicionando novos nomes de nós à variável do Terraform:instance_count
Transfira os scripts do Terraform para o exemplo de
anthos-bm-gcp-terraform
:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-bm-gcp-terraform
Atualize o ficheiro
terraform.tfvars.sample
para incluir variáveis específicas do seu ambiente:project_id = "PROJECT_ID" region = "GOOGLE_CLOUD_REGION" zone = "GOOGLE_CLOUD_ZONE" credentials_file = "PATH_TO_GOOGLE_CLOUD_SERVICE_ACCOUNT_KEY_FILE"
Mude o nome do ficheiro
terraform.tfvars.sample
para o nome predefinido usado pelo Terraform para o ficheiro de variáveis:mv terraform.tfvars.sample terraform.tfvars
Inicialize o diretório de exemplo como um diretório de trabalho do Terraform. Isto configura as configurações de gestão de estado do Terraform necessárias, semelhantes ao
git init
:terraform init
Crie um plano de execução do Terraform. Este passo compara o estado dos recursos, verifica os scripts e cria um plano de execução:
terraform plan
Aplicar as alterações descritas no script do Terraform. Este passo executa o plano no fornecedor indicado (neste caso Google Cloud) para alcançar o estado dos recursos segmentados:
terraform apply # when prompted to confirm the Terraform plan, type 'Yes' and enter
Implemente o cluster híbrido
Depois de a execução do Terraform estar concluída, pode implementar o cluster híbrido.
Use o SSH para se ligar ao anfitrião de administração:
gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
Pode ignorar quaisquer mensagens sobre a atualização da VM e concluir este tutorial. Se planeia manter as VMs como um ambiente de teste, recomendamos que atualize o SO ou faça a atualização para a versão seguinte, conforme descrito na documentação do Ubuntu.
Execute o seguinte bloco de código para criar o cluster híbrido
cluster1
nas VMs do Compute Engine configuradas: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
inicia a configuração de um novo cluster híbrido. Isto inclui a realização de verificações prévias nos nós, a criação dos clusters de administrador e de utilizador, bem como o registo do cluster Google Cloud através do agente Connect. A configuração completa pode demorar até 15 minutos. Vê o seguinte resultado à medida que 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
Valide e interaja com o cluster
Pode encontrar o ficheiro kubeconfig
do seu cluster na máquina de administração no diretório bmctl-workspace
. Para validar a sua implementação, conclua os seguintes passos.
Se se desligou do anfitrião de administração, use o SSH para se ligar ao anfitrião:
# 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_ZONE
Defina a variável de ambiente
KUBECONFIG
com o caminho para o ficheiro de configuração do cluster para executar comandoskubectl
no cluster:export CLUSTER_ID=cluster1 export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig kubectl get nodes
Deverá ver os nós do cluster impressos, semelhantes ao seguinte resultado:
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
Inicie sessão no cluster a partir da Google Cloud consola
Para observar as suas cargas de trabalho na Google Cloud consola, tem de iniciar sessão no cluster.
Para ver instruções e mais informações sobre como iniciar sessão no cluster, consulte o artigo Trabalhe com clusters a partir da Google Cloud consola.
Limpar
Pode limpar a configuração do cluster de duas formas.
Consola
Terraform
- Anule o registo do cluster antes de eliminar 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 eliminar todos os recursos.
terraform destroy --auto-approve