# GCP常用命令(gcloud、gsutil)

# gcloud

# Config

初始化配置:

gcloud init

列出配置信息:

gcloud projects list
gcloud auth list
gcloud config list

设置:

gcloud config set project 'projectId'
gcloud config set account 'ACCOUNT'

使用Json授权ServiceAccount:

gcloud auth activate-service-account --key-file xxxx.json

获取GKE Cluster鉴权信息:

gcloud container clusters get-credentials 'cluster-name' --region=xxx

安装Components:

gcloud components install beta

# compute

创建:

$ gcloud compute instances create pkslow-vm \
--project=pkslow \
--zone=us-west1-a \
--machine-type=e2-micro \
--network-interface=network-tier=PREMIUM,subnet=default \
--maintenance-policy=MIGRATE \
--service-account=admin-for-all@pkslow.iam.gserviceaccount.com \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--tags=http-server,https-server \
--create-disk=auto-delete=yes,boot=yes,device-name=instance-1,image=projects/centos-cloud/global/images/centos-8-v20211105,mode=rw,size=20,type=projects/pkslow/zones/us-west1-a/diskTypes/pd-standard \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any

查看机器类型:

gcloud compute machine-types list | grep us-west

删除:

$ gcloud compute instances delete pkslow-vm --zone=us-west1-a

列出:

gcloud compute instances list
gcloud compute instance-groups list
gcloud compute instance-templates list

SSH连接:

gcloud compute ssh example-instance --zone=us-central1-a
gcloud compute ssh example-instance --zone=us-central1-a  --command="ps -ejH"

读取Console日志:

$ gcloud compute --project=pkslow instances get-serial-port-output pkslow-test --zone=us-west1-a --port=1

# Pub/Sub相关

列出Topic和subscriptions:

gcloud pubsub topics list
gcloud pubsub subscriptions list

创建 ID 为 pkslow-topic 的主题:

gcloud pubsub topics create pkslow-topic

创建 ID 为 pkslow-sub 的订阅,并将其附加到 pkslow-topic

gcloud pubsub subscriptions create pkslow-sub --topic=pkslow-topic

# 支持ordering
gcloud pubsub subscriptions create pkslow-sub --topic=pkslow-topic --enable-message-ordering

更新Topics:

gcloud pubsub topics update pkslow-topic --topic-encryption-key=xxx

删除Topic/subscriptions:

gcloud pubsub topics delete pkslow-topic
gcloud pubsub subscriptions delete pkslow-sub

将消息发布到 pkslow-topic

gcloud pubsub topics publish pkslow-topic --message="hello"

接收来自 my-sub 的消息:

gcloud pubsub subscriptions pull pkslow-sub --auto-ack

gcloud 工具会将消息输出到命令行。

# cloudsql

Instance相关:

# 列出
$ gcloud sql instances list

# 创建
$ gcloud sql instances create pkslow-instance --database-version=POSTGRES_9_6 --cpu=2 --memory=8GiB --zone=us-central1-a --root-password=password123

# 删除
gcloud sql instances delete pkslow-instance

DB相关:

# 列出
$ gcloud sql databases list --instance=pkslow-instance

# 创建
$ gcloud sql databases create DATABASE --instance=pkslow-instance

# 删除
$ gcloud sql databases delete DATABASE --instance=pkslow-instance

# logging

# 读gce的日志
 $ gcloud logging read "resource.type=gce_instance" --limit=100
# 根据日志级别过滤
$ gcloud logging read "severity>=ERROR" --format=json
# 根据时间过滤
$ gcloud logging read 'timestamp<="2015-05-31T23:59:59Z" AND
 timestamp>="2015-05-31T00:00:00Z"'
 
 # 查看所有sink
 $ gcloud logging sinks list --limit=10
 # 创建sink
 $ gcloud logging sinks create my-gcs-sink storage.googleapis.com/my-bucket --log-filter='logName="projects/my-project/appengine.googleapis.com%2Fsyslog"'

# 其它

打开某个服务API:

gcloud services enable compute.googleapis.com

创建GKE:

gcloud container clusters create pkslow-k8s \
--zone us-west1-a \
--cluster-version 1.20.10-gke.1600 \
--machine-type n1-standard-1

获取集群认证:

$ gcloud container clusters get-credentials pkslow-k8s --zone=us-west1-a

删除GKE集群:

$ gcloud container clusters delete pkslow-k8s --zone us-west1-a

# gsutil

创建Bucket:

$ gsutil mb -p pkslow -l us-west1 -b on gs://pkslow-terraform
Creating gs://pkslow-terraform/...

列出项目的buckets:

gsutil ls gs://

列出bucket文件:

gsutil ls gs://<bucketName>

复制文件:

gsutil cp localFile gs://xxx
gsutil cp gs://xxx localPath

Reference:

gcloud (opens new window)

上次更新: 2023/8/18 23:39:36