← กลับหน้าหลัก

Kubernetes 101 คู่มือเริ่มต้นสำหรับ DevOps มือใหม่

โดย อ.บอม กิตติทัศน์ | 09/02/2026 | Server
Kubernetes 101 คู่มือเริ่มต้นสำหรับ DevOps มือใหม่

Kubernetes คืออะไร — อธิบายแบบไม่อ้อมค้อม

ลองนึกภาพ: คุณมี Docker containers 50 ตัว รันบน server 5 เครื่อง ถ้า server 1 เครื่องล่ม ใครจะย้าย containers ไปเครื่องอื่น? ถ้าต้อง scale จาก 50 เป็น 200 containers ตอนช่วง peak ใครจะจัดการ?

คำตอบคือ Kubernetes (K8s) มันคือ "ผู้จัดการ" ที่ดูแล containers ทั้งหมดให้อัตโนมัติ

ผมเริ่มใช้ K8s ตั้งแต่ปี 2020 ตอนนั้น migrate ระบบ e-commerce ของลูกค้าจาก Docker Compose มา K8s downtime ลดจากเดือนละ 2-3 ชั่วโมง เหลือเดือนละไม่ถึง 5 นาที

Concept หลักที่ต้องรู้

Conceptคือเปรียบเทียบ
Podหน่วยเล็กสุด ห่อ 1+ containersเหมือน 1 ห้องในตึก
Deploymentบอก K8s ว่าจะรัน Pod กี่ตัวเหมือนผู้จัดการตึก
Serviceเปิดทาง network เข้า Podsเหมือนประตูทางเข้าตึก
Nodeเครื่อง server จริงเหมือนตึก 1 หลัง
Clusterกลุ่ม Nodes ทั้งหมดเหมือนนิคมอุตสาหกรรม

ติดตั้ง Minikube เพื่อทดลอง

ก่อนไปลง cluster จริง ลอง Minikube ก่อน — รัน K8s บนเครื่องเดียว

# ติดตั้ง kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

# ติดตั้ง Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

# เริ่ม cluster
minikube start --driver=docker

# เช็คว่าทำงาน
kubectl get nodes

Deploy app แรกบน K8s

# สร้างไฟล์ deployment.yaml
cat > deployment.yaml << 'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30080
EOF

# Apply
kubectl apply -f deployment.yaml

# ดูสถานะ
kubectl get pods
kubectl get services

แค่นี้คุณมี Nginx 3 replicas ที่ K8s จัดการให้ ถ้า pod ไหนตาย K8s จะสร้างใหม่อัตโนมัติ

คำสั่ง kubectl ที่ใช้ทุกวัน

คำสั่งทำอะไร
kubectl get podsดู pods ที่รัน
kubectl get svcดู services
kubectl describe pod <name>ดูรายละเอียด pod
kubectl logs <pod>ดู log
kubectl scale deployment <name> --replicas=5Scale เพิ่ม/ลด
kubectl rollout restart deployment <name>Restart ทั้ง deployment

เมื่อไหร่ควรใช้ K8s เมื่อไหร่แค่ Docker Compose พอ

ผมมีลูกค้าหลายรายที่เริ่มจาก Docker Compose พอ traffic เพิ่มจาก 1,000 เป็น 50,000 users/day จึงค่อย migrate มา K8s ไม่ต้องรีบ

FAQ

Q: K8s ยากไหม?

ตอนเริ่มใหม่ ยากครับ แต่ถ้าเข้าใจ Pod, Deployment, Service 3 ตัวนี้ก่อน ที่เหลือค่อยเรียนรู้เพิ่ม ผมใช้เวลาเรียนรู้จริงจังประมาณ 2 เดือน

Q: ใช้ managed K8s (EKS, GKE) ดีกว่าตั้งเองไหม?

ถ้ามีงบ ใช้ managed ดีกว่ามาก ไม่ต้องดูแล control plane เอง GKE ของ Google ง่ายที่สุดสำหรับมือใหม่

Q: K8s กับ Docker Swarm ต่างกันยังไง?

Swarm ง่ายกว่าแต่ feature น้อยกว่า K8s เป็นมาตรฐานอุตสาหกรรม หางานง่ายกว่า community ใหญ่กว่า

สำหรับผู้ที่สนใจเรื่องการเงินและการลงทุน ศึกษาเพิ่มได้ที่ iCafeForex.com