Présentation d'Image Builder

Image Builder est un outil déclaratif de personnalisation d'images de système d'exploitation (OS) qui s'exécute dans votre Google Cloud projet à l'aide de Cloud Build. Il automatise le processus de création, de personnalisation et de validation des images d'OS pour vous aider à vérifier qu'elles démarrent correctement et qu'elles respectent vos exigences de configuration avant de les publier pour les charges de travail de production.

Principaux avantages

En automatisant le cycle de vie des images d'OS personnalisées dans Google Cloud, Image Builder vous aide à gérer l'infrastructure et à valider les exigences de configuration. Image Builder fournit les fonctionnalités suivantes pour vos compilations d'images d'OS personnalisées :

  • Automatiser la création d'images d'OS : créez et gérez des images d'OS personnalisées à l'aide de recettes YAML déclaratives et de workflows Cloud Build automatisés, sans avoir besoin de scripts personnalisés ni d'outils externes. Comme Image Builder s'exécute dans Cloud Build, vous pouvez utiliser des déclencheurs Cloud Build pour lancer automatiquement des compilations d'images lors d'événements de dépôt (tels qu'un push ou un tag Git), configurer des programmations récurrentes (par exemple, des compilations hebdomadaires pour les correctifs de sécurité) ou répondre à des messages Pub/Sub (pour déclencher des compilations de manière programmatique à partir de workflows externes ou de webhooks).
  • Valider les images avant de les publier : vérifiez les images avant de les publier. Les vérifications fournies par Google valident le démarrage des images intermédiaires, la compatibilité avec le démarrage sécurisé (le cas échéant), le chargement des pilotes réseau requis et l'exécution d'un agent invité sain.
  • Suivre l'exécution des scripts : suivez le code qui s'exécute pendant votre pipeline de compilation. Image Builder enregistre automatiquement le hachage SHA-256 cryptographique de vos scripts de personnalisation intégrés dans les journaux de compilation afin de conserver une piste d'audit.
  • Ne payer que les ressources utilisées : le service Image Builder est disponible sans frais supplémentaires. Vous n'encourez des coûts que pour les ressources de calcul, de stockage et de compilation sous-jacentes consommées lors de l'exécution de vos pipelines.

Fonctionnement d'Image Builder

Image Builder s'exécute dans votre Google Cloud projet à l'aide d'un conteneur d'orchestration Cloud Build. Le processus de compilation d'images comprend les phases suivantes :

  1. Validation et préparation : le conteneur d'orchestration vérifie la syntaxe YAML et s'assure que toutes les API requises sont activées et que les autorisations de sécurité Identity and Access Management (IAM) cibles sont actives.
  2. Préparation de l'espace de travail et du disque : le conteneur d'orchestration archive le répertoire de l'espace de travail Cloud Build (/workspace) contenant votre code source et vos configurations dans un fichier tar compressé (.tar.gz), puis importe ce fichier tar dans le bucket workdir Cloud Storage spécifié dans votre configuration de compilation. Le conteneur d'orchestration utilise ensuite un système de fichiers d'approvisionneur de personnalisation compilé de manière statique pour créer une image Compute Engine temporaire, qui définit le disque de données secondaire associé à votre VM de nœud de calcul.
  3. Exécution de la VM de nœud de calcul : le conteneur d'orchestration lance une instance de VM de nœud de calcul éphémère en utilisant l'image source spécifiée comme disque de démarrage et en associant le disque de données secondaire contenant le provisionneur de personnalisation. Les propriétés matérielles, le réseau VPC, le sous-réseau et l'attribution d'adresse IP externe de la VM de nœud de calcul (adresse IP publique éphémère ou aucune adresse IP externe) sont déterminés par les paramètres infrastructureConfig de votre fichier imagebuilder.yaml.
  4. Personnalisation : un script de démarrage installe le disque de données et démarre le provisionneur de personnalisation sur la VM de nœud de calcul. Le provisionneur télécharge l'archive de l'espace de travail et applique les personnalisations que vous avez déclarées, telles que l'exécution de scripts shell, la copie de fichiers ou la compilation de pilotes. Il effectue également une passe d'assainissement de sécurité pour nettoyer les clés SSH, les ID de machine uniques et les historiques des journaux. Il arrête ensuite l'instance.
  5. Validation (tests) : le conteneur d'orchestration crée une image d'OS de test temporaire à partir du disque de démarrage personnalisé et provisionne des VM de test temporaires à l'aide de la configuration réseau et d'infrastructure de votre fichier imagebuilder.yaml pour exécuter les vérifications de validation définies par le système suivantes :
    • Vérification du pilote Intel IDPF : vérifie que les instances compatibles chargent le pilote réseau Intel Infrastructure Data Path Function (idpf) plutôt que des pilotes d'affichage génériques ou de secours.
    • Vérification de la mise en réseau et de l'agent invité : confirme que le service d'agent invité est actif, qu'au moins une interface réseau non-boucle est active et que les noms sont conformes aux conventions (eth* ou en*).
    • Vérification du démarrage sécurisé : s'assure que le démarrage sécurisé UEFI est actif et que le système applique la vérification du noyau invité.
    • Vérification de la suspension ou de la reprise : suspend la VM de test à l'aide de l'API Compute Engine et vérifie que la connectivité réseau est rétablie après la reprise sans redémarrage du système.
  6. Publication : si toutes les vérifications de validation sont réussies, le conteneur d'orchestration prépare l'image finale :
    • Si Artifact Registry est configuré : le conteneur d'orchestration exporte le disque de démarrage personnalisé en tant que fichier tar vers un dépôt générique Artifact Registry et crée l'image Compute Engine de production finale à l'aide de l'URI Artifact Registry comme source.
    • Si Artifact Registry n'est pas configuré : le conteneur d'orchestration crée l'image Compute Engine directement dans votre projet à l'aide du disque de démarrage personnalisé.

Remarques sur les tarifs et les quotas

Le service Image Builder est disponible sans frais supplémentaires. Toutefois, Google Cloud des frais s'appliquent aux ressources standards provisionnées lors des phases de compilation, de test et de publication :

  • Compute Engine : frais pour les VM de nœud de calcul, les VM de test et les disques persistants associés.
  • Cloud Build : frais pour les minutes d'exécution du conteneur d'orchestration.
  • Cloud Storage : frais pour les archives de l'espace de travail, les exportations de journaux et les actifs intermédiaires.
  • Artifact Registry : frais pour le stockage des fichiers tar d'image exportés, si configuré.
  • Images personnalisées : frais pour le stockage des images de test, de débogage et de production intermédiaires.

Pour obtenir des informations détaillées sur les coûts des ressources, consultez la documentation sur les tarifs de Compute Engine, Cloud Build, Cloud Storage, Artifact Registry, et le stockage d'images personnalisées.

Exigences en matière de quota

Assurez-vous que votre projet dispose de quotas Compute Engine pour les processeurs et les disques persistants suffisants dans la zone où vous exécutez vos compilations. Un quota insuffisant dans la zone cible entraîne l'échec du pipeline lors du provisionnement de la VM.

Étape suivante