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 Cloud de Confiance para aprovisionar y administrar Cloud de Confiance by S3NS recursos, incluido GKE.
En esta página, se presenta el uso de Terraform con GKE, incluida una introducción sobre cómo funciona Terraform y algunos recursos que te ayudarán a comenzar a usar Terraform con Cloud de Confiance. También encontrarás vínculos a documentos de referencia de Terraform para GKE, ejemplos de código y guías para usar Terraform para aprovisionar recursos de GKE.
Para obtener instrucciones sobre cómo comenzar a usar Terraform para Cloud de Confiance, consulta Instala y configura Terraform o la guía de inicio rápido de Terraform para Cloud de Confiance .
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 Cloud de Confiance proyecto. 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:
- Describe la infraestructura que deseas aprovisionar en un Terraform archivo de configuración. No necesitas escribir 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 en la infraestructura del mundo real. Terraform usa este archivo para mantener un registro del estado más reciente de la 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.
Recursos de Terraform para GKE
Los recursos son los elementos fundamentales en el 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:
Guías basadas en Terraform para GKE
En la siguiente tabla, se enumeran 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, luego, implementar una carga de trabajo con Terraform. |
| Crear un clúster de Autopilot | Explica cómo crear un clúster de GKE en Autopilot. |
| Creando un clúster zonal | Explica cómo crear un clúster zonal estándar con las funciones predeterminadas habilitadas en GKE. |
| Creando un clúster regional | Explica cómo crear un clúster regional estándar en GKE. |
| Crea un clúster de múltiples usuarios con Terraform | Explica cómo crear un clúster de múltiples usuarios y, luego, implementar una carga de trabajo con Terraform. |
| 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 Arm en GKE. |
| Consume recursos zonales reservados | Explica cómo consumir recursos reservados de Compute Engine en GKE. |
| Especifica una imagen de nodo | Explica cómo especificar una imagen de nodo para los nodos en clústeres de GKE Standard. |
| Creación de un clúster con grupos de nodos de Windows Server | Explica cómo crear un clúster de GKE con grupos de nodos que ejecuten Microsoft Windows Server. |
| Crea y administra etiquetas de clúster y grupo de nodos | Explica cómo crear un clúster que tenga etiquetas adjuntas. |
| Administra recursos de GKE mediante etiquetas | Explica cómo usar etiquetas para administrar tus clústeres de GKE. |
| Personaliza la configuración del sistema de nodos | Explica cómo personalizar la configuración del sistema de nodos de GKE con un archivo de configuración del sistema de nodos. |
| Crea un clúster nativo de la VPC | Explica cómo configurar clústeres nativos de la VPC en GKE. |
| 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. |
| Configura las Herramientas de redes para un clúster de producción básico | Describe cómo implementar una aplicación web en un clúster de GKE y exponerla con un balanceador de cargas HTTPS. |
| Establece una secuencia para el lanzamiento de las actualizaciones de los clústeres | Explica cómo administrar las actualizaciones de clúster de GKE con la secuenciación de lanzamiento. |
| 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 que usan aceleradores de Cloud TPU (TPU) en clústeres de GKE Standard. |
| Ejecuta GPU en GKE grupos de nodos de GKE Standard | Explica cómo ejecutar y optimizar tus cargas de trabajo intensivas en procesamiento, como las cargas de trabajo de inteligencia artificial (IA), conectando y usando GPU de NVIDIA en los nodos de tus clústeres de GKE Standard. |
| Ejecuta GPU de instancias múltiples | Explica cómo aumentar el uso y reducir los costos mediante la ejecución de GPU de instancias múltiples. |
| Habilita el operador de Ray en GKE | Explica cómo habilitar el operador de Ray para 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. |
| 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. |
| Recopila y consulta 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, y el programador y el administrador del controlador 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 registros predeterminada y cómo aumentarla. |
| Implementa OpenTelemetry administrado para GKE | Explica cómo configurar OpenTelemetry administrado para GKE para enviar registros, métricas y seguimientos de OTLP a Google Cloud Observability. |
| Recopila y consulta kube-state-metrics | Describe cómo configurar un clúster de GKE para enviar kube-state-metrics a Cloud Monitoring con Google Cloud Managed Service para Prometheus. |
| Instala Policy Controller | Explica cómo instalar Policy Controller con Terraform. |
| Habilita Copia de seguridad para GKE en el clúster. | Describe cómo habilitar 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 con 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. | Describe cómo habilitar 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. |
| Registra un clúster en Cloud de Confiance by S3NS tu flota | Explica cómo registrar un clúster de GKE en Cloud de Confiance by S3NS tu flota con Terraform. |
| Instala el Sincronizador de configuración como valor predeterminado de la flota | Explica cómo configurar el Sincronizador de configuración como valor predeterminado a nivel de la flota para todos los clústeres nuevos. |
| Administra los recursos del equipo en tu flota | Explica cómo usar el Sincronizador de configuración y Terraform para crear de forma dinámica recursos con permisos de equipo en una flota de clústeres. |
Planos y esquemas de Terraform para GKE
Los módulos y los esquemas te ayudan a automatizar el aprovisionamiento y la administración de Cloud de Confiance 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 plano 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 los módulos y los esquemas relacionados con GKE:
| Módulo o esquema | Detalles |
|---|---|
| terraform-google-kubernetes-engine | Configura clústeres de GKE bien definidos |
| terraform-google-gke-gitlab | Instala GitLab en GKE. |