メインコンテンツへスキップ
記事一覧へ戻る

Horizontal Pod Autoscaler เพิ่ม Pod ตามโหลดได้อย่างไร

Horizontal Pod Autoscaler ปรับจำนวน Pod ของ workload ตาม metric ที่กำหนด อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ

Horizontal Pod Autoscaler เพิ่ม Pod ตามโหลดได้อย่างไร

Horizontal Pod Autoscaler ปรับจำนวน Pod ของ workload ตาม metric ที่กำหนด เหมาะกับบริการที่ปริมาณคำขอขึ้นลงและรองรับการเพิ่มอินสแตนซ์ได้จริง บทความนี้สรุปแนวคิดจากเอกสารทางการของ Kubernetes และจุดที่ควรตรวจเมื่อนำไปใช้จริง

ภาพรวม

Kubernetes ใช้ตัวควบคุมปรับสถานะคลัสเตอร์ให้ตรงกับค่าที่ประกาศไว้ การเข้าใจ resource และความสัมพันธ์ระหว่าง Pod, Service กับ Node ช่วยให้ออกแบบระบบที่ฟื้นตัวได้

หัวข้อนี้ตอบโจทย์เฉพาะเรื่อง: Horizontal Pod Autoscaler ปรับจำนวน Pod ของ workload ตาม metric ที่กำหนด จึงควรเริ่มจากปัญหาที่ต้องแก้และผลลัพธ์ที่คาดหวัง ไม่ใช่เพียงเปิดฟีเจอร์เพราะมีอยู่ในเครื่องมือ

หลักการทำงาน

ตัวควบคุมคำนวณจำนวน replica ที่ต้องการจากค่า metric ปัจจุบันเทียบกับค่าเป้าหมาย แล้วสั่งปรับ workload

ให้ตรวจทั้งสถานะที่เครื่องมือรายงานและผลลัพธ์ปลายทางที่ผู้ใช้หรือระบบอื่นได้รับ หากสองส่วนไม่ตรงกัน ควรกลับไปตรวจค่าตั้งต้นและขอบเขตที่ฟีเจอร์นี้รับผิดชอบก่อนเปลี่ยนค่าเพิ่มเติม

เหมาะกับงานแบบไหน

เหมาะกับบริการที่ปริมาณคำขอขึ้นลงและรองรับการเพิ่มอินสแตนซ์ได้จริง

ก่อนทดลอง ให้ระบุสิ่งที่จะใช้วัดผล เช่น เวลาตอบสนอง ความพร้อมใช้งาน ความถูกต้องของข้อมูล หรือภาระการดูแล แล้วเทียบกับสภาพเดิม วิธีนี้ช่วยให้รู้ว่าฟีเจอร์แก้ปัญหาจริงหรือย้ายภาระไปอีกจุดหนึ่ง

ขั้นตอนนำไปใช้

  1. ตรวจ resource และ namespace ที่จะเปลี่ยน พร้อมดู workload ที่พึ่งพากัน
  2. ทดลอง manifest แล้วดู event, rollout และสถานะ Pod
  3. กำหนดวิธีย้อน manifest และตรวจข้อมูลที่ต้องคงอยู่

เริ่มจากขอบเขตเล็กและเก็บผลทดสอบไว้กับการเปลี่ยนแปลง หากจะใช้ใน production ให้กำหนดผู้ติดตามผลและเงื่อนไขที่จะหยุดการขยายการใช้งาน

ข้อควรระวัง

ต้องมี metric ที่น่าเชื่อถือและ resource request ที่เหมาะสม; HPA ไม่แก้คอขวดของฐานข้อมูลหรือ dependency อื่น

แปลงข้อควรระวังนี้เป็นรายการตรวจในการทบทวนงาน เพราะปัญหาจากค่าตั้งต้นอาจไม่แสดงทันทีในสภาพแวดล้อมทดสอบ

สรุป

Horizontal Pod Autoscaler ปรับจำนวน Pod ของ workload ตาม metric ที่กำหนด เหมาะกับบริการที่ปริมาณคำขอขึ้นลงและรองรับการเพิ่มอินสแตนซ์ได้จริง ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่

อ่านเพิ่มเติม: เอกสารทางการของ Kubernetes