
การจัดการ Autoscaling ใน Kubernetes ช่วยให้แอปพลิเคชันทำงานมีประสิทธิภาพภายใต้โหลดที่เปลี่ยนแปลงตลอดเวลาซึ่งทำได้ 3 รูปแบบ ได้แก่ Horizontal Pod Autoscaler (HPA), Vertical Pod Autoscaler (VPA) และ Cluster Autoscaler (CA) แต่ละแบบมีการ Scale ต่างกัน แต่สามารถทำงานร่วมกันได้อย่างไร คุณเกม กรันยศ รัศมี Senior Platform Services Engineer จะมาแชร์ให้ฟังค่ะ
1. HPA เป็น Autoscaling ที่ขยายจำนวน Pods ตามโหลดที่เพิ่มขึ้น โดยอิงตามเมตริก เช่น CPU, Memory หรือ Custom Metrics ผ่าน Metrics Server เช่น Prometheus การทำงานของ HPA คือ คำนวณโหลดจากเมตริก, ปรับจำนวน Replica ของ Deployment หรือ StatefulSet ตามค่า Threshold, และ ทำงานร่วมกับ Metrics Server หรือ Prometheus Adapter เพื่อดึงเมตริกมาใช้ตัดสินใจ โดยมีเครื่องมือช่วยดังนี้
– Kubernetes Metrics Server ใช้เก็บข้อมูล CPU และ Memory สำหรับ HPA
– Prometheus + Custom Metrics Adapter ใช้ดึง Custom Metrics มาเป็นเกณฑ์ Scaling

2. VPA ปรับขนาดทรัพยากร (CPU/Memory) ของ Pods เหมาะกับ Workload ที่ต้องปรับทรัพยากรตามการใช้งาน เช่น Database หรือ AI/ML Workloads การทำงานของ VPA คือ ตรวจการใช้ทรัพยากรของ Pods, ปรับขนาด Requests และ Limits ของ CPU/Memory โดยอัตโนมัติ และทำงานร่วมกับ Kubernetes Scheduler เพื่อกำหนดทรัพยากรที่เหมาะสม โดยมีเครื่องมือช่วยดังนี้
– Kubernetes VPA เครื่องมือหลักที่พัฒนาโดย Kubernetes SIG Autoscaling
– Goldilocks เครื่องมือช่วยวิเคราะห์ค่า Requests และ Limits

3. CA ปรับขนาด Node ของ Cluster ตามจำนวน Pods ที่ต้องการทรัพยากรเพิ่มขึ้นโดยอัตโนมัติ เหมาะสำหรับ Kubernetes Cluster บน Cloud Providers เช่น AWS, GCP, Azure การทำงานของ CA คือ ตรวจว่ามี Pods ที่ Pending เนื่องจากไม่มี Node รองรับ และ ปรับขนาด Node Pool ตามความจำเป็น โดยมีเครื่องมือช่วยดังนี้
– Cluster Autoscaler เครื่องมือที่ใช้ขยายขนาด Nodes ใน Kubernetes Cluster
– Karpenter เครื่องมือ Autoscaling ที่ปรับ Node ได้เร็วและยืดหยุ่นกว่า Cluster Autoscaler

Autoscaling เป็นหัวใจบริหารจัดการ Kubernetes ให้ทำงานอย่างมีประสิทธิภาพ โดยใช้ HPA, VPA และ CA ร่วมกันปรับขนาดแอปพลิเคชันและ Cluster ตามโหลดที่เปลี่ยนแปลง การนำระบบ Autoscaling ไปปรับใช้ใน Production จำเป็นต้องมีการปรับเปลี่ยนค่าต่างๆให้เหมาะกับการใช้งาน
ท้ายนี้หากองค์กรท่านกำลังมองหาโซลูชันด้าน DevOps ช่วยปรับรูปแบบการทำงานให้เป็นอัตโนมัติ ลดต้นทุนการทำธุรกิจ SCB TechX พร้อมเป็นโซลูชันที่ช่วยพัฒนา และ Deliver ผลิตภัณฑ์และบริการออกสู่ตลาด ต่อยอดองค์กรของท่านให้เติบโตอย่างยั่งยืน สนใจบริการโปรดติดต่อเราที่ contact@scbtechx.io
