GCP 常见问题
GCP 常见问题完全指南
本指南旨在解答您在使用 Google Cloud Platform (GCP) 时最常遇到的问题,无论您是刚刚接触云服务的新手,还是希望快速查漏补缺的开发者。内容将覆盖基础概念、账号管理、计算与存储服务、网络以及运维监控等核心领域,帮助您高效、低成本地驾驭 GCP。
基础概念篇
什么是项目,它和账户、组织有什么关系?
在 GCP 中,项目是组织资源的基本单元。所有的计算实例、存储桶、API 启用都在项目级别进行。一个账户(Google 账号)可以被邀请加入多个项目,并被赋予不同角色。如果你使用 Cloud Identity 或 Google Workspace,项目可以集中到组织节点下统一管理,实现分层权限和结算。简单理解:组织 > 文件夹(可选) > 项目 > 资源。
区域与可用区如何选择?
区域是独立的地理位置,例如 asia-east1(台湾)或 us-central1(爱荷华)。每个区域包含多个可用区(如 asia-east1-a),它们是彼此隔离的物理数据中心,通过低延迟网络连接。选择原则:
- 延迟敏感:选择离用户最近的区域。
- 成本优先:不同区域价格差异显著,可查看官方价格计算器。
- 高可用设计:对于生产环境,跨可用区部署(如托管实例组跨多区)可抵御单点故障。
服务级别协议 (SLA) 保证什么?
SLA 是 GCP 对服务可用性的正式承诺。例如,Compute Engine 单实例通常没有 SLA,但跨多个可用区部署的外部 TCP/UDP 负载均衡可以获得 99.99% 的 SLA。若月度运行时间低于承诺值,你将有资格获得相应的服务积分补偿。务必阅读各项服务的具体 SLA 条款。
账户、计费与成本管理
免费试用结束后会被扣款吗?
GCP 提供 90 天免费试用,附赠 $300 赠金。试用期间不会自动收费,除非你手动升级到付费账号。关键点:试用结束后,你的资源会被暂停,你有 30 天宽限期将它们迁移或手动升级。如果一直不升级,资源最终会被清理。升级后,才会按实际使用量从绑定的信用卡扣款。
什么是持续使用折扣?需要我做什么吗?
持续使用折扣是 GCP 自动给予的优惠:在单个结算月份内,当 Compute Engine 实例运行时间占当月总时长的比例越高,你的账单上会自动出现阶梯式折扣(例如,运行满一整月可获得高达 30% 的折扣)。你完全不需要进行任何操作,这是 GCP 为了鼓励稳定负载而设计的自动机制。
如何防止账单失控?
- 预算与提醒:在 Billing 中创建预算,设置比例阈值(如 50%、90%),通过邮件或 Pub/Sub 通知。
- 配额限制:在 API 和服务中为项目设置硬性配额,防止资源过度创建。
- 账单导出:将详细账单数据导出到 BigQuery,利用数据洞察报表分析成本构成。
- 标签 (Label):为资源绑定标签,在成本报告中按部门、环境或项目进行细分。
承诺使用折扣 (CUD) 应该怎么选?
对于可预测的基线负载,购买 CUD 可大幅降低成本。
- 基于资源的 CUD:针对特定区域的具体机器类型(如
n2-standard-8)承诺 1 年或 3 年,折扣最高约 57%。购买后,同区域同类型的任何实例自动受益,无需绑定特定实例。 - 灵活的 CUD:更灵活的选择,只需承诺在一个区域每小时消费一定金额(如 $10/小时),可用于任何机器类型,甚至可跨项目共享,折扣约 28%。
核心计算与存储
Compute Engine 虚拟机开机后能更改机器类型吗?
可以,GCP 支持在停止实例后更改 vCPU 和内存配置,无需重建实例。对于某些平衡持久磁盘,甚至可以在不停止实例的情况下增加容量。但要注意,修改 GPU 或某些特定平台配置时,需确保库存可用并能重新启动。
持久磁盘的类型怎么选?
- 标准 (pd-standard):机械硬盘,成本最低,适合顺序读写的大容量工作负载。
- SSD (pd-ssd):高性能固态盘,适合随机 IO 密集型数据库。
- 均衡 (pd-balanced):性价比选择,兼顾 SSD 性能和较低成本,是多数场景的推荐首选。
- 极端 (pd-extreme):提供超高 IOPS 和吞吐量,适用于 SAP HANA 等严苛场景。
Cloud Storage 的存储类别有什么区别?
- Standard(标准):适合频繁访问的“热”数据,无最短存储期限,存取费用最低。
- Nearline(近线):适用于平均每月访问少于一次的备份,最短存储 30 天。
- Coldline(冷线):适用于季度级访问的归档,最短存储 90 天。
- Archive(归档):适用于年度级访问的长期备份,最短存储 365 天。 存储类别可以在不移动数据的情况下,通过对象生命周期管理策略自动转换。
如何在虚拟机之间迁移磁盘?
通过创建快照或磁盘映像来迁移。你可以对源磁盘创建标准快照,然后在目标区域(甚至跨区域)根据快照创建新的磁盘并挂载到另一台虚拟机。对于跨项目迁移,使用磁盘映像共享更为简便。
网络与安全
VPC 是全局资源吗?
是的,VPC(虚拟私有云)网络是全局性的,可以跨越多个区域。单个 VPC 中的子网可以位于不同区域,内部通信默认通过 Google 的全球骨干网连接,无需复杂的跨地域对等连接。这极大地简化了跨区域部署的网络设计。
防火墙规则是如何生效的?
VPC 防火墙规则是网络级别的安全控制,默认允许同网络内所有出站流量和少量入站协议,并默认拒绝所有外部入站连接。每一条规则都定义了方向、处理动作(允许/拒绝)、优先级、来源 IP 范围和目标标签/服务账号。高优先级规则会覆盖低优先级规则。建议使用服务账号作为目标过滤器,而非 IP 地址,使规则与动态实例解耦。
负载均衡应该怎么选?
| 流量类型 | 全球/区域 | 推荐负载均衡器 |
|---|---|---|
| HTTP/HTTPS | 全球 | 外部 HTTP(S) 负载均衡 |
| TCP(无 SSL 卸载) | 全球或区域 | 外部 TCP/UDP 网络负载均衡 |
| 内部微服务间 HTTP | 区域 | 内部 HTTP(S) 负载均衡 |
| 内部 TCP/UDP 流量 | 区域 | 内部 TCP/UDP 负载均衡 |
运维与监控
Cloud Monitoring 能监控 AWS 或自有服务器吗?
可以。通过安装 Ops Agent(推荐)或旧版 Monitoring Agent,可以将来自其他云平台、私有数据中心甚至你笔记本电脑的指标和日志收集到 Cloud Monitoring 中。配合 Cloud Logging 的联合代理,你能在一个仪表盘上查看混合云环境的所有指标。
Cloud Functions 和 Cloud Run 怎么选?
- Cloud Functions:轻量级函数即服务,适合事件驱动场景(如响应文件上传、Pub/Sub 消息),只负责单个逻辑片段,由平台管理 HTTP 框架。
- Cloud Run:托管容器平台,你可以部署任意语言或框架的 Web 服务(需要监听端口),自动扩缩容。它比 Functions 更灵活,适合构建微服务 API 或长时间运行的后台任务,并支持自定义二进制文件。
如何排查 gcloud 命令行权限错误?
最常见的错误是“permission denied”。按步骤排查:
- 确认当前账号:
gcloud auth list - 检查当前项目:
gcloud config get project - 验证该账号在项目中的角色:
gcloud projects get-iam-policy [PROJECT_ID] --format=json - 检查所需的特定权限(如
compute.instances.get)是否包含在当前账号的角色绑定中。若缺失,联系项目管理员授予合适的预定义角色,如roles/compute.viewer。
故障排查速查
无法 SSH 连接到 Linux 虚拟机
- 控制台检测:在 Compute Engine 页面中,点击实例旁的 “SSH” 下拉,使用“打开在浏览器窗口中”自带的诊断工具。
- 防火墙:确认是否有优先级足够高的允许
tcp:22进入的防火墙规则,且目标包含该实例。 - OS Login:如果启用了 OS Login,确认账号拥有
roles/compute.osLogin角色,且 SSH 密钥由平台管理。 - 磁盘空间:根磁盘已满也会导致 SSH 失败,可通过串行控制台登录清理。
实例一直在转圈启动
这通常意味着所选区域 / 可用区的资源库存不足。尝试执行:
- 稍等片刻重试,因为 GCP 会动态补货。
- 在同一区域内更换可用区重新创建。
- 修改为其他类似机器系列(如
n2换为n2d)。 - 使用 预留 (Reservation) 功能锁定资源,确保未来启动的确定性。
GCP 的世界广阔且深入,以上仅覆盖了高频问题。建议您将这份指南存为书签,并在遇到具体服务文档时,直接查阅官方文档获取最精确的参数与当前配额。持续实践与测试是掌握 GCP 的最佳路径。