En este documento, se muestra cómo configurar las VMs en Compute Engine con Terraform para que puedas instalar y probar GKE en Bare Metal en modo de alta disponibilidad (HA). Si quieres obtener información sobre cómo usar Google Cloud CLI para esto, consulta Prueba GKE en Bare Metal en las VMs de Compute Engine.
Puedes probar GKE en Bare Metal con rapidez y sin tener que preparar ningún hardware. Las secuencias de comandos de Terraform proporcionadas crean una red de VM en Compute Engine que se puede usar para ejecutar GKE en Bare Metal. En este instructivo, usamos el modelo de implementación de clúster híbrido.
Completa los siguientes pasos para ejecutar un clúster de muestra:
- Ejecuta la secuencia de comandos de Terraform para configurar una red de VM en Compute Engine
- Implementa un clúster híbrido
- Verifica tu clúster
Antes de comenzar
La implementación requiere los siguientes recursos:
- Una estación de trabajo con acceso a Internet y las siguientes herramientas instaladas: Git, Google Cloud CLI y Terraform (>= v0.15.5, < 1.2).
Un proyecto de Google Cloud,
Una cuenta de servicio en el proyecto que cumpla con uno de los siguientes requisitos y su archivo de claves 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 IAM del proyecto
Configura la red de VM en Compute Engine
En esta sección, usarás las secuencias de comandos de Terraform del repositorio anthos-samples. Las secuencias de comandos configuran Compute Engine con los siguientes recursos:
- Seis VM para implementar el clúster híbrido:
- Una VM de administrador que se usa para implementar el clúster híbrido en las otras máquinas.
- Tres VM para los tres nodos de plano de control necesarios a fin de ejecutar el plano de control del clúster híbrido.
- Dos VM para los dos nodos trabajadores que se necesitan a fin de ejecutar cargas de trabajo en el clúster híbrido
- Una red
VxLAN
superpuesta entre todos los nodos para emular la conectividad L2. - Acceso SSH a los nodos control-plane y worker desde la VM de administrador
Puedes cambiar la cantidad de nodos del clúster si agregas nombres de nodos nuevos a la variable de Terraform instance_count
:
Descarga las secuencias de comandos de Terraform para la muestra
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 las 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 muestra como directorio de trabajo de Terraform. Esto establece las opciones de configuración de la administración del estado de Terraform requeridas, de manera 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. En este paso, se ejecuta el plan en el proveedor determinado (en este caso, Google Cloud) para alcanzar el estado de recursos deseado:
terraform apply # when prompted to confirm the Terraform plan, type 'Yes' and enter
Implementa el clúster híbrido
Una vez que se complete la ejecución de Terraform, estarás listo para implementar el clúster híbrido.
Usa SSH para conectarte al host de administrador:
gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
Puedes ignorar cualquier mensaje sobre la actualización de la VM y completar este instructivo. Si planeas conservar las VM como entorno de pruebas, es posible que quieras actualizar el SO o actualizar a la siguiente versión, 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 VM configuradas de 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
La ejecución del comando bmctl
comienza a configurar un clúster híbrido nuevo. Esto incluye realizar comprobaciones previas de los nodos, crear los clústeres de administrador y de usuario, y registrar el clúster en Google Cloud mediante Connect.
La configuración completa puede demorar hasta 15 minutos. Verás 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
Verifica el clúster e interactúa con él
Puedes encontrar el archivo kubeconfig
de tu clúster en la máquina de administrador en el directorio bmctl-workspace
. Para verificar tu implementación, completa los siguientes pasos.
Si te desconectaste 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
Configura la variable de entorno
KUBECONFIG
con la ruta al archivo de configuración del clúster a fin de ejecutar comandos dekubectl
en el clúster:export CLUSTER_ID=cluster1 export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig kubectl get nodes
Deberías ver los nodos del clúster impreso, de manera similar al siguiente 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
Accede a tu clúster desde la consola de Google Cloud
Para observar tus cargas de trabajo en la consola de Google Cloud, debes acceder al clúster.
Para obtener instrucciones y más información sobre el acceso a tu clúster, consulta Acceso a un clúster desde la consola de Google Cloud.
Limpia
Puedes limpiar la configuración del clúster de dos maneras.
Consola
Terraform
- Cancela el registro del clúster antes de borrar todos los recursos que creó 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 borrar todos los recursos.
terraform destroy --auto-approve