HashiCorp Terraform es una herramienta de infraestructura como código (IaC) que te permite aprovisionar y administrar la infraestructura de nube. Terraform proporciona complementos llamados proveedores que te permiten interactuar con proveedores de servicios en la nube y otras APIs. Puedes usar el proveedor de Terraform para Google Cloud para aprovisionar y administrar recursos de Google Cloud, incluido GKE.
Cómo funciona Terraform
Terraform tiene una sintaxis declarativa y orientada a la configuración que puedes usar para describir la infraestructura que deseas aprovisionar en tu proyecto de Google Cloud. Después de crear esta configuración en uno o más archivos de configuración de Terraform, puedes usar la CLI de Terraform para aplicarla a tus recursos de GKE.
En los siguientes pasos, se explica cómo funciona Terraform:
- Describes la infraestructura que deseas aprovisionar en un archivo de configuración de Terraform. No es necesario que escribas código que describa cómo aprovisionar la infraestructura. Terraform aprovisiona la infraestructura por ti.
- Ejecuta el comando
terraform plan
, que evalúa tu configuración y genera un plan de ejecución. Puedes revisar el plan y realizar cambios según sea necesario. -
Luego, ejecuta el comando
terraform apply
, que realiza las siguientes acciones:- Aprovisiona tu infraestructura según tu plan de ejecución mediante la invocación de las APIs de GKE correspondientes en segundo plano.
- Crea un archivo de estado de Terraform, que es un archivo JSON que asigna los recursos del archivo de configuración a los recursos de la infraestructura del mundo real. Terraform usa este archivo para mantener un registro del estado más reciente de tu infraestructura y determinar cuándo crear, actualizar y destruir recursos.
-
Luego, cuando ejecutes
terraform apply
, Terraform usa la asignación en el archivo de estado para comparar la infraestructura existente con el código y realizar actualizaciones según sea necesario:- Si un objeto de recurso se define en el archivo de configuración, pero no existe en el archivo de estado, Terraform lo crea.
- Si existe un objeto de recurso en el archivo de estado, pero tiene una configuración diferente de tu archivo de configuración, Terraform actualiza el recurso para que coincida con tu archivo de configuración.
- Si un objeto de recurso en el archivo de estado coincide con tu archivo de configuración, Terraform deja el recurso sin cambios.
Guías basadas en Terraform para GKE
En la siguiente tabla, se enumeran todas las guías prácticas y los instructivos basados en Terraform para GKE:
Guía | Detalles |
---|---|
Crea un clúster de GKE y, luego, implementa una carga de trabajo con Terraform | Explica cómo crear un clúster de Autopilot de Google Kubernetes Engine (GKE) y a implementar una carga de trabajo con Terraform. |
Aprovisiona Cloud Service Mesh en un clúster de GKE Autopilot | Describe cómo configurar Cloud Service Mesh administrado en un clúster de GKE Autopilot. |
Crea y administra etiquetas de clúster y grupo de nodos | Explica cómo crear un clúster con etiquetas. |
Administrar recursos de GKE mediante etiquetas | Explica cómo usar etiquetas para administrar tus clústeres de GKE. |
Crear un clúster de Autopilot | Explica cómo crear un clúster de GKE en Autopilot. |
Ejecuta GPU en grupos de nodos de GKE Standard | Explica cómo ejecutar y optimizar tus cargas de trabajo intensivas en procesamiento, como la inteligencia artificial (IA) y el procesamiento de gráficos, conectando y usando aceleradores de hardware de unidad de procesamiento gráfico (GPU) de NVIDIA® en los nodos de tus clústeres estándar de GKE. |
Usa discos de arranque secundarios para precargar datos o imágenes de contenedor | Explica cómo mejorar la latencia de inicio de la carga de trabajo con discos de arranque secundarios. |
Crea un clúster nativo de la VPC | Explica cómo configurar clústeres nativos de la VPC en GKE. |
Implementa cargas de trabajo de TPU en GKE Standard | Explica cómo solicitar e implementar cargas de trabajo de inferencia, ajuste y entrenamiento de modelos de inteligencia artificial (IA) y aprendizaje automático (AA) a gran escala con aceleradores de Cloud TPU (TPU) en clústeres de GKE Standard. |
Crea un balanceador de cargas interno | Explica cómo crear un balanceador de cargas de red de transferencia interno o un balanceador de cargas interno en GKE. |
Agrega y administra grupos de nodos | Explica cómo agregar y realizar operaciones en grupos de nodos que ejecutan tus clústeres de GKE Standard. |
Crea clústeres y grupos de nodos con nodos Arm | Explica cómo crear un clúster o grupo de nodos de GKE Standard con nodos Arm para que puedas ejecutar cargas de trabajo de Arm en GKE. |
Consume recursos zonales reservados | Explica cómo consumir recursos reservados de Compute Engine en GKE. |
Implementa una base de datos de PostgreSQL con alta disponibilidad en GKE | Describe la implementación de una topología de PostgreSQL con alta disponibilidad en GKE. PostgreSQL es una base de datos relacional de objetos de código abierto conocida por la confiabilidad y la integridad de los datos. |
Especifica una imagen de nodo | Explica cómo especificar una imagen de nodo en los clústeres de GKE Standard. |
Crea un clúster mediante grupos de nodos de Windows Server | Explica cómo crear un clúster de GKE con grupos de nodos que ejecuten Microsoft Windows Server. |
Ejecuta GPU de instancias múltiples | Explica cómo aumentar el uso y reducir los costos mediante la ejecución de GPUs de varias instancias. |
Establece una secuencia para el lanzamiento de las actualizaciones de los clústeres | Explica cómo administrar las actualizaciones de los clústeres de GKE con la secuenciación de lanzamientos. |
Crea un clúster zonal | Explica cómo crear un clúster zonal estándar con las funciones predeterminadas habilitadas en GKE. |
Configura las Herramientas de redes para un clúster de producción básico | Se describe cómo implementar una aplicación web en un clúster de GKE y exponerla con un balanceador de cargas HTTPS. |
Cómo recopilar y ver métricas del plano de control | Describe cómo configurar un clúster de GKE para enviar métricas emitidas por el servidor de la API, el programador y el administrador del controlador de Kubernetes a Cloud Monitoring con Google Cloud Managed Service para Prometheus. |
Recopila y consulta las métricas de cAdvisor/Kubelet | Describe cómo configurar un clúster de Google Kubernetes Engine (GKE) para enviar un conjunto seleccionado de métricas de cAdvisor/Kubelet a Cloud Monitoring con Google Cloud Managed Service para Prometheus. |
Ajusta la capacidad de procesamiento de los registros | Describe la capacidad de procesamiento de registro predeterminada y cómo aumentarla. |
Habilita Copia de seguridad para GKE en el clúster. | Describe cómo habilitar la Copia de seguridad para GKE en un clúster. |
Modifica recursos durante el restablecimiento | Describe cómo realizar modificaciones en los recursos de Kubernetes durante el proceso de restablecimiento mediante reglas de transformación. |
Habilita el modo permisivo en un plan de copia de seguridad | Explica cómo habilitar el modo permisivo en un plan de copia de seguridad. |
Habilita la API de Copia de seguridad para GKE. | Se describe cómo habilitar la Copia de seguridad para GKE. |
Planifica un conjunto de copias de seguridad | Describe cómo crear un plan de copia de seguridad para GKE, que se usa para crear copias de seguridad de tus cargas de trabajo en GKE. |
Planos y esquemas de Terraform para GKE
Los módulos y los esquemas te ayudan a automatizar el aprovisionamiento y la administración de los recursos de Google Cloud a gran escala. Un módulo es un conjunto reutilizable de archivos de configuración de Terraform que crea una abstracción lógica de los recursos de Terraform. Un esquema es un paquete de módulos implementables y reutilizables, y una política que implementa y documenta una solución específica.
En la siguiente tabla, se enumeran todos los módulos y los esquemas relacionados con GKE:
Módulo o esquema | Detalles |
---|---|
terraform-google-container-vm | Configura clústeres de GKE bien definidos |
terraform-google-gke-gitlab | Instala GitLab en GKE. |
Recursos de Terraform para GKE
Los recursos son los elementos fundamentales del lenguaje de Terraform. Cada bloque de recursos describe uno o más objetos de infraestructura, como redes virtuales o instancias de procesamiento.
En la siguiente tabla, se enumeran los recursos de Terraform disponibles para GKE:
¿Qué sigue?
- Muestras de código de Terraform para GKE
- Documentación de Terraform en Google Cloud
- Documentación del proveedor de Google Cloud en HashiCorp
- Infraestructura como código para Google Cloud