Skip to content

Google Cloud CLI (gcloud)

Comprehensive Google Cloud CLI commands and workflows for managing Google Cloud Platform services, including Compute Engine, Cloud Storage, and Kubernetes Engine.

Installation & Authentication

CommandDescription
gcloud auth loginLogin to Google Cloud
gcloud auth application-default loginLogin for application default credentials
gcloud auth listList authenticated accounts
gcloud auth revokeRevoke authentication
gcloud config listShow current configuration
gcloud config set project PROJECT_IDSet default project
gcloud config set compute/region us-central1Set default region
gcloud config set compute/zone us-central1-aSet default zone

Project Management

CommandDescription
gcloud projects listList all projects
gcloud projects create PROJECT_IDCreate new project
gcloud projects delete PROJECT_IDDelete project
gcloud projects describe PROJECT_IDShow project details
gcloud config get-value projectGet current project
gcloud config configurations listList configurations
gcloud config configurations create CONFIG_NAMECreate configuration
gcloud config configurations activate CONFIG_NAMEActivate configuration

Compute Engine

Instance Management

CommandDescription
gcloud compute instances listList all instances
gcloud compute instances create INSTANCE_NAME --machine-type=e2-medium --image-family=ubuntu-2004-lts --image-project=ubuntu-os-cloudCreate instance
gcloud compute instances start INSTANCE_NAMEStart instance
gcloud compute instances stop INSTANCE_NAMEStop instance
gcloud compute instances delete INSTANCE_NAMEDelete instance
gcloud compute instances reset INSTANCE_NAMEReset instance
gcloud compute instances describe INSTANCE_NAMEShow instance details

SSH and Remote Access

CommandDescription
gcloud compute ssh INSTANCE_NAMESSH into instance
gcloud compute ssh INSTANCE_NAME --zone=ZONESSH with specific zone
gcloud compute scp LOCAL_FILE INSTANCE_NAME:REMOTE_PATHCopy file to instance
gcloud compute scp INSTANCE_NAME:REMOTE_PATH LOCAL_FILECopy file from instance
gcloud compute os-login ssh-keys add --key-file=KEY_FILEAdd SSH key

Machine Types and Images

CommandDescription
gcloud compute machine-types listList machine types
gcloud compute machine-types list --filter="zone:us-central1-a"List machine types by zone
gcloud compute images listList all images
gcloud compute images list --filter="family:ubuntu-2004-lts"List images by family
gcloud compute images create IMAGE_NAME --source-disk=DISK_NAMECreate custom image

Disks

CommandDescription
gcloud compute disks listList all disks
gcloud compute disks create DISK_NAME --size=100GBCreate disk
gcloud compute disks delete DISK_NAMEDelete disk
gcloud compute disks snapshot DISK_NAME --snapshot-names=SNAPSHOT_NAMECreate snapshot
gcloud compute instances attach-disk INSTANCE_NAME --disk=DISK_NAMEAttach disk
gcloud compute instances detach-disk INSTANCE_NAME --disk=DISK_NAMEDetach disk

Cloud Storage

Bucket Operations

CommandDescription
gsutil lsList all buckets
gsutil mb gs://BUCKET_NAMECreate bucket
gsutil rb gs://BUCKET_NAMERemove empty bucket
gsutil rm -r gs://BUCKET_NAMERemove bucket and contents
gsutil ls gs://BUCKET_NAMEList objects in bucket
gsutil ls -l gs://BUCKET_NAMEList objects with details

File Operations

CommandDescription
gsutil cp FILE gs://BUCKET_NAME/Upload file
gsutil cp gs://BUCKET_NAME/FILE .Download file
gsutil cp -r DIRECTORY gs://BUCKET_NAME/Upload directory
gsutil rsync -r LOCAL_DIR gs://BUCKET_NAME/Sync directory
gsutil rm gs://BUCKET_NAME/FILEDelete file
gsutil rm -r gs://BUCKET_NAME/DIRECTORYDelete directory

Bucket Configuration

CommandDescription
gsutil versioning set on gs://BUCKET_NAMEEnable versioning
gsutil versioning get gs://BUCKET_NAMECheck versioning status
gsutil lifecycle set LIFECYCLE_CONFIG gs://BUCKET_NAMESet lifecycle policy
gsutil cors set CORS_CONFIG gs://BUCKET_NAMESet CORS policy
gsutil iam get gs://BUCKET_NAMEGet bucket IAM policy
gsutil iam set POLICY_FILE gs://BUCKET_NAMESet bucket IAM policy

Google Kubernetes Engine (GKE)

Cluster Management

CommandDescription
gcloud container clusters listList all clusters
gcloud container clusters create CLUSTER_NAME --num-nodes=3Create cluster
gcloud container clusters delete CLUSTER_NAMEDelete cluster
gcloud container clusters get-credentials CLUSTER_NAMEGet cluster credentials
gcloud container clusters resize CLUSTER_NAME --num-nodes=5Resize cluster
gcloud container clusters upgrade CLUSTER_NAMEUpgrade cluster

Node Pools

CommandDescription
gcloud container node-pools list --cluster=CLUSTER_NAMEList node pools
gcloud container node-pools create POOL_NAME --cluster=CLUSTER_NAME --num-nodes=2Create node pool
gcloud container node-pools delete POOL_NAME --cluster=CLUSTER_NAMEDelete node pool
gcloud container node-pools describe POOL_NAME --cluster=CLUSTER_NAMEDescribe node pool

Cluster Operations

CommandDescription
kubectl get nodesList cluster nodes
kubectl get pods --all-namespacesList all pods
kubectl apply -f MANIFEST_FILEApply Kubernetes manifest
kubectl delete -f MANIFEST_FILEDelete resources from manifest

Cloud Functions

Function Management

CommandDescription
gcloud functions listList all functions
gcloud functions deploy FUNCTION_NAME --runtime=python39 --trigger-httpDeploy HTTP function
gcloud functions deploy FUNCTION_NAME --runtime=nodejs14 --trigger-topic=TOPIC_NAMEDeploy Pub/Sub function
gcloud functions delete FUNCTION_NAMEDelete function
gcloud functions describe FUNCTION_NAMEShow function details
gcloud functions call FUNCTION_NAMECall function

Function Logs

CommandDescription
gcloud functions logs read FUNCTION_NAMERead function logs
gcloud functions logs read FUNCTION_NAME --limit=50Read recent logs
gcloud functions logs read FUNCTION_NAME --start-time=2023-01-01Read logs from date

Cloud SQL

Instance Management

CommandDescription
gcloud sql instances listList SQL instances
gcloud sql instances create INSTANCE_NAME --database-version=MYSQL_8_0 --tier=db-f1-microCreate MySQL instance
gcloud sql instances create INSTANCE_NAME --database-version=POSTGRES_13 --tier=db-f1-microCreate PostgreSQL instance
gcloud sql instances delete INSTANCE_NAMEDelete instance
gcloud sql instances describe INSTANCE_NAMEShow instance details
gcloud sql instances restart INSTANCE_NAMERestart instance

Database Operations

CommandDescription
gcloud sql databases list --instance=INSTANCE_NAMEList databases
gcloud sql databases create DATABASE_NAME --instance=INSTANCE_NAMECreate database
gcloud sql databases delete DATABASE_NAME --instance=INSTANCE_NAMEDelete database

User Management

CommandDescription
gcloud sql users list --instance=INSTANCE_NAMEList users
gcloud sql users create USERNAME --instance=INSTANCE_NAME --password=PASSWORDCreate user
gcloud sql users delete USERNAME --instance=INSTANCE_NAMEDelete user
gcloud sql users set-password USERNAME --instance=INSTANCE_NAME --password=NEW_PASSWORDChange password

Backups

CommandDescription
gcloud sql backups list --instance=INSTANCE_NAMEList backups
gcloud sql backups create --instance=INSTANCE_NAMECreate backup
gcloud sql backups restore BACKUP_ID --restore-instance=INSTANCE_NAMERestore backup

App Engine

Application Management

CommandDescription
gcloud app deployDeploy application
gcloud app deploy --version=VERSION_NAMEDeploy specific version
gcloud app browseOpen application in browser
gcloud app describeShow application details
gcloud app versions listList application versions
gcloud app versions delete VERSION_NAMEDelete version

Traffic Management

CommandDescription
gcloud app services listList services
gcloud app versions migrate VERSION_NAMEMigrate traffic to version
gcloud app services set-traffic --splits=VERSION1=0.5,VERSION2=0.5Split traffic

Logs

CommandDescription
gcloud app logs tailStream application logs
gcloud app logs readRead application logs
gcloud app logs read --service=SERVICE_NAMERead service logs

Cloud Pub/Sub

Topics

CommandDescription
gcloud pubsub topics listList topics
gcloud pubsub topics create TOPIC_NAMECreate topic
gcloud pubsub topics delete TOPIC_NAMEDelete topic
gcloud pubsub topics describe TOPIC_NAMEShow topic details
gcloud pubsub topics publish TOPIC_NAME --message="Hello World"Publish message

Subscriptions

CommandDescription
gcloud pubsub subscriptions listList subscriptions
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAMECreate subscription
gcloud pubsub subscriptions delete SUBSCRIPTION_NAMEDelete subscription
gcloud pubsub subscriptions pull SUBSCRIPTION_NAMEPull messages
gcloud pubsub subscriptions pull SUBSCRIPTION_NAME --auto-ackPull and acknowledge

IAM (Identity and Access Management)

Service Accounts

CommandDescription
gcloud iam service-accounts listList service accounts
gcloud iam service-accounts create SERVICE_ACCOUNT_NAMECreate service account
gcloud iam service-accounts delete SERVICE_ACCOUNT_EMAILDelete service account
gcloud iam service-accounts keys create KEY_FILE --iam-account=SERVICE_ACCOUNT_EMAILCreate service account key
gcloud iam service-accounts keys list --iam-account=SERVICE_ACCOUNT_EMAILList service account keys

IAM Policies

CommandDescription
gcloud projects get-iam-policy PROJECT_IDGet project IAM policy
gcloud projects add-iam-policy-binding PROJECT_ID --member=user:EMAIL --role=ROLEAdd IAM binding
gcloud projects remove-iam-policy-binding PROJECT_ID --member=user:EMAIL --role=ROLERemove IAM binding
gcloud iam roles listList predefined roles
gcloud iam roles create ROLE_NAME --project=PROJECT_ID --file=ROLE_DEFINITIONCreate custom role

Cloud Build

Build Management

CommandDescription
gcloud builds listList builds
gcloud builds submit --tag gcr.io/PROJECT_ID/IMAGE_NAMEBuild and push image
gcloud builds submit --config=cloudbuild.yamlBuild with config file
gcloud builds describe BUILD_IDShow build details
gcloud builds cancel BUILD_IDCancel build

Triggers

CommandDescription
gcloud builds triggers listList build triggers
gcloud builds triggers create github --repo-name=REPO_NAME --repo-owner=OWNER --branch-pattern=mainCreate GitHub trigger
gcloud builds triggers delete TRIGGER_IDDelete trigger
gcloud builds triggers run TRIGGER_NAMERun trigger manually

Networking

VPC Networks

CommandDescription
gcloud compute networks listList VPC networks
gcloud compute networks create NETWORK_NAME --subnet-mode=customCreate custom VPC
gcloud compute networks delete NETWORK_NAMEDelete VPC network
gcloud compute networks subnets listList subnets
gcloud compute networks subnets create SUBNET_NAME --network=NETWORK_NAME --range=10.0.0.0/24Create subnet

Firewall Rules

CommandDescription
gcloud compute firewall-rules listList firewall rules
gcloud compute firewall-rules create RULE_NAME --allow tcp:80,tcp:443 --source-ranges 0.0.0.0/0Create firewall rule
gcloud compute firewall-rules delete RULE_NAMEDelete firewall rule
gcloud compute firewall-rules describe RULE_NAMEShow firewall rule details

Load Balancers

CommandDescription
gcloud compute url-maps listList URL maps
gcloud compute backend-services listList backend services
gcloud compute target-http-proxies listList HTTP proxies
gcloud compute forwarding-rules listList forwarding rules

Monitoring and Logging

Cloud Logging

CommandDescription
gcloud logging logs listList available logs
gcloud logging read "resource.type=gce_instance"Read logs by resource
gcloud logging read "timestamp>=2023-01-01T00:00:00Z"Read logs by time
gcloud logging sinks listList log sinks
gcloud logging sinks create SINK_NAME DESTINATION --log-filter=FILTERCreate log sink

Cloud Monitoring

CommandDescription
gcloud alpha monitoring policies listList alerting policies
gcloud alpha monitoring channels listList notification channels

Best Practices

Security

  1. Service Accounts: Use service accounts for applications
  2. IAM Principles: Follow principle of least privilege
  3. VPC Security: Use private subnets and firewall rules
  4. Secret Management: Use Secret Manager for sensitive data

Cost Optimization

  1. Resource Labels: Label resources for cost tracking
  2. Preemptible Instances: Use preemptible VMs for batch workloads
  3. Committed Use: Use committed use discounts for predictable workloads
  4. Auto-scaling: Configure auto-scaling for dynamic workloads

Automation

  1. Infrastructure as Code: Use Deployment Manager or Terraform
  2. CI/CD: Use Cloud Build for continuous integration
  3. Monitoring: Set up comprehensive monitoring and alerting
  4. Backup Strategy: Implement automated backup strategies