OpenAI ขยาย Kubernetes Cluster รองรับถึง 7,500 โหนด

การปรับขนาด Kubernetes Cluster เดียวให้ใหญ่ถึงขนาดนี้เป็นเรื่องที่ต้องใช้ความระมัดระวังเป็นพิเศษ แต่ข้อดีคือโครงสร้างพื้นฐานที่เรียบง่ายซึ่งช่วยให้ทีมวิจัย Machine Learning ของเราทำงานได้เร็วขึ้นและปรับขนาดได้โดยไม่ต้องเปลี่ยนแปลงโค้ด

ในส่วนของ Networking นั้น การใช้ iptables mangle rules ช่วยให้สามารถตรวจสอบจุดคอขวดที่อาจเกิดขึ้นได้ โดยเฉพาะอย่างยิ่งเมื่อการทดลองมีการสื่อสารที่แตกต่างกันระหว่างอินเทอร์เน็ตและภายใน Pod

สำหรับการจัดการทรัพยากร เราใช้ Passive healthchecks เพื่อตรวจสอบข้อผิดพลาดของ GPU เช่น “Uncorrectable ECC error” และใช้ Team taints เพื่อจำกัดการทำงานของ Pod Scheduler ให้ยืดหยุ่น

นอกจากนี้ ยังมีการใช้ CPU & GPU balloons และ Pod anti-affinity เพื่อให้ Pod กระจายตัวอย่างสม่ำเสมอทั่วทั้งโหนด และมีการนำ Gang scheduling มาใช้เพื่อป้องกัน Deadlock เมื่อมีการร้องขอทรัพยากรสูงเกินไป

Pod network traffic shaping ช่วยให้สามารถควบคุมปริมาณแบนด์วิธอินเทอร์เน็ตขาออกที่อาจส่งผลกระทบต่อทรัพยากรอื่น ๆ บนอินเทอร์เน็ตได้

ศัพท์ที่ควรรู้

  • Kubernetes – ระบบจัดการคอนเทนเนอร์ที่ใช้ในการจัดตารางและบริหารจัดการแอปพลิเคชันในระดับ Production
  • iptables mangle rules – กฎที่ใช้ในการทำเครื่องหมายแพ็กเก็ตเพื่อตรวจสอบและแก้ไขปัญหาการเชื่อมต่อเครือข่าย
  • Passive healthchecks – การตรวจสอบสุขภาพของฮาร์ดแวร์ เช่น GPU โดยไม่รบกวนการทำงานหลัก
  • Team taints – กลไกที่ใช้ในการจำกัดและควบคุมการจัดตาราง Pod ใน Kubernetes ให้มีความยืดหยุ่น
  • Gang scheduling – กลไกการจัดตารางงานที่ทำให้การทดลองทั้งหมดต้องได้รับการจัดสรรทรัพยากรพร้อมกันเพื่อป้องกันการติดขัด

ที่มา: OpenAI

Leave a Comment