Image Builder 概览

Image Builder 是一种声明式操作系统 (OS) 映像自定义工具,可在您的 Google Cloud 项目中使用 Cloud Build 运行。它会自动执行操作系统映像的构建、自定义和验证过程,以帮助您在将操作系统映像发布到生产工作负载之前验证它们是否能正确启动并遵循您的配置要求。

主要优势

通过自动执行内部自定义操作系统映像的生命周期 Google Cloud,Image Builder 可帮助您管理基础架构 并验证配置要求。 Image Builder 为您的自定义操作系统映像构建提供以下功能:

  • 自动创建操作系统映像:使用声明式 YAML 配方和自动 Cloud Build 工作流创建和维护自定义操作系统映像,而无需自定义脚本或 外部工具。由于 Image Builder 在 Cloud Build 中运行 ,因此您可以使用 Cloud Build 触发器在代码库事件(例如 Git 推送或标记)发生时自动 启动映像构建,设置 定期计划(例如每周构建安全补丁),或 响应 Pub/Sub 消息 (以通过编程方式从外部工作流或 Webhook 触发构建)。
  • 在发布之前验证映像:在发布映像之前对其进行验证。 Google 提供的检查会验证中间映像是否启动、是否支持安全启动(如果适用)、是否加载所需的网络驱动程序以及是否运行正常的客机代理。
  • 跟踪脚本执行:跟踪在构建流水线期间运行的代码。Image Builder 会自动记录构建日志中内嵌自定义脚本的加密 SHA-256 哈希,以维护审核跟踪。
  • 仅为使用的资源付费:Image Builder 服务 免费提供。只有在流水线运行时,您才会产生底层计算、存储和构建资源的费用。

Image Builder 的工作原理

Image Builder 使用 Cloud Build 编排器容器在您的 Google Cloud 项目中运行。映像构建流程包括以下阶段:

  1. 验证和准备:编排器容器检查 YAML 语法,并验证是否已启用所有必需的 API,以及目标 Identity and Access Management (IAM) 安全权限是否处于有效状态。
  2. 工作区和磁盘准备:编排器容器将包含源代码和配置的 Cloud Build 工作区目录 (/workspace) 归档到压缩的 tar 文件 (.tar.gz) 中,并将此 tar 文件上传到 build 配置中指定的 Cloud Storage workdir 存储桶。然后,编排器容器使用静态编译的自定义预配工具文件系统创建临时 Compute Engine 映像,该映像定义了附加到工作器虚拟机的辅助数据磁盘。
  3. 工作器虚拟机执行:编排器容器使用指定的源映像作为启动磁盘启动临时工作器虚拟机实例,并挂接包含自定义预配工具的辅助数据磁盘。
  4. 自定义:启动脚本会装载数据磁盘,并在工作器虚拟机上启动自定义预配器。预配工具会下载工作区归档并应用您声明的自定义项,例如运行 Shell 脚本、复制文件或编译驱动程序。它还会执行安全清理过程,以清理 SSH 密钥、唯一机器 ID 和日志历史记录。然后,它会关停实例。
  5. 验证(测试):编排器容器从自定义的启动磁盘创建临时测试操作系统映像,并预配临时测试虚拟机以运行以下系统定义的验证检查:
    • Intel IDPF 驱动程序验证:验证受支持的实例是否加载 Intel Infrastructure Data Path Function (idpf) 网络驱动程序,而不是通用显示或回退驱动程序。
    • 网络和客机代理验证:确认客机代理服务处于有效状态,至少有一个非环回网络接口处于正常运行状态,并且名称符合惯例(eth*en*)。
    • 安全启动验证:确保 UEFI 安全启动处于有效状态,并且系统强制执行客机内核验证。
    • 暂停或恢复验证:使用 Compute Engine API 暂停测试虚拟机,并验证网络连接是否在恢复后恢复,而无需重新启动系统。
  6. 发布:如果所有验证检查都通过,编排器容器会准备最终映像:
    • 如果配置了 Artifact Registry:编排器容器会将自定义的启动磁盘作为 tar 文件导出到 Artifact Registry 通用代码库,并使用 Artifact Registry URI 作为其来源创建最终生产 Compute Engine 映像。
    • 如果未配置 Artifact Registry:编排器容器会使用自定义的启动磁盘直接在您的项目中创建 Compute Engine 映像。

价格和配额注意事项

Image Builder 服务免费提供。 但是,在 构建、测试和发布阶段预配的标准资源会产生 Google Cloud 费用:

  • Compute Engine:工作器虚拟机、测试虚拟机和附加的 永久性磁盘会产生费用。
  • Cloud Build:编排器容器运行时分钟数会产生费用。
  • Cloud Storage:工作区归档、日志导出和 中间资产会产生费用。
  • Artifact Registry:存储导出的映像 tar 文件(如果已 配置)会产生费用。
  • 自定义映像:存储中间测试、调试和 生产映像会产生费用。

如需详细了解资源费用,请参阅 Compute EngineCloud BuildCloud StorageArtifact Registry自定义映像存储的价格文档。

配额要求

确保您的项目在运行构建的可用区中有足够的 Compute Engine CPU 和 Persistent Disk 配额。目标可用区中的配额不足会导致流水线在虚拟机预配期间失败。

后续步骤