คอนเทนเนอร์· ~14 นาที
ประกอบร่างการจัดสรร (+ Lab)
ตั้ง resources + probes แล้วดูพฤติกรรม scheduler
บทนี้รวมทุกอย่างในโมดูล: ตั้ง request/limit ให้พอดี, ใส่ probe ให้ K8s รู้สุขภาพ, และเข้าใจว่าทำไม Pod บางตัวขึ้นสถานะ Pending
🧪 Lab: ทำไม Pod ขึ้น Pending
# ตั้ง requests.memory สูงเวอร์ (เช่น 100Gi) ใน Deployment แล้ว apply
kubectl apply -f big-request.yaml
kubectl get pods # จะเห็นสถานะ Pending
kubectl describe pod <ชื่อ> # ดู Events ท้าย ๆ: "Insufficient memory"K8s Scheduler & Self-Healing
ตั้งจำนวน Pod ที่อยากได้ (desired) แล้วดู Scheduler วางลง node ที่ว่าง · ลองปิด node เพื่อดู Pod ถูกย้ายไปที่อื่นให้ครบเสมอ
Desired replicas:
4
(แต่ละ node รับได้ 4 Pod)node-1
Pod
Pod
Pod
Pod
node-2
Pod
Pod
Pod
Pod
node-3
Pod
Pod
Pod
Pod
4
Desired
4
Running
0
Pending
✅ Scheduler กระจาย 4 Pod ลง node ที่ว่างอย่างสมดุล — ลองกด "ปิด node" ดูว่า Pod ถูกย้ายไปที่อื่นทันที
สรุป Key Takeaways
- Pod Pending = scheduler หา node ที่เหมาะไม่ได้ — อ่าน Events จาก describe
- สาเหตุหลัก: ทรัพยากรไม่พอ / ไม่ตรง affinity / ติด taint
- Cluster Autoscaler/Karpenter เพิ่ม node อัตโนมัติ (ต่างจาก HPA ที่เพิ่ม Pod)
อ่านจบแล้วอย่าลืมทำเครื่องหมาย

