Image Builder es una herramienta declarativa de personalización de imágenes del sistema operativo (SO) que se ejecuta en tu Google Cloud proyecto con Cloud Build. Automatiza el proceso de compilación, personalización y validación de imágenes del SO para ayudar a verificar que se inicien correctamente y que cumplan con tus requisitos de configuración antes de publicarlas para cargas de trabajo de producción.
Ventajas clave
Al automatizar el ciclo de vida de las imágenes personalizadas del SO dentro de Google Cloud, Image Builder te ayuda a administrar la infraestructura y validar los requisitos de configuración. Image Builder proporciona las siguientes funciones para tus compilaciones de imágenes personalizadas del SO:
- Automatiza la creación de imagen de SO SO: Crea y mantén imágenes personalizadas del SO con recetas declarativas de YAML y flujos de trabajo automatizados de Cloud Build, sin necesidad de secuencias de comandos personalizadas ni herramientas externas. Como Image Builder se ejecuta dentro de Cloud Build, puedes usar activadores de Cloud Build para iniciar automáticamente compilaciones de imágenes en eventos del repositorio (como una inserción o etiqueta de Git), configurar programas recurrentes (por ejemplo, compilaciones semanales para parches de seguridad) o responder a mensajes de Pub/Sub (para activar compilaciones de forma programática desde flujos de trabajo externos o webhooks).
- Valida las imágenes antes de publicarlas: Verifica las imágenes antes de publicarlas. Las verificaciones proporcionadas por Google validan que las imágenes intermedias se inicien, admitan el inicio seguro (cuando corresponda), carguen los controladores de red necesarios y ejecuten un agente invitado en buen estado.
- Realiza un seguimiento de la ejecución de secuencias de comandos: Realiza un seguimiento del código que se ejecuta durante tu canalización de compilación. Image Builder registra automáticamente el hash SHA-256 criptográfico de tus secuencias de comandos de personalización intercaladas dentro de los registros de compilación para mantener un registro de auditoría.
- Paga solo por los recursos que usas: El servicio de Image Builder está disponible sin cargo adicional. Solo incurres en costos por los recursos subyacentes de procesamiento, almacenamiento y compilación que se consumen mientras se ejecutan tus canalizaciones.
Cómo funciona Image Builder
Image Builder se ejecuta dentro de tu Google Cloud proyecto con un contenedor de orquestador de Cloud Build. El proceso de compilación de imágenes consta de las siguientes fases:
- Validación y preparación: El contenedor del orquestador verifica la sintaxis de YAML y comprueba que todas las APIs necesarias estén habilitadas y que los permisos de seguridad de Identity and Access Management (IAM) de destino estén activos.
- Preparación del espacio de trabajo y del disco: El contenedor del orquestador archiva el directorio del espacio de trabajo de Cloud Build (
/workspace) que contiene tu código fuente y tus configuraciones en un archivo tar comprimido (.tar.gz) y sube este archivo tar al bucket de workdir de Cloud Storage especificado en tu configuración de compilación. Luego, el contenedor del orquestador usa un sistema de archivos de aprovisionamiento de personalización compilado de forma estática para crear una imagen temporal de Compute Engine, que define el disco de datos secundario conectado a tu VM de trabajador. - Ejecución de la VM de trabajador: El contenedor del orquestador inicia una instancia de VM de trabajador efímera con la imagen de origen especificada como el disco de arranque y conecta el disco de datos secundario que contiene el aprovisionador de personalización.
Las propiedades de hardware, la red de VPC, la subred y la asignación de IP externa de la VM de trabajador (ya sea una IP pública efímera o ninguna IP externa) se determinan mediante la configuración de
infrastructureConfigen tu archivoimagebuilder.yaml. - Personalización: Una secuencia de comandos de inicio activa el disco de datos y comienza el aprovisionador de personalización en la VM de trabajador. El aprovisionador descarga el archivo del espacio de trabajo y aplica las personalizaciones declaradas, como ejecutar secuencias de comandos de shell, copiar archivos o compilar controladores. También realiza un paso de limpieza de seguridad para limpiar las claves SSH, los IDs únicos de la máquina y los historiales de registros. Luego, apaga la instancia.
- Validación (pruebas): El contenedor del orquestador crea una imagen temporal del SO de prueba a partir del disco de arranque personalizado y aprovisiona VMs de prueba temporales con la configuración de red y de infraestructura en tu archivo
imagebuilder.yamlpara ejecutar las siguientes verificaciones de validación definidas por el sistema:- Verificación del controlador IDPF de Intel: Verifica que las instancias compatibles carguen el controlador de red de la función de ruta de datos de infraestructura (IDPF) de Intel (
idpf) en lugar de controladores genéricos de pantalla o de resguardo. - Verificación de redes y del agente invitado: Confirma que el servicio del agente invitado esté activo, que al menos una interfaz de red que no sea de bucle invertido esté activa y que los nombres cumplan con las convenciones (
eth*oen*). - Verificación de inicio seguro: Asegura que el inicio seguro de UEFI esté activo y que el sistema aplique la verificación del kernel invitado.
- Verificación de suspensión o reanudación: Suspende la VM de prueba con la API de Compute Engine y verifica que la conectividad de red se recupere después de la reanudación sin reiniciar el sistema.
- Verificación del controlador IDPF de Intel: Verifica que las instancias compatibles carguen el controlador de red de la función de ruta de datos de infraestructura (IDPF) de Intel (
- Lanzamiento: Si todas las verificaciones de validación se aprueban, el contenedor del orquestador prepara la imagen final:
- Si Artifact Registry está configurado: El contenedor del orquestador exporta el disco de arranque personalizado como un archivo tar a un repositorio genérico de Artifact Registry y crea la imagen final de Compute Engine de producción con el URI de Artifact Registry como su fuente.
- Si Artifact Registry no está configurado: El contenedor del orquestador crea la imagen de Compute Engine directamente en tu proyecto con el disco de arranque personalizado.
Consideraciones sobre los precios y la cuota
El servicio de Image Builder está disponible sin costo adicional. Sin embargo, Google Cloud se aplican cargos por los recursos estándar aprovisionados durante las fases de compilación, prueba y lanzamiento:
- Compute Engine: Se aplican cargos por las VMs de trabajador, las VMs de prueba y los discos persistentes conectados.
- Cloud Build: Se aplican cargos por los minutos de tiempo de ejecución del contenedor del orquestador.
- Cloud Storage: Se aplican cargos por los archivos del espacio de trabajo, las exportaciones de registros y los recursos intermedios.
- Artifact Registry: Se aplican cargos por almacenar archivos tar de imágenes exportadas, si está configurado.
- Imágenes personalizadas: Se aplican cargos por almacenar imágenes intermedias de prueba, depuración y producción.
Para obtener información detallada sobre los costos de los recursos, consulta la documentación de precios de Compute Engine, Cloud Build, Cloud Storage, Artifact Registry, y el almacenamiento de imágenes personalizadas.
Requisitos de cuota
Asegúrate de que tu proyecto tenga suficientes cuotas de CPU de Compute Engine y de Persistent Disk en la zona en la que ejecutas tus compilaciones. Si no hay suficiente cuota en la zona de destino, la canalización fallará durante el aprovisionamiento de la VM.
¿Qué sigue?
- Prepara tu entorno para Image Builder.
- Crea y administra canalizaciones con la consola.
- Crea y administra canalizaciones de forma programática.