Puntos de control
Deploy infrastructure with Terraform
/ 100
Implementa el servicio del balanceador de cargas de Kubernetes con Terraform
GSP233
Descripción general
En Terraform, un proveedor es la abstracción lógica de una API ascendente. En este lab, te mostraremos cómo configurar un clúster de Kubernetes y, luego, implementar un servicio NGINX de balanceador de cargas en él.
Objetivos
En este lab, aprenderás a hacer lo siguiente:
- Implementar un clúster de Kubernetes junto con un servicio a través de Terraform
Requisitos previos
Para este lab, debes tener experiencia en los siguientes temas:
- Conocimiento de los servicios de Kubernetes
- Conocimiento de la CLI de
kubectl
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
- Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Cómo iniciar su lab y acceder a la consola de Google Cloud
-
Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab que tiene estos elementos:
- El botón Abrir la consola de Google
- Tiempo restante
- Las credenciales temporales que debe usar para el lab
- Otra información para completar el lab, si es necesaria
-
Haga clic en Abrir la consola de Google. El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta. -
Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.
-
Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.
Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales. -
Haga clic para avanzar por las páginas siguientes:
- Acepte los términos y condiciones.
- No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No se registre para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Cloud en esta pestaña.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
- Haz clic en Activar Cloud Shell en la parte superior de la consola de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:
gcloud
es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
-
Haz clic en Autorizar.
-
Ahora, el resultado debería verse de la siguiente manera:
Resultado:
- Puedes solicitar el ID del proyecto con este comando (opcional):
Resultado:
Resultado de ejemplo:
gcloud
, consulta la guía con la descripción general de gcloud CLI en Google Cloud.
Servicios de Kubernetes
Un servicio es un grupo de pods que se ejecutan en el clúster. Los servicios son "económicos" y puedes tener varios servicios dentro del clúster. Los de Kubernetes pueden potenciar una arquitectura de microservicios de forma eficiente.
Los servicios proporcionan funciones importantes que se estandarizan en todo el clúster: balanceo de cargas, descubrimiento de servicios entre aplicaciones y funciones para admitir implementaciones de aplicaciones sin tiempo de inactividad.
Cada servicio tiene una búsqueda de etiquetas de pods que define los pods encargados de procesar los datos del servicio. Con frecuencia, esta búsqueda de etiquetas coincide con los pods creados por uno o más controladores de replicación. Existe la posibilidad de contar con escenarios de enrutamiento potentes si se actualiza la búsqueda de etiquetas de un servicio mediante la API de Kubernetes con software de implementación.
¿Por qué debería usar Terraform?
Si bien puedes usar kubectl
o herramientas similares basadas en CLI asignadas a llamadas a la API para administrar todos los recursos de Kubernetes descritos en los archivos YAML, la organización con Terraform presenta algunos beneficios:
- Un lenguaje: Puedes usar el mismo lenguaje de configuración para aprovisionar la infraestructura de Kubernetes y para implementar aplicaciones en ella.
-
Detección de desvío:
terraform plan
siempre te mostrará la diferencia entre la realidad en un momento dado y la configuración que tienes pensado aplicar. - Administración de ciclo de vida completo: Al principio, Terraform no solo crea recursos, sino que ofrece un comando único para crear, actualizar y borrar recursos rastreados sin la necesidad de inspeccionar la API para identificarlos.
- Comentarios síncronos: Si bien el comportamiento asíncrono suele ser útil, en ocasiones es contraproducente, ya que el trabajo de identificar el resultado de una operación (fallas o detalles de un recurso creado) se deja en manos del usuario. Por ejemplo, no contarás con una IP o un nombre de host del balanceador de cargas hasta que haya finalizado el aprovisionamiento, y, por ende, no podrás crear ningún Registro DNS que apunte a él.
- Gráfico de relaciones: Terraform comprende las relaciones entre los recursos que pueden ayudar con la programación (p. ej., no intentará crear un servicio en un clúster de Kubernetes hasta que el clúster exista).
Tarea 1. Clona el código de muestra
- En Cloud Shell, comienza por clonar el código de muestra:
- Navega al directorio
tf-gke-k8s-service-lb
:
Tarea 2: Examina el código
- Revisa el contenido del archivo
main.tf
:
Resultado de ejemplo:
- Se definen variables para los campos
region
,zone
ynetwork_name
, que se usarán para crear el clúster de Kubernetes. - El proveedor de Google Cloud nos permitirá crear recursos en este proyecto.
- Existen varios recursos definidos para crear la red y el clúster apropiados.
- Al final, hay algunos resultados que verás después de ejecutar
terraform apply
.
- Revisa el contenido del archivo
k8s.tf
:
Resultado de ejemplo:
- La secuencia de comandos configura un proveedor de Kubernetes con Terraform y crea el servicio, el espacio de nombres y un recurso replication_controller.
- La secuencia de comandos devuelve una IP de servicio
nginx
como resultado.
Tarea 3. Inicializa y, luego, instala las dependencias
El comando terraform init
se usa para inicializar un directorio de trabajo que contiene archivos de configuración de Terraform.
Este comando realiza varios pasos de inicialización distintos a fin de preparar un directorio de trabajo para su uso. Se recomienda ejecutarlo varias veces para que se actualice el directorio de trabajo con los cambios en la configuración.
- Ejecuta
terraform init
:
Resultado de ejemplo:
- Ejecuta el comando
terraform apply
, que se usa para aplicar los cambios necesarios para alcanzar el estado deseado de la configuración:
-
Revisa las acciones de Terraform y, luego, inspecciona los recursos que se crearán.
-
Cuando tengas todo listo, escribe yes para comenzar las acciones de Terraform.
Cuando finalicen, deberías ver un resultado similar:
Resultado de ejemplo:
Verifica los recursos creados por Terraform
- En la consola, ve al menú de navegación > Kubernetes Engine.
- Haz clic en el clúster
tf-gke-k8s
y revisa su configuración. - En el panel izquierdo, haz clic en Ingress y servicios y revisa el estado del servicio de
nginx
. - Haz clic en la dirección IP de Extremos para abrir la página
Welcome to nginx!
en una nueva pestaña del navegador.
Haz clic en Revisar mi progreso para verificar la tarea realizada. Si implementaste correctamente la infraestructura con Terraform, verás una puntuación de evaluación.
¡Felicitaciones!
En este lab, utilizaste Terraform para inicializar, planificar y, luego, implementar un clúster de kubernetes junto con un servicio.
Finaliza la Quest
Este lab de autoaprendizaje forma parte de las Quests Managing Cloud Infrastructure with Terraform y DevOps Essentials. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completas esta Quest, obtendrás una insignia como reconocimiento por tu logro. Puedes hacer públicas tus insignias y agregar vínculos a ellas en tu currículum en línea o en tus cuentas de redes sociales. Inscríbete en cualquier Quest que contenga este lab y obtén un crédito inmediato de finalización. Consulta el catálogo de Google Cloud Skills Boost para ver todas las Quests disponibles.
Realiza tu próximo lab
Continúa tu Quest con Balanceador de cargas basado en contenido HTTPS con Terraform o consulta las siguientes sugerencias:
Próximos pasos y más información
Descubre cómo otras personas experimentan Terraform en la Comunidad.
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Actualización más reciente del manual: 28 de septiembre de 2023
Prueba más reciente del lab: 28 de septiembre de 2023
Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.