+86 189 8218 1436 周一至五 10:00-22:00

Google Cloud Platform (GCP)基础:

TL;DR:用小白能懂的方式梳理 GCP 基础概念、控制台与 gcloud 操作、创建 VM 和 SSH 连接,并给出入门运维建议。

它是什么:先认识 GCP 基础

GCP 是谷歌提供的云计算平台,把服务器、存储、网络、数据库、监控等能力按需放到线上,像租一间线上机房:不用自己买机器,点几下或敲条命令就能借一台,用完关掉。零基础先别背产品名,记住五个词即可。

  • 项目:资源的文件夹,账单也归它。坑:练手单独建一个,别在默认项目里乱删。
  • 区域:机房所在地,如 us-central1;离用户近延迟低,价格却不同。
  • 可用区:区域里独立一栋楼,如 us-central1-a;只开一台不算容灾。
  • 计费:先绑结算账号才能开机;最常踩的是忘了删,开着就一直算钱。
  • 权限:决定谁能看、谁能改;别随手发 Owner,共用账号最易出事。

最常见的入门资源是 VM:就当一台放在谷歌机房的远程 Linux 服务器,用 SSH 登录进去装软件、看日志,和本地终端差不多,只是机器不在眼前。

用命令是因为能复制、能重来。先在控制台左上角选好项目、按提示绑一次结算账号,再开右上角 Cloud Shell(自带 gcloud,免装环境),整段粘贴:

gcloud config get-value project
gcloud services enable compute.googleapis.com
gcloud compute instances create gcp-basic-vm --zone=us-central1-a --machine-type=e2-micro --image-family=debian-12 --image-project=debian-cloud
gcloud compute ssh gcp-basic-vm --zone=us-central1-a

第一行确认项目;第二行先开 Compute Engine 开关,新项目默认没开,跳过会报 API 未启用;第三行才建机;第四行自动配好密钥连进去,问 passphrase 直接回车。选 us-central1-a 的 e2-micro 是因为有免费额度,换 asia-east1 前先看价。若第一行输出 (unset),回去选项目再粘;还有个坑:关掉浏览器不等于关机。

gcloud compute instances delete gcp-basic-vm --zone=us-central1-a --quiet

练完执行上面这条,看到 Deleted 才真停了计费。之后加存储、数据库、监控,都只是往同一个项目里继续放东西。

解决什么问题:少买机器,多做验证

学 Google Cloud Platform (GCP)基础:先把它想成“云上插座”。不用先采购物理服务器,网站原型、测试环境、跑一次脚本任务、临时实验,都能几分钟开一台小虚拟机,验证完删除释放。打开控制台右上角 Cloud Shell,先在左上角选好项目,再复制命令。启用 API 是让项目具备开机器、收日志、看指标的能力;设置默认区域是少写参数、少填错。

gcloud config list
gcloud services enable compute.googleapis.com logging.googleapis.com monitoring.googleapis.com
gcloud config set compute/region asia-east1
gcloud config set compute/zone asia-east1-b
gcloud compute instances create gcp-basic-demo --machine-type=e2-micro --image-family=debian-12 --image-project=debian-cloud
gcloud compute instances list --filter="name=gcp-basic-demo"

为什么这么做:先用 e2-micro 这种小规格验证“能不能跑”,不要一上来按峰值买机器。业务流量变大时,把负载均衡放在前面分发请求,后面用托管实例组配自动扩缩;CPU 高了加实例,流量回落再缩回去,少付闲置成本。注意,自动扩缩不是让单台机器变胖,而是增减多台机器。

集中管理也很关键:项目、账单、日志、监控和权限都在同一个项目里看。排查时不用 ssh 到每台机器翻零散记录;在控制台搜索 Cloud Logging、Monitoring、IAM、结算,或用下面命令看最近日志和权限。

gcloud logging read "resource.type=gce_instance" --limit=10 --format="table(timestamp,textPayload)"
gcloud projects get-iam-policy $(gcloud config get-value project)
  • 小白坑:没选项目、没绑定结算账号,命令会报项目或结算不可用;只关机不删,系统盘仍会计费;区域和机型可能受配额限制;日志刚建好可能为空,等几分钟再看;权限别随手给 Owner。
  • 收尾:实验结束立刻删除资源,防火墙不要把 22 端口对全网开放。
gcloud compute instances delete gcp-basic-demo --zone=asia-east1-b --quiet 2>/dev/null || true

怎么上手:第一次创建 VM

第一次打开控制台,千万别急着点「创建虚拟机」。我们得先搭好「账本」:先创建一个新项目,它像个独立文件夹,把所有资源装在一起;接着绑定计费账号(新用户有免费额度,但依然要绑卡)。然后去「API 和服务」里启用 Compute Engine API,不开启的话,后面连创建按钮都点不动。

小白最容易踩的坑就是「忘记关机」,一觉醒来收到天价账单。所以务必先去「结算」里的「预算和提醒」,设一个预算告警(比如 50 元)。花钱快超标时系统会发邮件,相当于给钱包加了个保险丝。

准备就绪,进入「Compute Engine」→「虚拟机实例」点击创建。这几个选项要选对:

  • 区域:选离你近的(如 asia-east1 台湾),延迟低;别频繁换,不同区域价格不一样。
  • 机器规格:练手选 E2 系列的 e2-micro 就够了,便宜甚至能白嫖免费额度。
  • 镜像和磁盘:新手无脑选 Ubuntu,资料最多;默认 10GB 平衡磁盘足够,别一上来加几百 G,那都是钱。
  • 防火墙:⚠️ 练手只开放 SSH 的 22 端口即可。千万别图省事勾「允许所有流量」,机器分分钟被全网扫描器爆破。

点「创建」,等几十秒绿灯亮起,你的第一台云电脑就跑起来了。

最直接的方式是点实例旁边的「SSH」按钮,用浏览器窗口连进去,不用配任何密钥,对零基础最友好;等熟了再学用本机 SSH 密钥连接。面对黑乎乎的终端别慌,复制下面几条敲一敲:

# 查看进程(按 q 退出)
top
# 看看硬盘还剩多少空间
df -h
# 翻系统日志,排查报错全靠它
sudo journalctl -xe
# 更新软件包并升级(Ubuntu 适用)
sudo apt update && sudo apt upgrade -y

为什么要更新? 刚开的镜像常带着旧补丁,先升级能堵上安全漏洞。

每次点网页太慢。熟悉界面后,建议用控制台右上角的 Cloud Shell(或装好 gcloud),用命令管机器才是正经路子:

# 列出当前项目下所有 VM
gcloud compute instances list
# 不用时立刻关机,省钱!
gcloud compute instances stop my-first-vm --zone=asia-east1-b
# 重新开机
gcloud compute instances start my-first-vm --zone=asia-east1-b
# 把开机日志下载到本地慢慢看
gcloud compute instances get-serial-port-output my-first-vm --zone=asia-east1-b > boot.log

记得把 my-first-vm 和 asia-east1-b 换成你自己起的名字和区域,漏了 --zone 是最常见的报错原因。最后把这些天天敲的命令存成一个 .sh 脚本,以后一键启停,既不会漏掉关机,也不用反复查文档,就算真正入门啦。

与替代方案对比:什么时候选 GCP

结论先说:选 GCP 不是它“更高级”,而是你不想管机器。自建 Linux 要采购、上架、换硬盘;GCP 省去这些,点几下就有 VM。代价是开机即按量计费,且能连上不只看公网 IP,还受 VPC 防火墙、路由、端口规则影响。常见坑:忘删实例,或没放行 80 端口以为主机坏了。

本地虚拟机(VirtualBox 等)像自家练习房:断网也能练命令、快照随便回滚,最适合离线练习;但没固定公网地址,同事访问、跨地域部署、多人协作都麻烦。GCP 自带 VPC、公网 IP、IAM、日志,更适合公网访问、跨地域部署、团队协作。坑:云上磁盘、IP、日志留着就可能继续计费。

和其他云比,别只盯单价。GCP 在数据、网络、容器、运维工具上有生态,如 BigQuery、Cloud Storage、VPC、GKE/Cloud Run、Cloud Logging/Monitoring;团队熟 AWS/Azure 或老系统在别处,迁移成本更关键。看价格、区域、团队熟悉度、现有系统即可。先在 Cloud Shell(自动带当前项目)执行下面命令:首行启用 API,后两行只查询,不创建 VM,顺便避免首次创建报“服务未开启”。

gcloud services enable compute.googleapis.com
gcloud compute machine-types list --filter='name=e2-micro' --format='table(name,zone,guestCpus,memoryMb)'
gcloud compute regions list --format='table(name,status)'

确认项目已开通结算后,学习阶段只用最小规格和按需资源:e2-micro、小磁盘、默认 VPC,先跑通“创建—访问—删除”。别买长期承诺、包年包月,也别碰 Kubernetes、多区域负载均衡。要公网练习就继续在 Cloud Shell 执行(只跑一次,提示已存在不用慌):

gcloud compute instances create gcp-basic-lab --machine-type=e2-micro --zone=us-central1-a --image-family=debian-12 --image-project=debian-cloud --tags=lab-http
gcloud compute firewall-rules create allow-lab-http --network=default --allow=tcp:80 --target-tags=lab-http --description=allow-lab-http

实例默认给临时公网 IP;–tags=lab-http 配合防火墙只放行 80 端口,是为了少开权限。坑:不放行仍打不开;别为了省事把 22 端口也一起放行,风险很高。练完回同一项目清理,关浏览器不停计费:

gcloud compute instances list --format='table(name,zone,machineType,status)'
gcloud compute instances delete gcp-basic-lab --zone=us-central1-a --quiet
gcloud compute firewall-rules delete allow-lab-http --quiet

首行核对状态,后两行删本次资源;没创建成功会提示找不到,按首行核对即可。

最佳实践:别让入门变成踩坑

刚入门别急着开机器,先把“谁能进、花了多少钱、门开多大、怎么复盘”定好。命令在 Cloud Shell、本机终端或 VM 的 SSH 窗口整段复制,按提示输入即可。

  1. 先管人和钥匙。每人单独账号,先给只读权限,不够再加;到 Google 账号安全页开两步验证。账号被盗或误点时损失可控。常见坑是给 Owner/Editor、共用密钥、把 JSON 传上 GitHub。密钥只放本机安全目录,代码用环境变量引用,别写死内容。

    gcloud auth login
    gcloud init
    read -r -p "请输入项目 ID: " PROJECT_ID
    read -r -p "请输入成员邮箱: " MEMBER
    gcloud projects add-iam-policy-binding "$PROJECT_ID" 
      --member="user:$MEMBER" 
      --role="roles/viewer"
    mkdir -p "$HOME/.gcp-keys"
    chmod 700 "$HOME/.gcp-keys"
    chmod 600 "$HOME/.gcp-keys"/*.json 2>/dev/null || true
    printf 'n# 本地 GCP 密钥n.gcp-keys/ngcp-key*.jsonn' >> .gitignore
    git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git status --short || echo "当前目录不是 Git 仓库,已写入 .gitignore 备用。"
  2. 再管名字和钱。命名统一小写“项目-环境-用途-序号”,如 gcpok-dev-web-001;所有资源都填 env、owner、cost-center,没标签栏也记台账,月底才能找到费用的主人。坑是只给 VM 加标签。到结算里的预算和提醒设金额及 50%、80%、100% 邮件告警,每天看一次费用明细,盯 GPU、磁盘、公网地址和出站流量。

    read -r -p "请输入已有 VM 名称: " VM_NAME
    read -r -p "请输入 VM 所在可用区(如 asia-east1-b): " VM_ZONE
    gcloud compute instances update "$VM_NAME" 
      --zone="$VM_ZONE" 
      --labels=env=dev,owner=beginner,cost-center=gcp-basic
    gcloud compute instances list
    gcloud compute disks list
    gcloud compute addresses list
  3. 再管门、补丁和垃圾。防火墙只留业务端口;看到 0.0.0.0/0 还开 22 或 3389 就收紧。写错自己 IP 会锁在外面,先别关 SSH 窗口。Ubuntu/Debian 在 VM 里定期复制这段;更新前留快照,重要数据另导出,快照不是万能备份。只删 VM 不删磁盘和公网地址,账单还会跑。

    gcloud compute firewall-rules list
    read -r -p "请输入要收紧的防火墙规则名: " RULE_NAME
    read -r -p "请输入你自己的公网 IP/CIDR(如 203.0.113.5/32): " MY_CIDR
    read -r -p "请输入允许规则(如 tcp:22 或 tcp:80,tcp:443): " ALLOW_RULE
    gcloud compute firewall-rules update "$RULE_NAME" 
      --source-ranges="$MY_CIDR" 
      --allow="$ALLOW_RULE"
    sudo apt update && sudo apt upgrade -y
    read -r -p "请输入磁盘名称: " DISK_NAME
    read -r -p "请输入磁盘所在可用区(如 asia-east1-b): " DISK_ZONE
    gcloud compute disks snapshot "$DISK_NAME" 
      --zone="$DISK_ZONE" 
      --snapshot-names="${DISK_NAME}-$(date +%Y%m%d-%H%M%S)"
    gcloud compute instances list
    gcloud compute disks list
    gcloud compute addresses list
    read -r -p "请输入确认要删除的 VM 名称: " DEL_VM
    read -r -p "请输入 VM 所在可用区: " DEL_VM_ZONE
    gcloud compute instances delete "$DEL_VM" --zone="$DEL_VM_ZONE"
    read -r -p "请输入确认要删除的磁盘名称: " DEL_DISK
    read -r -p "请输入磁盘所在可用区: " DEL_DISK_ZONE
    gcloud compute disks delete "$DEL_DISK" --zone="$DEL_DISK_ZONE"
    read -r -p "请输入确认要删除的公网地址名称: " DEL_ADDR
    read -r -p "请输入 regional 或 global: " ADDR_SCOPE
    if [ "$ADDR_SCOPE" = "global" ]; then
      gcloud compute addresses delete "$DEL_ADDR" --global
    else
      read -r -p "请输入公网地址所在区域(如 asia-east1): " DEL_ADDR_REGION
      gcloud compute addresses delete "$DEL_ADDR" --region="$DEL_ADDR_REGION"
    fi
  4. 最后把过程写下来。控制台菜单、参数、每次用的 gcloud 命令、输出和回滚方法都记,半夜报警或换同事才不用猜。坑是只截图、不写项目名、命令复制一半。整理成四步:

    1. 安装:版本、账号、权限、端口。
    2. 部署:镜像、区域、标签、预算。
    3. 扩容:改动、指标、回退。
    4. 故障排查:现象、日志、已试步骤。
    mkdir -p "$HOME/gcp-runbook"
    {
      echo "记录时间:$(date '+%F %T')"
      echo "项目:$(gcloud config get-value project 2>/dev/null)"
      echo "操作目的:"
      echo "控制台路径:"
      echo "执行步骤:"
      echo "结果:"
      echo "回滚方法:"
    } >> "$HOME/gcp-runbook/operations.log"
    history | tail -n 20 >> "$HOME/gcp-runbook/commands.log"

常见问题(FAQ)

GCP 基础入门一定要会 Linux 吗?

不一定要精通,但会看目录、进程、日志和权限,操作 VM 会轻松很多。

GCP 免费吗?

有免费额度和试用金,但 VM、磁盘、公网地址等可能计费,创建前先看价格。

控制台和 gcloud 先学哪个?

先用控制台建立概念,再用 gcloud 做重复操作,最后把常用命令整理成脚本。

怎么避免忘记关机导致扣费?

设置预算告警、自动关机和标签,练习结束后删除测试项目或释放资源。

VM、磁盘和快照有什么关系?

VM 是运行中的服务器,磁盘存系统和数据,快照用于备份或回滚。

不想自己折腾 GCP?我们提供云平台代维护、上云迁移与账单代付服务,一对一技术支持。

查看代维服务 →

发表评论