准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
选择标签页以了解您打算如何使用本页面上的示例:
控制台
当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。
gcloud
-
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
- 设置默认区域和可用区。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
安装 Google Cloud CLI。
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
概览
如果自定义步骤成功完成,编排器会将虚拟机启动磁盘导出为临时测试映像(在 image-builder-test-images 系列中命名为 image-builder-test-image-BUILD_ID)。
编排器会从此映像启动测试虚拟机,并运行一套系统测试。Image Builder 以标准 JUnit XML 格式将测试结果直接输出到 Cloud Build 日志。
排查特定验证测试
查看每项验证测试的常见失败情况和诊断步骤:
Intel IDPF 驱动程序验证
此测试验证受支持的虚拟机实例是否在物理网络接口上加载高性能 Intel Infrastructure Data Path Function (idpf) 驱动程序。
- 失败条件:如果虚拟机恢复为通用网络适配器软件包,或者访客内核缺少有效的
idpf驱动程序模块,则虚拟机验证失败。 - 分辨率:
- 确保您的基础操作系统具有与 IDPF 兼容的内核版本。
- 确认标准网络实用程序未剥离或屏蔽驱动程序。
- 对于自定义内核 build,请验证是否已配置
CONFIG_IDPF。
网络和客户代理验证
此测试会断言实例具有可正常运行的 guest 通信和标准化的网络接口配置。
- 失败条件:在以下任一条件下,测试都会失败:
- 客户代理服务管理器
SubState不显示running状态。 - 没有非环回网络接口处于在线状态。
- 接口名称与预期标准模式(例如
eth*或en*)不匹配。
- 客户代理服务管理器
解决方法:
验证客机代理是否已安装并配置为在启动时启动:
systemctl is-active google-guest-agent确保您的网络配置(例如 netplan 或 ifupdown 模板)不会停用主虚拟接口。
安全启动验证
此测试断言 UEFI 安全启动处于有效状态,并且系统对映像强制执行客机操作系统内核签名验证。
- 失败条件:如果 Compute Engine UEFI 变量报告
SecureBoot不是1或SetupMode不是0,则测试失败。 解决方法:
- 确认您的映像包含有效的签名密钥。
在
imagebuilder.yaml文件中,验证guestOsFeatures是否在目的地代码块下包含UEFI_COMPATIBLE:destinations: - diskImage: guestOsFeatures: - UEFI_COMPATIBLE
暂停或恢复验证
此测试使用 Compute Engine API 暂停测试虚拟机,并断言在虚拟机执行恢复后,连接会恢复,而不会触发完整的 guest 重启。
- 失败条件:如果实例在唤醒时重启、在挂起期间挂起或无法恢复网络 ping,则测试失败。
- 分辨率:
- 验证客机操作系统上的 ACPI 服务和电源政策是否已启用并配置为响应 ACPI 事件。
- 检查客户机系统日志(
/var/log/syslog或/var/log/messages),以查看自定义守护程序是否会阻止系统休眠请求。
跳过验证测试
虽然我们建议您验证生产映像,但您可以在测试期间通过在 imagebuilder.yaml 文件中的 spec.config 块下设置 skipSystemTests: true 来跳过验证测试:
spec:
config:
skipSystemTests: true