gcloud

SKILL.md

Google Cloud CLI 操作

概述

GCP 资源管理、GKE、Cloud Functions 等技能。

配置与认证

# 初始化配置
gcloud init

# 登录
gcloud auth login
gcloud auth application-default login    # 应用默认凭证

# 服务账号认证
gcloud auth activate-service-account --key-file=key.json

# 查看配置
gcloud config list
gcloud config configurations list

# 设置项目
gcloud config set project my-project

# 设置区域
gcloud config set compute/region us-central1
gcloud config set compute/zone us-central1-a

# 创建配置
gcloud config configurations create my-config
gcloud config configurations activate my-config

Compute Engine

实例管理

# 列出实例
gcloud compute instances list

# 创建实例
gcloud compute instances create my-instance \
    --zone=us-central1-a \
    --machine-type=e2-medium \
    --image-family=ubuntu-2204-lts \
    --image-project=ubuntu-os-cloud \
    --boot-disk-size=50GB

# 启动/停止实例
gcloud compute instances start my-instance --zone=us-central1-a
gcloud compute instances stop my-instance --zone=us-central1-a

# 删除实例
gcloud compute instances delete my-instance --zone=us-central1-a

# SSH 连接
gcloud compute ssh my-instance --zone=us-central1-a

# 执行命令
gcloud compute ssh my-instance --zone=us-central1-a --command="uptime"

磁盘管理

# 列出磁盘
gcloud compute disks list

# 创建磁盘
gcloud compute disks create my-disk \
    --zone=us-central1-a \
    --size=100GB \
    --type=pd-ssd

# 附加磁盘
gcloud compute instances attach-disk my-instance \
    --disk=my-disk \
    --zone=us-central1-a

# 创建快照
gcloud compute disks snapshot my-disk \
    --zone=us-central1-a \
    --snapshot-names=my-snapshot

防火墙

# 列出防火墙规则
gcloud compute firewall-rules list

# 创建规则
gcloud compute firewall-rules create allow-http \
    --allow=tcp:80 \
    --source-ranges=0.0.0.0/0 \
    --target-tags=http-server

# 删除规则
gcloud compute firewall-rules delete allow-http

Cloud Storage

# 列出桶
gsutil ls

# 创建桶
gsutil mb gs://my-bucket
gsutil mb -l us-central1 gs://my-bucket

# 上传文件
gsutil cp file.txt gs://my-bucket/
gsutil cp -r ./dir gs://my-bucket/

# 下载文件
gsutil cp gs://my-bucket/file.txt ./
gsutil cp -r gs://my-bucket/dir ./

# 同步目录
gsutil rsync -r ./local-dir gs://my-bucket/prefix/
gsutil rsync -d -r ./local-dir gs://my-bucket/prefix/    # 删除多余文件

# 删除
gsutil rm gs://my-bucket/file.txt
gsutil rm -r gs://my-bucket/dir/

# 删除桶
gsutil rb gs://my-bucket

# 设置公开访问
gsutil acl ch -u AllUsers:R gs://my-bucket/file.txt

# 生成签名 URL
gsutil signurl -d 1h key.json gs://my-bucket/file.txt

GKE 集群

# 列出集群
gcloud container clusters list

# 创建集群
gcloud container clusters create my-cluster \
    --zone=us-central1-a \
    --num-nodes=3 \
    --machine-type=e2-medium

# 获取凭证
gcloud container clusters get-credentials my-cluster --zone=us-central1-a

# 调整节点数
gcloud container clusters resize my-cluster \
    --zone=us-central1-a \
    --num-nodes=5

# 升级集群
gcloud container clusters upgrade my-cluster \
    --zone=us-central1-a \
    --master

# 删除集群
gcloud container clusters delete my-cluster --zone=us-central1-a

Cloud Functions

# 列出函数
gcloud functions list

# 部署函数
gcloud functions deploy my-function \
    --runtime=nodejs18 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point=handler \
    --source=./

# 调用函数
gcloud functions call my-function --data='{"name":"World"}'

# 查看日志
gcloud functions logs read my-function

# 删除函数
gcloud functions delete my-function

Cloud Run

# 部署服务
gcloud run deploy my-service \
    --image=gcr.io/my-project/my-image \
    --platform=managed \
    --region=us-central1 \
    --allow-unauthenticated

# 列出服务
gcloud run services list

# 查看服务
gcloud run services describe my-service --region=us-central1

# 更新服务
gcloud run services update my-service \
    --region=us-central1 \
    --memory=512Mi \
    --concurrency=80

# 删除服务
gcloud run services delete my-service --region=us-central1

IAM 管理

# 列出服务账号
gcloud iam service-accounts list

# 创建服务账号
gcloud iam service-accounts create my-sa \
    --display-name="My Service Account"

# 创建密钥
gcloud iam service-accounts keys create key.json \
    --iam-account=my-sa@my-project.iam.gserviceaccount.com

# 添加角色
gcloud projects add-iam-policy-binding my-project \
    --member="serviceAccount:my-sa@my-project.iam.gserviceaccount.com" \
    --role="roles/storage.admin"

# 查看 IAM 策略
gcloud projects get-iam-policy my-project

常见场景

场景 1:批量操作实例

# 停止所有实例
gcloud compute instances list --format="value(name,zone)" | \
while read name zone; do
    gcloud compute instances stop "$name" --zone="$zone" --async
done

场景 2:日志查询

# 查看日志
gcloud logging read "resource.type=gce_instance" --limit=100

# 按时间范围
gcloud logging read "timestamp>=\"2024-01-01T00:00:00Z\"" --limit=100

# 按严重级别
gcloud logging read "severity>=ERROR" --limit=100

场景 3:导出计费数据

# 设置计费导出
gcloud beta billing accounts describe BILLING_ACCOUNT_ID

# 查看预算
gcloud billing budgets list --billing-account=BILLING_ACCOUNT_ID

故障排查

问题 排查方法
认证失败 gcloud auth list
权限不足 检查 IAM 角色
配额超限 gcloud compute project-info describe
API 未启用 gcloud services enable compute.googleapis.com
# 调试模式
gcloud compute instances list --verbosity=debug

# 查看帮助
gcloud help
gcloud compute instances create --help
Weekly Installs
11
GitHub Stars
28
First Seen
Jan 24, 2026
Installed on
opencode10
github-copilot9
codex9
gemini-cli9
claude-code8
cursor8