Este documento mostra como configurar VMs no Compute Engine com o Terraform para instalar e testar o GKE em Bare Metal em modo de alta disponibilidade (HA, na sigla em inglês). Para informações sobre como usar a CLI do Google Cloud para isso, consulte Testar o GKE em Bare Metal nas VMs do Compute Engine
Você pode testar o GKE em Bare Metal rapidamente e sem precisar preparar hardwares. Os scripts do Terraform fornecidos criam uma rede de VMs no Compute Engine que podem ser utilizadas para executar o GKE em Bare Metal. Neste tutorial, usamos o modelo de implantação de cluster híbrido.
Conclua as etapas a seguir para executar um cluster de amostra:
- Execute o script do Terraform para configurar uma rede de VMs no Compute Engine
- Implante um cluster híbrido
- Verifique o cluster
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 permissões de "Editor" e "Administrador" do projeto do IAM
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
VxLAN
de 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-terraform
Atualize o arquivo
terraform.tfvars.sample
para 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.sample
como o nome padrão usado pelo Terraform para o arquivo de variáveis:mv terraform.tfvars.sample terraform.tfvars
Inicialize 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 init
Crie 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 plan
Aplique as alterações descritas no script do Terraform. Esta etapa executa o plano no provedor fornecido (neste caso, o Google Cloud) para alcançar o estado desejado 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
cluster1
nas 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 Connect.
A configuração toda pode levar até 15 minutos. A saída a seguir será exibida durante a
criação do cluster.
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_ZONE
Configure a variável de ambiente
KUBECONFIG
com o caminho para o arquivo 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
Você 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 Como fazer login em um cluster pelo 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