HashiCorp Terraform es una herramienta de infraestructura como código (IaC) que te permite aprovisionar y gestionar la infraestructura en la 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 gestionar Google Cloud recursos, incluido GKE.
En esta página se explica cómo usar Terraform con GKE, se incluye una introducción al funcionamiento de Terraform y se ofrecen algunos recursos para ayudarte a empezar a usar Terraform con Google Cloud. También encontrarás enlaces a documentos de referencia de Terraform para GKE, ejemplos de código y guías para usar Terraform con el fin de aprovisionar recursos de GKE.
Para obtener instrucciones sobre cómo empezar a usar Terraform para Google Cloud, consulta Instalar y configurar Terraform o la guía de inicio rápido de Terraform para Google Cloud .
Cómo funciona Terraform
Terraform tiene una sintaxis declarativa y orientada a la configuración que puedes usar para describir la infraestructura que quieres aprovisionar en tu Google Cloud proyecto. Después de crear esta configuración en uno o varios archivos de configuración de Terraform, puedes usar la CLI de Terraform para aplicar esta configuración a tus recursos de GKE.
En los siguientes pasos se explica cómo funciona Terraform:
- Describe la infraestructura que quieres 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 hacer los cambios que necesites. -
Ejecutas el comando
terraform apply
, que realiza las siguientes acciones:- Aprovisiona tu infraestructura en función de tu plan de ejecución invocando 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 real. Terraform usa este archivo para mantener un registro del estado más reciente de tu infraestructura y para determinar cuándo crear, actualizar y eliminar recursos.
-
Cuando ejecutas
terraform apply
, Terraform usa la asignación del archivo de estado para comparar la infraestructura actual con el código y hacer las actualizaciones necesarias:- Si se define un objeto de recurso en el archivo de configuración, pero no existe en el archivo de estado, Terraform lo crea.
- Si un objeto de recurso existe en el archivo de estado, pero tiene una configuración diferente a la de tu archivo de configuración, Terraform actualiza el recurso para que coincida con tu archivo de configuración.
- Si un objeto de recurso del archivo de estado coincide con el archivo de configuración, Terraform no lo modifica.
Recursos de Terraform para GKE
Los recursos son los elementos fundamentales del lenguaje de Terraform. Cada bloque de recursos describe uno o varios objetos de infraestructura, como redes virtuales o instancias de computación.
En la siguiente tabla se enumeran los recursos de Terraform disponibles para GKE:
Guías basadas en Terraform para GKE
En la siguiente tabla se incluyen guías prácticas y tutoriales basados en Terraform para GKE:
Guía | Detalles |
---|---|
Crear un clúster de GKE y desplegar una carga de trabajo con Terraform | Explica cómo crear un clúster de Autopilot de Google Kubernetes Engine (GKE) y desplegar una carga de trabajo con Terraform. |
Aprovisionar Cloud Service Mesh en un clúster de Autopilot de GKE | Describe cómo configurar Cloud Service Mesh gestionado en un clúster de Autopilot de GKE. |
Crear y gestionar etiquetas de clúster y de grupo de nodos | Explica cómo crear un clúster con etiquetas. |
Gestionar recursos de GKE con etiquetas | Explica cómo usar etiquetas para gestionar los clústeres de GKE. |
Crear un clúster de Autopilot | Explica cómo crear un clúster de GKE en Autopilot. |
Ejecutar GPUs en grupos de nodos Standard de GKE | Explica cómo ejecutar y optimizar tus cargas de trabajo que requieren muchos recursos de computación, como la inteligencia artificial (IA) y el procesamiento de gráficos, adjuntando y usando aceleradores por hardware de unidades de procesamiento de gráficos (GPUs) de NVIDIA® en los nodos de tus clústeres Estándar de GKE. |
Usar discos de arranque secundarios para precargar datos o imágenes de contenedor | Explica cómo mejorar la latencia de inicio de las cargas de trabajo mediante el uso de discos de arranque secundarios. |
Crear un clúster nativo de VPC | Explica cómo configurar clústeres nativos de VPC en GKE. |
Desplegar cargas de trabajo de TPUs en GKE Standard | Explica cómo solicitar y desplegar cargas de trabajo de entrenamiento, ajuste e inferencia de modelos de inteligencia artificial (IA) y aprendizaje automático (ML) a gran escala mediante aceleradores de TPU de Cloud (TPUs) en clústeres estándar de GKE. |
Crear un balanceador de carga interno | Explica cómo crear un balanceador de carga de red de paso a través interno o un balanceador de carga interno en GKE. |
Añadir y gestionar grupos de nodos | Explica cómo añadir y realizar operaciones en los grupos de nodos que se ejecutan en tus clústeres de GKE Standard. |
Crear clústeres y grupos de nodos con nodos Arm | Explica cómo crear un clúster estándar de GKE o un grupo de nodos con nodos Arm para que puedas ejecutar cargas de trabajo de Arm en GKE. |
Consumir recursos de zona reservados | Explica cómo consumir recursos de Compute Engine reservados en GKE. |
Desplegar una base de datos de PostgreSQL de alta disponibilidad en GKE | Describe cómo desplegar una topología de PostgreSQL de alta disponibilidad en GKE. PostgreSQL es una base de datos relacional de objetos de código abierto conocida por su fiabilidad e integridad de los datos. |
Especificar una imagen de nodo | Explica cómo especificar una imagen de nodo para los nodos de los clústeres estándar de GKE. |
Crear 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. |
Ejecutar GPUs con varias instancias | Explica cómo aumentar la utilización y reducir los costes ejecutando GPUs con varias instancias. |
Secuenciar el lanzamiento de actualizaciones de clústeres | Explica cómo gestionar las actualizaciones de clústeres de GKE mediante la secuenciación de lanzamientos. |
Crear un clúster de zona | Se explica cómo crear un clúster zonal estándar con las funciones predeterminadas habilitadas en GKE. |
Configurar la red de un clúster de producción básico | Describe cómo desplegar una aplicación web en un clúster de GKE y exponerla con un balanceador de carga HTTPS. |
Recoger 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 de Kubernetes, el programador y el gestor de controladores a Cloud Monitoring mediante Google Cloud Managed Service para Prometheus. |
Recoger y ver métricas de cAdvisor o Kubelet | Describe cómo configurar un clúster de Google Kubernetes Engine (GKE) para enviar un conjunto seleccionado de métricas de cAdvisor o Kubelet a Cloud Monitoring mediante Google Cloud Managed Service para Prometheus. |
Ajustar el rendimiento de los registros | Describe el rendimiento de los registros predeterminado y cómo aumentarlo. |
Habilitar Copia de seguridad de GKE en un clúster | Describe cómo habilitar Copia de seguridad de GKE en un clúster. |
Modificar recursos durante la restauración | Describe cómo modificar los recursos de Kubernetes durante el proceso de restauración mediante reglas de transformación. |
Habilitar el modo permisivo en un plan de copia de seguridad | Explica cómo habilitar el modo permisivo en un plan de copias de seguridad. |
Habilitar la API Copia de seguridad de GKE | Describe cómo habilitar Copia de seguridad de GKE. |
Planificar un conjunto de copias de seguridad | Describe cómo crear un plan de copia de seguridad de Copia de seguridad de GKE, que se usa para crear copias de seguridad de tus cargas de trabajo en GKE. |
Módulos y planos de Terraform para GKE
Los módulos y los planos te ayudan a automatizar el aprovisionamiento y la gestión de Google Cloud recursos 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 blueprint es un paquete de módulos desplegables y reutilizables, así como una política que implementa y documenta una solución específica.
En la siguiente tabla se enumeran los módulos y los planos relacionados con GKE:
Módulo o plano | Detalles |
---|---|
terraform-google-kubernetes-engine | Configura clústeres de GKE con opiniones. |
terraform-google-gke-gitlab | Instala GitLab en GKE. |
Siguientes pasos
- Ejemplos de código de Terraform para GKE
- Documentación sobre Google Cloud Terraform
- Google Cloud Documentación del proveedor en HashiCorp
- Infraestructura como código para Google Cloud