用途
GCP Compute Engine 技能用于在 Google Cloud Platform 上部署、管理和扩展 Compute Engine 虚拟机。它适合以下场景:在 GCP 上部署 Web 服务器、应用后端或批处理工作负载;运行需要完整操作系统级控制的工作负载(不同于 Cloud Run 或 App Engine);创建托管实例组,在负载均衡器后实现自动修复和自动扩缩;为机器学习训练或渲染管线配置带 GPU 的虚拟机;使用抢占式或 Spot 虚拟机对非关键工作负载进行成本优化。
主要能力
该技能涵盖 Compute Engine 的核心操作:
- 机器类型参考:列出 E2、N2、C2 等机器族及其 vCPU、内存和典型用途,并支持查询可用机器类型和创建自定义机器类型。
- 创建实例:支持指定机器类型、区域、镜像族与镜像项目、启动磁盘大小与类型、网络标签、标签、OS Login 元数据、Shielded VM 选项、启动脚本、服务账号与作用域、附加数据磁盘等。
- 启动脚本:提供示例脚本,在首次启动和每次重启时运行,安装并启动 nginx,并通过元数据服务写入启动状态。
- 实例模板与托管实例组:创建实例模板,创建区域级托管实例组并配置健康检查,设置自动扩缩(最小/最大副本数、目标 CPU 利用率、冷却期),以及执行滚动更新。
- 抢占式与 Spot 虚拟机:创建 Spot 虚拟机并设置终止动作(STOP 或 DELETE),以及为批处理 MIG 创建 Spot 实例模板。
- 快照与镜像:创建磁盘快照、配置定时快照策略并附加到磁盘、从实例创建自定义镜像。
- Terraform 配置:提供 google_compute_instance、google_compute_instance_template、google_compute_region_instance_group_manager、google_compute_region_autoscaler 等资源的示例配置。
- 常见操作:SSH 登录、列出实例及状态、停止/启动/调整机器类型、查看串口输出以调试启动脚本。
- 故障排查:针对实例卡在 STAGING、启动脚本未运行、无法 SSH、频繁被抢占、磁盘空间不足、MIG 未修复等常见症状给出原因与修复方向。
使用方式
使用前需满足以下前提:安装并认证 Google Cloud SDK(gcloud);拥有已启用 Compute Engine API 的 GCP 项目;具备 roles/compute.admin 或用于实例管理的限定角色。
基本流程包括:
-
认证与配置项目: gcloud auth list gcloud config set project $PROJECT_ID gcloud services enable compute.googleapis.com
-
创建实例,例如: gcloud compute instances create web-server
--machine-type=e2-medium
--zone=us-central1-a
--image-family=debian-12
--image-project=debian-cloud
--boot-disk-size=20GB
--boot-disk-type=pd-balanced
--tags=http-server,https-server
--labels=env=production,team=backend
--metadata=enable-oslogin=TRUE
--shielded-secure-boot
--shielded-vtpm
--shielded-integrity-monitoring -
创建实例模板与托管实例组,并配置健康检查和自动扩缩。
-
使用 Terraform 进行基础设施即代码管理。
适用场景
- 需要完整操作系统控制的 Web 服务器、应用后端、批处理工作负载。
- 需要自动修复和自动扩缩的托管实例组。
- 需要 GPU 的机器学习训练或渲染管线。
- 使用 Spot 虚拟机进行成本优化的非关键工作负载。
- 通过快照和自定义镜像进行备份与标准化部署。
限制与注意事项
- 基础设施命令可能中断服务:在变更状态前应确认目标主机/范围,并准备备份或快照。
- 该技能为文档型导入,未捆绑上游脚本和模板。
- 示例 nginx 启动脚本未定义 /healthz 路由,在附加所示 MIG 健康检查前需实现并测试该路由。
- 实例镜像/快照可能包含机密信息,且在没有适当静默处理的情况下并非应用一致性备份。
- 共享核心机器类型的 CPU 数值描述的是近似基线配额,而非客户机可见的完整 vCPU 拓扑。
- 公共 IP/防火墙标签仅在存在匹配规则时才暴露服务;应优先使用所需的私有访问。
- 应将启动脚本视为特权代码并固定可信镜像;应检查服务账号 IAM,而不是假设 cloud-platform 作用域就是最小权限。
- 磁盘空间不足时,应审查目标磁盘和快照,使用受支持的磁盘扩容方式,然后按需扩展客户机分区/文件系统;不要假设 Compute 磁盘存在 Cloud SQL 的 storage-auto-increase 标志。
相关技能
gcp-networking:用于 Compute Engine 的 VPC、防火墙规则和负载均衡器。 terraform-gcp:使用基础设施即代码配置 Compute Engine 资源。 gcp-gke:当工作负载更适合容器而非虚拟机时使用。 gcp-cloud-sql:Compute Engine 应用连接到的托管数据库。