8 คะแนน โดย kuber 2025-03-13 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

โดยทั่วไปแล้วไม่ค่อยแนะนำให้นำ DB ไปรันบน Kubernetes แต่บทความนี้เป็นการเล่าเรียงตามกระแสความคิดว่ามีประเด็นปัญหาอะไรบ้างอย่างเป็นรูปธรรม

DB on K8s: ข้อดี

  • ระบบการจัดการแบบรวมศูนย์ผ่าน kubectl
  • ระบบความปลอดภัยที่สอดคล้องกัน (ไฟร์วอลล์, การควบคุมการเข้าถึง)
  • การรวมระบบมอนิเตอร์ริง
  • การจัดการอัตโนมัติ

DB on K8s: ประเด็นปัญหา

  • ปัญหาด้านประสิทธิภาพและเสถียรภาพจากระยะห่างระหว่าง CPU กับสตอเรจ
  • ปัญหาจากการใช้ทรัพยากร Linux kernel ร่วมกัน
  • การเพิ่มจุดล้มเหลวใหม่
  • การแยกขอบเขตการปฏิบัติการที่อ่อนแอ
  • ความซับซ้อนที่เพิ่มขึ้นของการตั้งค่า, การตั้งค่าเครือข่าย, และการจัดการ lifecycle

DB on K8s: แนวทางแก้ไขที่เสนอ

  • ยอมสละความสามารถบางส่วนของ Kubernetes (เช่น DB Pod 1 ตัวต่อ 1 โหนด, ใช้ Local Volume, ใช้ hostNetwork เป็นต้น)
  • ใช้ Operator ตามประเภทของ DB

สรุป:

  • ทำได้ แต่ยังน่าสงสัยว่าได้ประสิทธิภาพคุ้มค่าหรือไม่
  • ดูมีประโยชน์กับบริการที่มีจำนวน DB มากมาก หรือยอมรับการขัดข้องระดับหลายชั่วโมงได้
  • นอกจากนั้น วิธีการแบบเดิมดูมีประสิทธิภาพมากกว่า

1 ความคิดเห็น

 
kaydash 2025-03-14

ประสิทธิภาพจะลดลง งานดูแลรักษาจะยากขึ้น และเมื่อเกิดปัญหาจะมีจุดที่ต้องจัดการจำนวนมาก ทำให้ติดตามหาสาเหตุได้ยาก
กลายเป็นสถานการณ์ที่ตรงกันข้ามกับเป้าหมายดั้งเดิมของ k8s ที่ต้องการลดจุดที่ต้องจัดการและลดภาระงานปฏิบัติการ