ข้ามไปเนื้อหาหลัก
คอนเทนเนอร์· ~14 นาที

HPA — สเกล Pod อัตโนมัติตามโหลด

เพิ่ม/ลดจำนวน Pod เองตาม CPU หรือเมตริก

เปรียบเทียบให้เห็นภาพ

HPA เหมือนผู้จัดการร้านที่จ้องกล้องวงจรปิด — ลูกค้าเยอะขึ้นก็เรียกพนักงานเพิ่ม (scale out) พอคนบางลงก็ให้กลับบ้าน (scale in) โดยอัตโนมัติ ไม่ต้องมีคนคอยสั่ง

จากบท Workloads เราสเกลด้วยมือ (kubectl scale) · HorizontalPodAutoscaler (HPA) ทำให้อัตโนมัติ: เฝ้าดูเมตริก (เช่น CPU เฉลี่ย) แล้วปรับ replicas ของ Deployment ให้อยู่ในช่วง min–max ที่ตั้งไว้

HPA อ่านเมตริก → เทียบเป้า → ปรับ replicas

metrics-serverCPU/RAM จริง
อ่าน
HPAเป้า CPU 50%
ปรับ
Deploymentreplicas 2→10

โหลดขึ้น → เพิ่ม Pod · โหลดลง → ลด Pod (ในช่วง min–max)

HPA อ่านเมตริกจาก metrics-server → เทียบกับเป้า → ปรับ replicas ของ Deployment ขึ้น/ลง
kubectl autoscale deployment/web \
  --cpu-percent=50 --min=2 --max=10

kubectl get hpa           # ดู TARGETS (ปัจจุบัน/เป้า) และ REPLICAS
สร้าง HPA: รักษา CPU ~50% ระหว่าง 2–10 Pod

สรุป Key Takeaways

  • HPA = สเกลจำนวน Pod อัตโนมัติตามเมตริก (เช่น CPU) ในช่วง min–max
  • ต้องมี metrics-server + ตั้ง resources.requests ไม่งั้นคำนวณ % ไม่ได้
  • HPA(Pod แนวนอน) / VPA(ขนาด Pod) / Cluster Autoscaler(จำนวน node) คนละชั้น
อ่านจบแล้วอย่าลืมทำเครื่องหมาย