- 1. ภาพรวม Google Cloud CLI
- 2. สิ่งที่ต้องเตรียม
- Part 1: ติดตั้ง Google Cloud CLI
- Part 2: Initialize และ Authentication
- Part 3: จัดการ Project
- Part 4: จัดการ APIs
- Part 5: Workshop Compute Engine
- Part 6: Workshop Cloud Storage
- Part 7: Workshop Artifact Registry
- Part 8: Workshop Cloud Run
- Part 9: Workshop GKE
- Part 10: Output Formats สำหรับ Automation
- Part 11: Configuration หลาย Environment
- Part 12: ตัวอย่าง Shell Script
- Part 13: Google Cloud CLI กับ CI/CD
- Part 14: คำสั่งที่ควรรู้
- Part 15: Cleanup Checklist
- สรุป
- แบบฝึกหัดท้าย Workshop
- เอกสารอ้างอิง
Google Cloud CLI เป็นชุดเครื่องมือ Command Line Interface สำหรับสร้าง จัดการ
ตรวจสอบ และทำ Automation กับทรัพยากรบน Google Cloud โดยคำสั่งหลักที่ใช้งานคือ
gcloud
แทนที่จะจัดการระบบผ่าน Google Cloud Console เพียงอย่างเดียว เราสามารถใช้ CLI เพื่อสร้าง VM, จัดการ Storage, Deploy Container, จัดการ Kubernetes Cluster และนำคำสั่งเหล่านี้ไปต่อยอดเป็น Shell Script หรือ CI/CD Pipeline ได้
เป้าหมาย Workshop: ผู้เรียนสามารถติดตั้งและตั้งค่า
gcloudรวมถึงใช้ CLI จัดการบริการพื้นฐานของ Google Cloud ได้ด้วยตนเอง
#1. ภาพรวม Google Cloud CLI
โครงสร้างคำสั่งพื้นฐานของ gcloud มีลักษณะดังนี้
gcloud <GROUP> <COMMAND> [FLAGS]
ตัวอย่าง
gcloud compute instances list
ประกอบด้วย
gcloudคือโปรแกรม CLIcomputeคือกลุ่มบริการinstancesคือ Resourcelistคือ Action
สามารถเปิด Help ได้ตลอดเวลา
gcloud help
gcloud compute --help
gcloud compute instances --help
gcloud compute instances create --help
#2. สิ่งที่ต้องเตรียม
ก่อนเริ่ม Workshop ควรมี
- Google Account
- Google Cloud Project
- Billing Account สำหรับบริการที่มีค่าใช้จ่าย
- Terminal เช่น macOS Terminal, Linux Shell, Windows PowerShell หรือ Windows Terminal
- Docker สำหรับ Workshop ส่วน Container
- สิทธิ์ IAM ที่เพียงพอสำหรับ Resource ที่ต้องการสร้าง
ข้อควรระวัง: Workshop บางส่วนอาจสร้าง Resource ที่มีค่าใช้จ่าย ควรลบ Resource เมื่อทดลองเสร็จ
#Part 1: ติดตั้ง Google Cloud CLI
#3. ตรวจสอบก่อนติดตั้ง
ลองใช้คำสั่ง
gcloud version
หากติดตั้งแล้ว จะเห็นข้อมูลเวอร์ชันของ Google Cloud CLI
#4. ติดตั้งบน macOS
หากใช้ Homebrew สามารถติดตั้งได้ด้วย
brew install --cask google-cloud-sdk
จากนั้นตรวจสอบ
gcloud version
อีกทางเลือกหนึ่งคือใช้ Installer ตามเอกสาร Google Cloud
#5. ติดตั้งบน Windows
ดาวน์โหลด Google Cloud CLI Installer จากเอกสารอย่างเป็นทางการ แล้วทำตามขั้นตอนของ Wizard
เมื่อติดตั้งเสร็จ เปิด PowerShell แล้วตรวจสอบ
gcloud version
#6. ติดตั้งบน Ubuntu/Debian
Google แนะนำให้เพิ่ม Google Cloud package repository และติดตั้งแพ็กเกจ
google-cloud-cli ตามคู่มือของระบบปฏิบัติการ
หลังติดตั้งตรวจสอบด้วย
gcloud version
เนื่องจากรายละเอียด repository/key อาจมีการปรับเปลี่ยน ควรใช้คำสั่งล่าสุดจากเอกสาร Install Google Cloud CLI เสมอ
#Part 2: Initialize และ Authentication
#7. เริ่มต้นใช้งาน
ใช้คำสั่ง
gcloud init
ระบบจะให้ดำเนินการ เช่น
- Login
- เลือก Google Cloud Project
- ตั้งค่า Configuration
ตรวจสอบ Configuration ปัจจุบัน
gcloud config list
#8. Login
สามารถ Login โดยตรงด้วย
gcloud auth login
Browser จะเปิดขึ้นเพื่อให้ยืนยันบัญชี Google
ตรวจสอบบัญชี
gcloud auth list
ตัวอย่างแนวคิดของกระบวนการ
Developer
|
v
gcloud auth login
|
v
Google Identity
|
v
Access Token / Credentials
|
v
Google Cloud APIs
สำหรับเครื่อง Developer การใช้
gcloud auth loginเหมาะกับ interactive user แต่ไม่ควรนำ user credential รูปแบบนี้ไปใช้แทน workload identity ใน production automation
#Part 3: จัดการ Project
#9. แสดงรายการ Project
gcloud projects list
กำหนด Project ที่ต้องการใช้งาน
gcloud config set project PROJECT_ID
ตัวอย่าง
gcloud config set project my-cloud-lab-123
ตรวจสอบ
gcloud config get-value project
หรือ
gcloud config list
#10. กำหนด Region และ Zone
สำหรับ Workshop นี้สามารถใช้ Singapore region เป็นตัวอย่าง
gcloud config set compute/region asia-southeast1
gcloud config set compute/zone asia-southeast1-b
ตรวจสอบ
gcloud config list
Zone และบริการที่เปิดให้ใช้งานอาจแตกต่างกันตาม Region ควรตรวจสอบก่อนสร้าง Resource จริง
#Part 4: จัดการ APIs
Google Cloud Services หลายรายการต้องเปิด API ก่อนใช้งาน
ตรวจสอบ API ที่เปิดแล้ว
gcloud services list --enabled
เปิด Compute Engine API
gcloud services enable compute.googleapis.com
เปิดบริการที่ใช้ใน Workshop
gcloud services enable \
compute.googleapis.com \
storage.googleapis.com \
artifactregistry.googleapis.com \
run.googleapis.com \
cloudbuild.googleapis.com \
container.googleapis.com
#Part 5: Workshop Compute Engine
#11. แสดง VM
gcloud compute instances list
#12. สร้าง VM
ตัวอย่างสร้าง VM ขนาดเล็ก
gcloud compute instances create web-server \
--zone=asia-southeast1-b \
--machine-type=e2-micro \
--image-family=debian-12 \
--image-project=debian-cloud
ตรวจสอบ
gcloud compute instances list
#13. SSH เข้า VM
gcloud compute ssh web-server \
--zone=asia-southeast1-b
เมื่อเข้า VM แล้วทดลอง
hostname
uname -a
ออกจาก VM
exit
#14. Start / Stop VM
หยุด VM
gcloud compute instances stop web-server \
--zone=asia-southeast1-b
เปิด VM
gcloud compute instances start web-server \
--zone=asia-southeast1-b
ดูรายละเอียด
gcloud compute instances describe web-server \
--zone=asia-southeast1-b
#15. ลบ VM
gcloud compute instances delete web-server \
--zone=asia-southeast1-b
ตอบ Y เพื่อยืนยัน หรือใช้ --quiet เฉพาะกรณี automation
ที่ออกแบบการตรวจสอบมาแล้ว
#Part 6: Workshop Cloud Storage
#16. สร้าง Bucket
ชื่อ Bucket ต้อง unique ใน namespace ของ Cloud Storage
กำหนดตัวแปรก่อน
export BUCKET_NAME=my-gcloud-workshop-UNIQUE_ID
สร้าง Bucket
gcloud storage buckets create gs://$BUCKET_NAME \
--location=asia-southeast1
ตรวจสอบ
gcloud storage buckets list
#17. Upload File
สร้างไฟล์
echo "Hello Google Cloud CLI" > hello.txt
Upload
gcloud storage cp hello.txt gs://$BUCKET_NAME/
แสดงไฟล์
gcloud storage ls gs://$BUCKET_NAME
Download
gcloud storage cp gs://$BUCKET_NAME/hello.txt downloaded.txt
#18. ลบ Bucket
ลบ Object ก่อน
gcloud storage rm gs://$BUCKET_NAME/hello.txt
จากนั้นลบ Bucket
gcloud storage buckets delete gs://$BUCKET_NAME
#Part 7: Workshop Artifact Registry
Artifact Registry ใช้เก็บ Artifact เช่น Docker Container Images
#19. สร้าง Docker Repository
กำหนดค่าตัวแปร
export REGION=asia-southeast1
export REPOSITORY=workshop-repo
สร้าง Repository
gcloud artifacts repositories create $REPOSITORY \
--repository-format=docker \
--location=$REGION \
--description="Docker repository for gcloud workshop"
ตรวจสอบ
gcloud artifacts repositories list
#20. ตั้งค่า Docker Authentication
gcloud auth configure-docker asia-southeast1-docker.pkg.dev
หา Project ID
export PROJECT_ID=$(gcloud config get-value project)
echo $PROJECT_ID
#21. สร้าง Container Image
สร้าง Dockerfile
FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html
สร้าง index.html
<!DOCTYPE html>
<html>
<head>
<title>Google Cloud CLI Workshop</title>
</head>
<body>
<h1>Hello Google Cloud CLI</h1>
</body>
</html>
Build
docker build -t gcloud-demo:v1 .
Tag
docker tag gcloud-demo:v1 \
$REGION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/gcloud-demo:v1
Push
docker push \
$REGION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/gcloud-demo:v1
ตรวจสอบ Image
gcloud artifacts docker images list \
$REGION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY
#Part 8: Workshop Cloud Run
#22. Deploy Container ไป Cloud Run
ใช้ Image ที่ Push ไว้ใน Artifact Registry
gcloud run deploy gcloud-demo \
--image=$REGION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/gcloud-demo:v1 \
--region=$REGION \
--allow-unauthenticated
เมื่อสำเร็จ Cloud Run จะแสดง URL ของ Service
ตรวจสอบ Service
gcloud run services list \
--region=$REGION
ดูรายละเอียด
gcloud run services describe gcloud-demo \
--region=$REGION
--allow-unauthenticatedทำให้ Service เรียกจาก Internet ได้โดยไม่ต้อง Login จึงควรใช้เฉพาะบริการที่ตั้งใจเปิด public
#23. ดู Logs
gcloud run services logs read gcloud-demo \
--region=$REGION
#24. ลบ Cloud Run Service
gcloud run services delete gcloud-demo \
--region=$REGION
#Part 9: Workshop GKE
#25. ติดตั้ง kubectl Component
ขึ้นกับวิธีที่ติดตั้ง Google Cloud CLI และ OS อาจติดตั้ง kubectl ผ่าน package
manager หรือ component manager
ตรวจสอบก่อน
kubectl version --client
#26. สร้าง GKE Cluster
ขั้นตอนนี้อาจมีค่าใช้จ่ายมากกว่า Workshop ส่วนอื่น ควรตรวจสอบ Billing และ Quota ก่อนดำเนินการ
ตัวอย่างสร้าง Autopilot Cluster
gcloud container clusters create-auto workshop-cluster \
--region=asia-southeast1
ตรวจสอบ
gcloud container clusters list
#27. รับ Kubernetes Credentials
gcloud container clusters get-credentials workshop-cluster \
--region=asia-southeast1
จากนั้น
kubectl get nodes
#28. Deploy NGINX
kubectl create deployment nginx \
--image=nginx:alpine
ตรวจสอบ
kubectl get deployments
kubectl get pods
สร้าง Service
kubectl expose deployment nginx \
--type=LoadBalancer \
--port=80
ตรวจสอบ
kubectl get service
รอจน EXTERNAL-IP พร้อมใช้งาน
#29. Cleanup GKE
ลบ Cluster
gcloud container clusters delete workshop-cluster \
--region=asia-southeast1
#Part 10: Output Formats สำหรับ Automation
ข้อดีสำคัญของ gcloud คือสามารถกำหนดรูปแบบ Output ได้
#Table
gcloud compute instances list \
--format="table(name,zone,status)"
#JSON
gcloud compute instances list \
--format=json
#Value
gcloud config get-value project
หรือเลือก field จาก Resource
gcloud compute instances list \
--format="value(name)"
รูปแบบเหล่านี้มีประโยชน์มากสำหรับ Shell Script และ CI/CD
#Part 11: Configuration หลาย Environment
สามารถสร้าง Configuration แยกระหว่าง Development และ Production ได้
สร้าง
gcloud config configurations create development
ตั้ง Project
gcloud config set project DEV_PROJECT_ID
สร้างอีก Configuration
gcloud config configurations create production
gcloud config set project PROD_PROJECT_ID
ดูทั้งหมด
gcloud config configurations list
สลับกลับ Development
gcloud config configurations activate development
วิธีนี้ช่วยลดความเสี่ยงในการสั่งงานผิด Project
#Part 12: ตัวอย่าง Shell Script
ตัวอย่างตรวจสอบ VM
#!/bin/bash
PROJECT_ID="my-project"
ZONE="asia-southeast1-b"
gcloud config set project "$PROJECT_ID"
gcloud compute instances list \
--filter="zone:$ZONE" \
--format="table(name,status,networkInterfaces[0].networkIP)"
ให้สิทธิ์ Execute
chmod +x check-vm.sh
Run
./check-vm.sh
#Part 13: Google Cloud CLI กับ CI/CD
ภาพรวม Pipeline สามารถออกแบบได้ดังนี้
Developer
|
v
Git Repository
|
v
CI/CD Pipeline
|
+--> Test
|
+--> Build Container
|
+--> Authenticate to Google Cloud
|
+--> Push Artifact Registry
|
+--> gcloud run deploy
|
v
Cloud Run
สำหรับ Production CI/CD ควรใช้แนวทาง identity ของ workload เช่น Workload
Identity Federation หรือ credential mechanism ที่ระบบ CI รองรับ แทนการนำ
credential จาก gcloud auth login ของผู้ใช้ไปเก็บใน Pipeline
#Part 14: คำสั่งที่ควรรู้
# Version
gcloud version
# Initialize
gcloud init
# Login
gcloud auth login
# Accounts
gcloud auth list
# Projects
gcloud projects list
# Current configuration
gcloud config list
# Set project
gcloud config set project PROJECT_ID
# Enabled APIs
gcloud services list --enabled
# VM
gcloud compute instances list
# Storage
gcloud storage buckets list
# Artifact Registry
gcloud artifacts repositories list
# Cloud Run
gcloud run services list
# GKE
gcloud container clusters list
# Help
gcloud help
#Part 15: Cleanup Checklist
หลัง Workshop ตรวจสอบ Resource ที่ยังทำงานอยู่
gcloud compute instances list
gcloud storage buckets list
gcloud artifacts repositories list
gcloud run services list --region=asia-southeast1
gcloud container clusters list
หาก Repository ใช้สำหรับ Workshop เท่านั้น สามารถลบได้
gcloud artifacts repositories delete workshop-repo \
--location=asia-southeast1
ควรตรวจสอบ Cloud Console/Billing เพิ่มเติมเพื่อให้แน่ใจว่าไม่มี Resource อื่นจากการทดลองค้างอยู่
#สรุป
Google Cloud CLI ทำให้เราจัดการ Google Cloud ผ่าน Terminal ได้อย่างเป็นระบบ และเป็นพื้นฐานสำคัญสำหรับ Cloud Automation และ DevOps
หลังจบ Workshop ผู้เรียนควรเข้าใจ workflow หลักดังนี้
Install gcloud
|
v
Authenticate
|
v
Select Project
|
v
Enable APIs
|
+-------------------+
| |
v v
Compute Engine Cloud Storage
| |
+---------+---------+
|
v
Artifact Registry
|
v
Cloud Run
|
v
GKE
จุดสำคัญไม่ใช่เพียงจำคำสั่ง แต่คือเข้าใจว่า gcloud เป็น automation interface ของ
Google Cloud ซึ่งสามารถนำไปต่อยอดเป็น Shell Script, Infrastructure workflow
และ CI/CD Pipeline ได้
#แบบฝึกหัดท้าย Workshop
- สร้าง Configuration ชื่อ
workshop - ตั้ง Project และ Region เป็น
asia-southeast1 - สร้าง Compute Engine VM จำนวน 1 เครื่อง
- ใช้
gcloud compute sshเข้า VM - สร้าง Cloud Storage Bucket และ Upload ไฟล์
- สร้าง Artifact Registry Docker Repository
- Build และ Push NGINX Image
- Deploy Image ไปยัง Cloud Run
- แสดง Cloud Run Service ด้วย
gcloud - Cleanup Resource ทั้งหมดหลังทดสอบเสร็จ
#Challenge
สร้าง Shell Script ชื่อ
deploy.sh
ให้ทำงานตามลำดับ
Build Docker Image
|
v
Tag Image
|
v
Push Artifact Registry
|
v
Deploy Cloud Run
|
v
Display Service URL
จากนั้นนำ Script ไปต่อยอดกับ GitHub Actions, GitLab CI/CD หรือ Jenkins
#เอกสารอ้างอิง
- Google Cloud CLI: https://cloud.google.com/cli
- Install Google Cloud CLI: https://cloud.google.com/sdk/docs/install
- gcloud authentication: https://cloud.google.com/sdk/docs/authenticate
- gcloud command reference: https://cloud.google.com/sdk/gcloud/reference
- Artifact Registry: https://cloud.google.com/artifact-registry/docs
- Cloud Run: https://cloud.google.com/run/docs
- Google Kubernetes Engine: https://cloud.google.com/kubernetes-engine/docs