Google ACE: Compute Engine 和虚拟机操作 — 学习指南
属于 Google Associate Cloud Engineer — 学习指南. 使用经过验证的答案练习: Google 考试中心, 或参加限时模拟考试: ExamRoll.io.
概述
Compute Engine 提供灵活、高性能的虚拟机和编排原语,以运行通用型和专用型工作负载。在 Compute Engine 上实现卓越运营意味着选择正确的机器系列和磁盘,使用模板和实例组来塑造实例生命周期,建立稳健的自动修复和自动扩缩容机制,加固访问路径,并通过可重复的恢复流程为故障模式做好准备。本节将解释相关的设计选择、权衡和运维模式,以最大限度地减少运维负担,并最大化可靠性和成本效益。
机器类型、规模调整和实例生命周期
机器系列
- 通用型:E2 (成本优化型)、N2 (均衡型)、N2D (基于 AMD)、Tau T2D/T2A (为横向扩展提供高性价比),适用于大多数工作负载。
- 计算优化型:C3 适用于 CPU 密集型任务;当您需要高单核性能时选择。
- 内存优化型:M 系列适用于内存数据库和分析。
- GPU 和加速器:当需要 CUDA 或 ML 加速时,可挂载到支持的系列上;确保驱动程序初始化包含在启动流程中。
自定义机器类型
- 使用自定义 vCPU 和内存来合理调整工作负载规模并减少浪费,尤其适用于非对称需求 (例如,内存需求大但 CPU 需求适中)。
- 对于 CPU 密集型服务,倾向于使用更高的 vCPU 数量;对于内存密集型服务,增加 RAM 并确保垃圾回收器和缓存已调优。
- 注意与核心数绑定的许可模式;自定义类型有助于避免不必要的许可核心。
工作负载规模调整
- 从开发或先前环境中测量的资源配置文件开始:P95 的 CPU 利用率、内存使用峰值、磁盘吞吐量/IOPS、网络带宽。
- 对于突发流量,规划预留空间或使用自动扩缩容;对于稳定状态的流量,在峰值时将利用率目标设定在 60-70%,以平衡成本和弹性。
- 评估使用 Spot VMs (可抢占) 来运行批处理和容错作业;它们可能随时被终止,因此设计时应包含检查点和重试机制。
实例生命周期资源
- VM 实例:原子计算资源。使用标签和一致的命名来驱动自动化。
- 实例模板:不可变的蓝图,用于捕获机器类型、磁盘、服务账号、元数据和启动脚本;它们是托管实例组的基础,可确保可重复的部署。
- 托管实例组 (MIGs):提供声明式规模、自动扩缩容、自动修复、滚动更新、区域级 (多可用区) 部署和单实例配置。对于无状态和有状态模式,优先选择 MIGs (有状态 MIGs 会保留选定的磁盘/IP)。
- 非托管实例组:用于为旧有实例集进行负载均衡的简单集合;缺少自动扩缩容/自动修复功能。仅在需要注册独立管理的虚拟机时使用。
可用性、自动扩缩容和维护
自动扩缩容
- 信号:CPU 利用率、HTTP 负载均衡器每实例每秒请求数、Cloud Monitoring 指标和队列深度。选择一个与饱和度紧密相关的信号;对于同构的 CPU 密集型工作负载,CPU 是一个很好的基准。
- 冷却期和稳定期:进行配置以防止抖动。如果您的应用需要几分钟来预热,请增加 MIG 的初始延迟,并设置适当的自动扩缩容冷却期。
- “恰好一个”模式:要强制只有一个 VM,请在 MIG 上设置自动扩缩容的 min=1 和 max=1。这可以在启用自动修复的同时保持健康状态。
自动修复和健康检查
- 健康检查:使用 HTTP(S) 检查来判断应用的存活性;TCP 仅验证套接字是否可接受连接。实现一个能够检验关键依赖项的健康检查端点。
- 阈值和间隔:调整检查间隔和阈值,以便在不产生误报的情况下快速检测故障。
- 初始延迟:将 MIG 自动修复的初始延迟设置得足够长,以完成启动和预热,从而避免过早替换正在上线的健康实例。
- 故障模式:配置错误的健康检查端点和过短的初始延迟会导致实例抖动和过度预配。
区域级 MIG 和放置
- 区域级 MIG 将实例分布在一个区域内的多个可用区,从而提供可用区级别的容错能力。根据容量规划选择每个可用区的目标副本数。
- 当需要保留磁盘或 IP 时,使用单实例配置和有状态策略;请理解,由于状态协调,替换 VM 的速度可能会更慢。
维护、实时迁移和预留
- 实时迁移:大多数 VM 的默认设置;在主机维护期间,实例会被移动而无需重启。对于无法容忍迁移的工作负载 (例如,对延迟敏感的高频交易 HFT),请将维护策略设置为终止,并依赖自动修复。
- 通过实时迁移,主机维护窗口是透明的,但仍会生成事件;请进行监控和测试。
- 预留:创建可用区级预留,以保证关键发布或严格 SLOs 的容量。根据您的治理策略,应用“特定”或“任意”预留使用方式。预留是容量保证;可与承诺使用折扣结合使用以进行成本规划。
存储、映像和性能
永久性磁盘
- 类型:Standard (HDD) 用于以低成本实现高序列吞吐量;Balanced (pd-balanced) 用于通用目的;SSD (pd-ssd) 用于高 IOPS/低延迟;Extreme (pd-extreme) 用于在高性能层级预配 IOPS 和吞吐量。区域级永久性磁盘 (Regional PD) 提供跨可用区的同步复制,以提高可用性。
- 对于 Standard、Balanced 和 SSD 磁盘,性能随磁盘大小扩展;预先设定大小以满足峰值 IOPS/吞吐量需求,或使用 Extreme 磁盘明确地预配性能。
- 多挂接只读模式允许在多个虚拟机之间共享数据集;请相应地协调访问和缓存层。
本地 SSD
- 临时性存储,直接挂接到主机,具有极高的 IOPS 和极低的延迟。数据在停止、终止或迁移时会丢失。可用于暂存空间、缓存和复制数据层。请确保应用级别的复制或检查点机制。
快照和映像
- 快照是永久性磁盘的增量时间点备份;使用 Resource Manager 或 gcloud 进行调度以满足 RPO。跨区域存储支持灾难恢复 (DR)。
- 映像捕获启动磁盘及配置。维护一个经过加固、补丁管理完善的映像管道。在您的黄金映像中验证访客代理(用于日志记录/监控)。
- 恢复模式:为实现快速恢复,保持较小的基础映像,并通过启动脚本或 cloud-init 配置其余部分;这可以减少配置漂移并加速更新。
磁盘选择:权衡与故障模式
- 预配不足的磁盘会限制应用吞吐量;过度预配则会浪费成本。测量实际的 I/O 特性,并选择能满足峰值需求且留有余量的最小磁盘。
- 对于数据库,考虑使用区域级永久性磁盘 (regional PD) 和 pd-ssd/pd-extreme;验证 fsync 行为和队列深度。除非进行了复制,否则避免使用本地 SSD 存储持久状态。
访问、安全、网络和专用工作负载
Linux 和 Windows 管理
- Linux SSH:首选 OS Login 来集中管理 SSH 授权并将访问权限归因于身份。将 compute.osLogin 或 compute.osAdminLogin 角色授予群组,而非单个用户。
- Windows RDP:在控制台或通过 gcloud 设置 Windows 凭据;确保防火墙规则仅允许来自可信 IP 的 TCP 3389 端口访问。使用 IAP TCP 转发以避免公网暴露。
- 串行控制台:作为紧急访问路径启用;使用 gcloud compute connect-to-serial-port 进行启动调试。通过 IAM 限制并审计访问。
SSH、OS Login 和密钥管理
- 通过元数据 enable-oslogin=TRUE 在项目或实例级别启用 OS Login。用户将其 SSH 公钥添加到其 Google 帐户;IAM 控制基于角色的访问。
- 对于 sudo/root 权限,使用 compute.osAdminLogin 角色。如果使用 OS Login,请禁用项目范围的 SSH 密钥以防止配置漂移。
元数据、启动脚本和 cloud-init
- 元数据服务器提供实例/项目数据和服务帐号令牌。仅使用范围明确的令牌;切勿硬编码密钥。
- 启动脚本和 cloud-init:用于引导代理、获取配置和注册服务。确保脚本具有幂等性,并将日志写入串行控制台以便于诊断。
- 每个实例的元数据可以覆盖模板设置;请谨慎使用以避免配置偏差。
服务帐号和范围
- 为每个工作负载分配一个专用的服务帐号,并为其授予所需资源上的最小权限 IAM 角色(例如,特定存储桶上的 storage.objectCreator 角色)。
- 仅当 IAM 严格控制访问时才首选广泛的 Cloud API 范围;否则应将范围限制为所需的最小 API 集合。
网络和地址
- 网络接口 (NIC) 可以只有内部 IP 或同时拥有外部 IP。首选使用私有虚拟机,并通过 Cloud NAT 或 IAP 进行出站和管理访问。
- 为许可证服务器等稳定端点预留静态内部 IP;避免依赖临时地址。
- 外部 HTTP(S) 负载均衡在边缘终止 TLS;对后端 MIGs 使用代管式证书和健康检查。保持后端就绪状态与健康检查和 MIG 的初始延迟设置保持一致。
专用工作负载和隔离
- Shielded VMs:通过安全启动、vTPM 和完整性监控来抵御 rootkit;除非存在不兼容的驱动程序,否则应默认启用。
- Confidential VMs:通过 AMD SEV 进行内存加密,以保护使用中的数据;通常性能开销极小,但需对延迟敏感的应用进行验证。
- Sole-tenant nodes:专用的物理主机,用于满足合规性要求、避免“吵闹邻居”问题以及实现许可证亲和性。需要为容量碎片化和更高的成本做好规划。
故障排查与恢复操作
常见诊断
- 连接性:验证防火墙规则、服务账号权限和路由。使用 Network Intelligence Center 连接性测试。
- 启动问题:检查串行控制台日志,截取屏幕截图,并检查启动脚本输出。如果未签名的驱动程序阻止启动,请临时禁用安全启动,然后进行修复。
- 访问锁定:对于 OS Login 的 SSH 问题,请确认 IAM 角色以及用户账号上存在密钥;使用串行控制台添加用户作为紧急访问方式。
- 磁盘损坏:分离启动盘,将其挂载到救援虚拟机上,修复文件系统,轮换凭据,并在修复后捕获镜像。
MIG 和负载均衡器行为
- 过度预配:如果实例需要较长的预热时间,请增加 MIG 的初始延迟和自动扩缩器的冷却时间;否则,当应用仍在初始化时,您可能会因为 4xx/5xx 错误而触发横向扩容。
- 自动修复循环:确认健康检查端点的语义和依赖项的就绪状态;错开启动依赖项或添加重试机制。
恢复模式
- 从模板或镜像重新创建实例;不可变模式可降低 MTTR。
- 从最新的成功快照恢复数据;根据业务需求验证 RPO/RTO。
- 对于区域性故障,使用区域级 MIG 和跨区域快照复制,故障切换到不同的可用区或区域。
运维保障措施
- 为关键容量预留资源;使用基于监控的警报来监控预留资源和配额的消耗情况。
- 审计和日志记录:为关键服务启用管理员活动日志和数据访问日志。通过 OS Login 和服务账号来追溯访问来源。
简短示例
- 预留静态内部 IP:
undefined
- 在项目级别启用 OS Login:
undefined
- 创建一个 HTTP 健康检查并将其附加到具有自动修复功能的 MIG:
undefined
undefined
实践问题场景
Northwind Analytics 在 Compute Engine 上运行一个对延迟敏感的 API。事件报告显示,在部署期间频繁出现过度预配,管理员偶尔会遇到 SSH 访问混淆的问题,并且有一个需要许可证的遥测服务器必须保持在 10.0.3.21 可访问。目标是稳定扩缩容行为、强化访问控制,并确保许可证端点的稳定性。
方法
- 创建一个实例模板,其中包含规模适中的自定义机器类型和启动引导程序
- 原理:模板强制实施不可变性。一个自定义的 6 vCPU/20 GB RAM 规格与测得的 P95 CPU 和内存使用情况相匹配,同时避免了会增加许可成本的多余核心。启动脚本仅在健康检查通过后才将 API 注册到负载均衡器,从而减少预热时间的影响。
- 在外部 HTTP(S) 负载均衡器后面部署一个区域级托管实例组
- 原理:区域级 MIG 将实例分布在多个可用区,以实现可用区级别的故障容错。HTTP(S) 负载均衡器在边缘终止 TLS 并执行基于每个实例的健康检查,确保流量只流向已就绪的后端。
- 配置基于 CPU 的自动扩缩容,并设置冷却时间和符合实际的自动修复初始延迟
- 原理:对于这个 API,CPU 使用率与其饱和度密切相关。90 秒的冷却时间可以防止因瞬时流量峰值而引起的扩缩容抖动。200 秒的初始延迟与容器预热和 JIT 相符,可防止自动扩缩器将冷启动误解为容量不足。
- 调整健康检查并添加一个应用级别的 /healthz 端点
- 原理:一个能够验证依赖项(缓存、数据库连接性)的 HTTP 健康检查可以检测到灰色故障。使用 10 秒的检查间隔和 3 次不健康阈值,可以在检测速度和误报风险之间取得平衡。
- 启用 OS Login 并向一个 IAM 组授予管理员访问权限
- 原理:OS Login 集中了 SSH 授权和溯源。管理员将他们的 SSH 公钥添加到自己的 Google 账号中;向待命组授予 compute.osAdminLogin 角色可以在保留审计跟踪的同时提供 sudo 权限。这消除了每个虚拟机上密钥不一致的问题。
- 预留许可证服务器的静态内部 IP,并将其附加到一个小型的专用虚拟机
- 原理:预留 10.0.3.21 地址可确保该地址始终可用,并防止被意外重用。将其分配给许可证虚拟机的网卡,这样依赖它的应用程序就无需更改配置。将防火墙规则的作用域限定为仅允许的源子网。
- 为 API 模板分配一个具有最小权限 IAM 的专用服务账号
- 原理:最小权限原则减小了安全事件的爆炸半径。该服务账号仅被授予所需的角色(例如,对特定 Secret 和 Pub/Sub 主题的读取权限)。使用模板可确保所有实例都继承正确的身份。
- 使用 Shielded VM 强化实例,并强制执行串行控制台紧急访问策略
- 原理:安全启动和完整性监控可减轻内核/引导加载程序的篡改风险。使用 IAM 限制对串行控制台的访问,并记录访问日志以供审计;保留它作为 SSH 失败时的恢复手段。
- 为有状态磁盘实施快照计划并测试恢复
- 原理:虽然 API 是无状态的,但为许可证服务器和任何配置磁盘建立快照计划,以满足 RPO 要求。定期的恢复测试可以验证工具和运行手册的有效性。
- 验证和部署
- 原理:使用 MIG 的滚动更新设置进行蓝/绿部署或金丝雀更新可以降低风险。监控仪表板可以确认部署期间实例数量的稳定、管理员访问溯源的改进以及 10.0.3.21 的不间断可达性。
← 资源层次结构、IAM 和计费管理 · 所有领域 · 容器、应用托管和无服务器平台 →
练习这些题目 → · 在 ExamRoll.io 上限时练习 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通过考试 →