สำหรับบทเรียนนี้ เราจะมาเรียนรู้วิธีการเปิดใช้งานและทดลองใช้ Kubernetes (Kube) บน Docker Desktop แบบมือจับทำทีละขั้นตอนครับ เหมาะมากสำหรับผู้เริ่มต้นที่ต้องการสภาพแวดล้อมทดสอบ Local Cluster โดยไม่ต้องติดตั้งเครื่องมือซับซ้อนเพิ่มเติม
ขั้นตอนที่ 1: เปิดใช้งาน Kubernetes ใน Docker Desktop
ปกติแล้ว Docker Desktop จะมาพร้อมกับ Kubernetes ในตัว แต่ถูกปิดไว้อยู่ ให้เปิดใช้งานตามนี้ครับ:
- เปิดโปรแกรม Docker Desktop ขึ้นมา
- กดที่ไอคอนรูปเฟือง ⚙️ (Settings) บริเวณมุมขวาบน
- เลือกแถบเมนู Kubernetes จากรายการด้านซ้าย
- ติ๊กถูกที่ช่อง Enable Kubernetes
- กดปุ่ม Apply & restart ด้านล่างขวา
- รอระบบดาวน์โหลดและเริ่มต้นบริการ (อาจใช้เวลา 3–5 นาที สังเกตไอคอนมุมซ้ายล่างจะเปลี่ยนเป็นสีเขียว)
ขั้นตอนที่ 2: ตรวจสอบความพร้อมผ่าน Terminal
หลังจากเปิดใช้งานเรียบร้อย ให้เปิด Command Prompt, PowerShell หรือ Terminal ขึ้นมา เพื่อทดสอบเครื่องมือควบคุมที่ชื่อว่า kubectl ครับ
1. ตรวจสอบเวอร์ชัน:
พิมพ์คำสั่งด้านล่างเพื่อเช็กว่าเครื่องมือมองเห็น Cluster แล้วหรือยัง:
kubectl version --short
2. ตรวจสอบสถานะ Node:
เช็กสถานะของ Cluster โดยรันคำสั่ง:
kubectl get nodes
หากสำเร็จ จะเห็นรายการ node ชื่อ docker-desktop แสดงสถานะเป็น Ready
ขั้นตอนที่ 3: ทดลอง Deploy แอปพลิเคชันแรก (Hands-on)
มาลองสั่งสร้าง Web Server ง่ายๆ ด้วย Nginx เพื่อดูการทำงานของ Pod กันครับ:
1. สั่งรัน Nginx Pod:
kubectl create deployment my-nginx --image=nginx
2. ตรวจสอบ Pods ที่กำลังทำงาน:
kubectl get pods
รอจนกว่าคอลัมน์ STATUS จะเปลี่ยนจาก ContainerCreating เป็น Running
3. เปิดช่องทางเข้าถึงผ่าน Browser (Expose Service):
kubectl expose deployment my-nginx --port=80 --type=NodePort
4. ทดสอบเข้าใช้งาน:
ตรวจสอบ Port ที่ถูกสุ่มสร้างขึ้นมาด้วยคำสั่ง:
kubectl get services
ดูตัวเลขในคอลัมน์ PORT(S) เช่น 80:31234/TCP จากนั้นเปิด Browser แล้วพิมพ์ http://localhost:31234 จะพบหน้า Welcome to nginx!
ขั้นตอนที่ 4: การลบข้อมูลและทำความสะอาด (Clean Up)
เมื่อทดลองเสร็จแล้ว ควรลบ Resource เพื่อไม่ให้กินทรัพยากรเครื่องครับ:
kubectl delete service my-nginxkubectl delete deployment my-nginx
สรุปเกร็ดน่ารู้สำหรับผู้เริ่มต้น
Pro Tip: Kubernetes บน Docker Desktop เป็นแบบ Single-node เหมาะสำหรับการพัฒนาและทดสอบระบบในเครื่อง (Local Development) ไม่แนะนำให้นำไปใช้บน Production จริง แต่โครงสร้างคำสั่ง
kubectlทั้งหมดสามารถนำไปใช้กับ Cloud Provider (เช่น GKE, EKS, AKS) ได้เหมือนกันทุกประการครับ
No comments:
Post a Comment