Kubernetes กับฐานข้อมูล
(iwanhae.tistory.com)โดยทั่วไปแล้วไม่ค่อยแนะนำให้นำ 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 ความคิดเห็น
ประสิทธิภาพจะลดลง งานดูแลรักษาจะยากขึ้น และเมื่อเกิดปัญหาจะมีจุดที่ต้องจัดการจำนวนมาก ทำให้ติดตามหาสาเหตุได้ยาก
กลายเป็นสถานการณ์ที่ตรงกันข้ามกับเป้าหมายดั้งเดิมของ k8s ที่ต้องการลดจุดที่ต้องจัดการและลดภาระงานปฏิบัติการ