O Image Builder é uma ferramenta declarativa de personalização de imagens do sistema operacional (SO) que é executada no seu Google Cloud projeto usando o Cloud Build. Ele automatiza o processo de criação, personalização e validação de imagens do SO para ajudar a verificar se elas são inicializadas corretamente e seguem os requisitos de configuração antes de serem publicadas para cargas de trabalho de produção.
Principais benefícios
Ao automatizar o ciclo de vida das imagens personalizadas do SO dentro do Google Cloud, o Image Builder ajuda a gerenciar a infraestrutura e validar os requisitos de configuração. O Image Builder oferece os seguintes recursos para builds de imagens personalizadas do SO:
- Automatizar a criação de imagens do SO: crie e mantenha imagens personalizadas do SO usando receitas YAML declarativas e fluxos de trabalho automatizados do Cloud Build, sem a necessidade de scripts personalizados ou ferramentas externas. Como o Image Builder é executado no Cloud Build, é possível usar acionadores do Cloud Build para iniciar automaticamente builds de imagens em eventos de repositório (como um push ou tag do Git), configurar programações recorrentes (por exemplo, builds semanais para patches de segurança) ou responder a mensagens do Pub/Sub (para acionar builds programaticamente de fluxos de trabalho externos ou webhooks).
- Validar imagens antes da publicação: verifique as imagens antes de publicá-las. As verificações fornecidas pelo Google validam se as imagens intermediárias são inicializadas, oferecem suporte à inicialização segura (quando aplicável), carregam os drivers de rede necessários e executam um agente convidado íntegro.
- Rastrear a execução de scripts: acompanhe o código que é executado durante o pipeline de build. O Image Builder registra automaticamente o hash SHA-256 criptográfico dos scripts de personalização inline nos registros de build para manter uma trilha de auditoria.
- Pagar apenas pelos recursos usados: o serviço do Image Builder está disponível sem custo adicional. Você só incorre em custos para os recursos de computação, armazenamento e build consumidos enquanto os pipelines são executados.
Como o Image Builder funciona
O Image Builder é executado no seu Google Cloud projeto usando um contêiner orquestrador do Cloud Build. O processo de build de imagens consiste nas seguintes fases:
- Validação e preparação: o contêiner orquestrador verifica a sintaxe YAML e se todas as APIs necessárias estão ativadas e se as permissões de segurança do Identity and Access Management (IAM) de destino estão ativas.
- Preparação do espaço de trabalho e do disco: o contêiner orquestrador arquiva o diretório do espaço de trabalho do Cloud Build (
/workspace) que contém o código-fonte e as configurações em um arquivo tar compactado (.tar.gz) e faz o upload desse arquivo tar para o bucket workdir do Cloud Storage especificado na configuração do build. Em seguida, o contêiner orquestrador usa um sistema de arquivos de provisionamento de customização compilado estaticamente para criar uma imagem temporária do Compute Engine, que define o disco de dados secundário anexado à VM de worker. - Execução da VM de worker: o contêiner orquestrador inicia uma instância de VM de worker efêmera usando a imagem de origem especificada como o disco de inicialização e anexa o disco de dados secundário que contém o provisionador de personalização.
As propriedades de hardware, a rede VPC, a sub-rede e a atribuição de IP externo da VM de worker (um IP público efêmero ou nenhum IP externo) são determinadas pelas configurações
infrastructureConfigno arquivoimagebuilder.yaml. - Personalização: um script de inicialização monta o disco de dados e inicia o provisionador de personalização na VM de worker. O provisionador faz o download do arquivo do espaço de trabalho e aplica as personalizações declaradas, como executar scripts de shell, copiar arquivos ou compilar drivers. Ele também executa uma passagem de higienização de segurança para limpar chaves SSH, IDs de máquinas exclusivas e históricos de registros. Em seguida, ele encerra a instância.
- Validação (teste): o contêiner orquestrador cria uma imagem temporária do SO de teste no disco de inicialização personalizado e provisiona VMs de teste temporárias usando a configuração de rede e infraestrutura no arquivo
imagebuilder.yamlpara executar as seguintes verificações de validação definidas pelo sistema:- Verificação do driver IDPF da Intel: verifica se as instâncias com suporte carregam o driver de rede da função de caminho de dados de infraestrutura da Intel (
idpf) em vez de drivers de exibição genéricos ou de fallback. - Verificação de rede e agente convidado: confirma se o serviço de agente convidado está ativo, se pelo menos uma interface de rede não loopback está ativa e se os nomes estão em conformidade com as convenções (
eth*ouen*). - Verificação de inicialização segura: garante que a inicialização segura UEFI esteja ativa e que o sistema aplique a verificação do kernel convidado.
- Verificação de suspensão ou retomada: suspende a VM de teste usando a API Compute Engine e verifica se a conectividade de rede é recuperada após a retomada sem uma reinicialização do sistema.
- Verificação do driver IDPF da Intel: verifica se as instâncias com suporte carregam o driver de rede da função de caminho de dados de infraestrutura da Intel (
- Versão: se todas as verificações de validação forem aprovadas, o contêiner orquestrador vai preparar a imagem final:
- Se o Artifact Registry estiver configurado: o contêiner orquestrador exporta o disco de inicialização personalizado como um arquivo tar para um repositório genérico do Artifact Registry e cria a imagem de produção final do Compute Engine usando o URI do Artifact Registry como origem.
- Se o Artifact Registry não estiver configurado: o contêiner orquestrador cria a imagem do Compute Engine diretamente no seu projeto usando o disco de inicialização personalizado.
Considerações sobre preços e cotas
O serviço do Image Builder está disponível sem custo extra. No entanto, Google Cloud há cobranças para recursos padrão provisionados durante as fases de build, teste e lançamento:
- Compute Engine: cobranças para VMs de trabalho, VMs de teste e discos permanentes anexados.
- Cloud Build: cobranças para minutos de execução do contêiner orquestrador.
- Cloud Storage: cobranças para arquivos de espaço de trabalho, exportações de registros e recursos intermediários.
- Artifact Registry: cobranças para armazenar arquivos tar de imagem exportados, se configurados.
- Imagens personalizadas: cobranças para armazenar imagens de teste, depuração e produção intermediárias.
Para informações detalhadas sobre os custos de recursos, consulte a documentação de preços do Compute Engine, Cloud Build, Cloud Storage, Artifact Registry e do armazenamento de imagens personalizadas.
Requisitos de cota
Verifique se o projeto tem cotas suficientes de CPU do Compute Engine e Persistent Disk na zona em que você executa os builds. A cota insuficiente na zona de destino faz com que o pipeline falhe durante o provisionamento da VM.
A seguir
- Prepare seu ambiente para o Image Builder.
- Crie e gerencie pipelines usando o console.
- Crie e gerencie pipelines programaticamente.