En este documento se explica cómo configurar máquinas virtuales en Compute Engine con Terraform para que puedas instalar y probar Google Distributed Cloud en modo de alta disponibilidad. Para obtener información sobre cómo usar la CLI de Google Cloud para ello, consulta Probar Google Distributed Cloud en VMs de Compute Engine.
Puedes probar Google Distributed Cloud rápidamente y sin tener que preparar ningún hardware. Las secuencias de comandos de Terraform proporcionadas crean una red de máquinas virtuales en Compute Engine que se puede usar para ejecutar Google Distributed Cloud. En este tutorial, usaremos el modelo de despliegue de clúster híbrido.
Sigue estos pasos para poner en marcha un clúster de ejemplo:
- Ejecuta la secuencia de comandos de Terraform para configurar una red de VMs en Compute Engine
- Desplegar un clúster híbrido
- Verificar el clúster
Antes de empezar
La implementación requiere los siguientes recursos:
- Una estación de trabajo con acceso a Internet y las siguientes herramientas instaladas: Git, CLI de Google Cloud y Terraform (>= v0.15.5, < 1.2).
Un Google Cloud proyecto.
Una cuenta de servicio del proyecto que cumpla uno de los siguientes requisitos y su archivo de clave descargado en la estación de trabajo:
- La cuenta de servicio tiene permisos de propietario
- La cuenta de servicio tiene permisos de editor y de administrador de gestión de identidades y accesos del proyecto
Configurar la red de la VM en Compute Engine
En esta sección, utilizarás las secuencias de comandos de Terraform del repositorio anthos-samples. Las secuencias de comandos configuran Compute Engine con los siguientes recursos:
- Seis VMs para desplegar el clúster híbrido:
- Una VM de administrador que se usa para desplegar el clúster híbrido en las demás máquinas.
- Tres VMs para los tres nodos del plano de control necesarios para ejecutar el plano de control del clúster híbrido.
- Dos VMs para los dos nodos de trabajador necesarios para ejecutar cargas de trabajo en el clúster híbrido.
- Una
VxLAN
red superpuesta entre todos los nodos para emular la conectividad de nivel 2. - Acceso SSH a los nodos plano de control y worker desde la VM de administrador.
Puedes cambiar el número de nodos del clúster añadiendo nombres de nodos nuevos a la variable de Terraform instance_count
:
Descarga las secuencias de comandos de Terraform del ejemplo
anthos-bm-gcp-terraform
:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-bm-gcp-terraform
Actualiza el archivo
terraform.tfvars.sample
para incluir variables específicas de tu entorno:project_id = "PROJECT_ID" region = "GOOGLE_CLOUD_REGION" zone = "GOOGLE_CLOUD_ZONE" credentials_file = "PATH_TO_GOOGLE_CLOUD_SERVICE_ACCOUNT_KEY_FILE"
Cambia el nombre del archivo
terraform.tfvars.sample
al nombre predeterminado que usa Terraform para el archivo de variables:mv terraform.tfvars.sample terraform.tfvars
Inicializa el directorio de ejemplo como directorio de trabajo de Terraform. De esta forma, se configuran las opciones de gestión de estado de Terraform necesarias, de forma similar a
git init
:terraform init
Crea un plan de ejecución de Terraform. En este paso se compara el estado de los recursos, se verifican las secuencias de comandos y se crea un plan de ejecución:
terraform plan
Aplica los cambios descritos en la secuencia de comandos de Terraform. Este paso ejecuta el plan en el proveedor indicado (en este caso, Google Cloud) para alcanzar el estado de los recursos de destino:
terraform apply # when prompted to confirm the Terraform plan, type 'Yes' and enter
Desplegar el clúster híbrido
Una vez que se haya completado la ejecución de Terraform, podrás implementar el clúster híbrido.
Usa SSH para conectarte al host de administración:
gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
Puedes ignorar los mensajes sobre la actualización de la máquina virtual y completar este tutorial. Si tienes previsto mantener las VMs como entorno de pruebas, puede que quieras actualizar el SO o cambiar a la siguiente versión, tal como se describe en la documentación de Ubuntu.
Ejecuta el siguiente bloque de código para crear el clúster híbrido
cluster1
en las máquinas virtuales de 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
Al ejecutar el comando bmctl
, se inicia la configuración de un nuevo clúster híbrido. Esto incluye realizar comprobaciones previas en los nodos, crear los clústeres de administrador y de usuario, y registrar el clúster en Google Cloud con el agente de Connect. Todo el proceso de configuración puede tardar hasta 15 minutos. Verá el siguiente resultado mientras se crea el clúster:
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
Verificar e interactuar con el clúster
Puedes encontrar el archivo kubeconfig
de tu clúster en el directorio bmctl-workspace
del equipo de administración. Para verificar tu implementación, sigue estos pasos.
Si te has desconectado del host de administrador, usa SSH para conectarte al 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
Define la variable de entorno
KUBECONFIG
con la ruta al archivo de configuración del clúster para ejecutar comandoskubectl
en el clúster:export CLUSTER_ID=cluster1 export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig kubectl get nodes
Deberían aparecer los nodos del clúster, de forma similar a la siguiente salida:
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
Inicia sesión en tu clúster desde la Google Cloud consola
Para observar tus cargas de trabajo en la Google Cloud consola, debes iniciar sesión en el clúster.
Para obtener instrucciones y más información sobre cómo iniciar sesión en tu clúster, consulta Trabajar con clústeres desde la consola Google Cloud .
Limpieza
Puedes limpiar la configuración del clúster de dos formas.
Consola
Terraform
- Anula el registro del clúster antes de eliminar todos los recursos creados por 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
- Usa Terraform para eliminar todos los recursos.
terraform destroy --auto-approve