Image Builder è uno strumento di personalizzazione delle immagini del sistema operativo (OS) dichiarativo che viene eseguito all'interno del Google Cloud progetto utilizzando Cloud Build. Automatizza il processo di creazione, personalizzazione e convalida delle immagini del sistema operativo per verificare che si avvino correttamente e rispettino i requisiti di configurazione prima di pubblicarli per i workload di produzione.
Vantaggi principali
Automatizzando il ciclo di vita delle immagini del sistema operativo personalizzate all'interno di Google Cloud, Image Builder ti aiuta a gestire l'infrastruttura e a convalidare i requisiti di configurazione. Image Builder fornisce le seguenti funzionalità per le build di immagini del sistema operativo personalizzate:
- Automatizza la creazione di immagini del sistema operativo: crea e gestisci immagini del sistema operativo personalizzate utilizzando ricette YAML dichiarative e workflow Cloud Build automatizzati, senza la necessità di script personalizzati o strumenti esterni. Poiché Image Builder viene eseguito all'interno di Cloud Build, puoi utilizzare i trigger Cloud Build per avviare automaticamente le build di immagini sugli eventi del repository (ad esempio un push o un tag Git), configurare pianificazioni ricorrenti (ad esempio, build settimanali per le patch di sicurezza) o rispondere ai messaggi Pub/Sub (per attivare le build a livello di programmazione da workflow o webhook esterni).
- Convalida le immagini prima della pubblicazione: verifica le immagini prima di pubblicarle. I controlli forniti da Google convalidano che le immagini intermedie si avvino, supportino l'avvio protetto (se applicabile), carichino i driver di rete richiesti ed eseguano un agente guest integro.
- Traccia l'esecuzione dello script: monitora il codice che viene eseguito durante la pipeline di build. Image Builder registra automaticamente l'hash SHA-256 crittografico degli script di personalizzazione in linea all'interno dei log di build per mantenere un audit trail.
- Paga solo per le risorse utilizzate: il servizio Image Builder è disponibile senza costi aggiuntivi. I costi vengono addebitati solo per le risorse di computing, archiviazione e build sottostanti utilizzate durante l'esecuzione delle pipeline.
Come funziona Image Builder
Image Builder viene eseguito all'interno del Google Cloud progetto utilizzando un container orchestratore Cloud Build. Il processo di compilazione dell'immagine è composto dalle seguenti fasi:
- Convalida e preparazione: il container orchestratore controlla la sintassi YAML e verifica che tutte le API richieste siano abilitate e che le autorizzazioni di sicurezza di Identity and Access Management (IAM) di destinazione siano attive.
- Preparazione del workspace e del disco: il container orchestratore archivia la directory del workspace Cloud Build (
/workspace) contenente il codice sorgente e le configurazioni in un file tar compresso (.tar.gz) e carica questo file tar nel bucket workdir di Cloud Storage specificato nella configurazione di compilazione. Il container orchestratore utilizza quindi un file system di provisioning di personalizzazione compilato staticamente per creare un'immagine Compute Engine temporanea, che definisce il disco dati secondario collegato alla VM worker. - Esecuzione della VM worker: il container orchestratore avvia un'istanza VM worker effimera utilizzando l'immagine di origine specificata come disco di avvio e collega il disco dati secondario contenente il provisioner di personalizzazione.
Le proprietà hardware, la rete VPC, la subnet e l'assegnazione dell'IP esterno della VM worker, ovvero un IP pubblico effimero o nessun IP esterno, sono determinate dalle impostazioni
infrastructureConfignel fileimagebuilder.yaml. - Personalizzazione: uno script di avvio monta il disco dati e avvia il provisioner di personalizzazione sulla VM worker. Il provisioner scarica l'archivio del workspace e applica le personalizzazioni dichiarate, ad esempio l'esecuzione di script shell, la copia di file o la compilazione di driver. Esegue anche un passaggio di sanificazione della sicurezza per pulire le chiavi SSH, gli ID macchina univoci e le cronologie dei log. Quindi arresta l'istanza.
- Convalida (test): il container orchestratore crea un'immagine del sistema operativo di test temporanea dal disco di avvio personalizzato e esegue il provisioning di VM di test temporanee utilizzando la configurazione di rete e infrastruttura nel file
imagebuilder.yamlper eseguire i seguenti controlli di convalida definiti dal sistema:- Verifica del driver IDPF Intel: verifica che le istanze supportate
carichino il driver di rete IDPF (
idpf) (Infrastructure Data Path Function) di Intel anziché i driver di visualizzazione generici o di fallback. - Verifica Networking e dell'agente guest: conferma che il servizio dell'agente guest è attivo, che è attiva almeno un'interfaccia di rete non loopback e che i nomi sono conformi alle convenzioni (
eth*oen*). - Verifica dell'avvio protetto: garantisce che l'avvio protetto UEFI sia attivo e che il sistema applichi la verifica del kernel guest.
- Verifica della sospensione o della ripresa: sospende la VM di test utilizzando l'API Compute Engine e verifica che la connettività di rete venga ripristinata dopo la ripresa senza riavviare il sistema.
- Verifica del driver IDPF Intel: verifica che le istanze supportate
carichino il driver di rete IDPF (
- Release: se tutti i controlli di convalida vengono superati, il container orchestratore prepara l'immagine finale:
- Se Artifact Registry è configurato: il container orchestratore esporta il disco di avvio personalizzato come file tar in un repository generico di Artifact Registry e crea l'immagine di produzione finale di Compute Engine utilizzando l'URI di Artifact Registry come origine.
- Se Artifact Registry non è configurato: il container orchestratore crea l'immagine Compute Engine direttamente nel progetto utilizzando il disco di avvio personalizzato.
Considerazioni sui prezzi e sulle quote
Il servizio Image Builder è disponibile senza costi aggiuntivi. Tuttavia, Google Cloud vengono addebitati i costi per le risorse standard di cui è stato eseguito il provisioning durante le fasi di build, test e release:
- Compute Engine: addebiti per le VM worker, le VM di test e i dischi permanenti collegati.
- Cloud Build: addebiti per i minuti di runtime del container orchestratore.
- Cloud Storage: addebiti per gli archivi del workspace, le esportazioni dei log e gli asset intermedi.
- Artifact Registry: addebiti per l'archiviazione dei file tar delle immagini esportate, se configurato.
- Immagini personalizzate: addebiti per l'archiviazione delle immagini intermedie di test, debug e produzione.
Per informazioni dettagliate sui costi delle risorse, consulta la documentazione sui prezzi di Compute Engine, Cloud Build, Cloud Storage, Artifact Registry e archiviazione di immagini personalizzate.
Requisiti di quota
Assicurati che il tuo progetto disponga di quote sufficienti di CPU Compute Engine e Persistent Disk nella zona in cui esegui le build. Una quota insufficiente nella zona di destinazione causa il fallimento della pipeline durante il provisioning della VM.
Passaggi successivi
- Prepara l'ambiente per Image Builder.
- Crea e gestisci le pipeline utilizzando la console.
- Crea e gestisci le pipeline a livello di programmazione.