install
source · Clone the upstream repo
git clone https://github.com/chaterm/terminal-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/chaterm/terminal-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/cloud-cli/gcloud" ~/.claude/skills/chaterm-terminal-skills-gcloud && rm -rf "$T"
manifest:
cloud-cli/gcloud/SKILL.mdsource content
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
故障排查
| 问题 | 排查方法 |
|---|---|
| 认证失败 | |
| 权限不足 | 检查 IAM 角色 |
| 配额超限 | |
| API 未启用 | |
# 调试模式 gcloud compute instances list --verbosity=debug # 查看帮助 gcloud help gcloud compute instances create --help