เรากำลังวางแผนโครงสร้างพื้นฐานคลัสเตอร์ Kubernetes ใหม่ และฉันมีคำถามบางอย่าง
ปัจจุบัน เรามีคลัสเตอร์ที่ใหญ่ขึ้นหนึ่งคลัสเตอร์ซึ่งสภาพแวดล้อม (dev, staging, prod) และหลายทีมกำลังทำงานอยู่ ในตอนแรก มันเป็นแค่ "POC" ตัวสาธิต แต่พวกคุณคงทราบดีว่า ไม่มีอะไรคงอยู่ได้นานกว่าวิธีแก้ปัญหาชั่วคราว
ในการตั้งค่านี้ เรามีปัญหาทั่วไปบางประการ และในสถาปัตยกรรมปลายทางของเรา เราวางแผนที่จะแก้ไขบางหัวข้อเหล่านั้น
ฉันหวังว่าพวกคุณบางคนสามารถแบ่งปันความรู้/ประสบการณ์
ประการแรก: หนึ่งคลัสเตอร์ต่อแอปพลิเคชันไม่ใช่วิธีแก้ปัญหา แอปพลิเคชันมีขนาดเล็กมากและทุกทีมมีแอปพลิเคชันประมาณ 3-5 แอปพลิเคชันและต้องการ RAM ประมาณ 6-20GB ในทุกโหนดต่อสภาพแวดล้อม ดังนั้นคลัสเตอร์เดียวจึงไม่ใช่ตัวเลือก
เราวางแผนหนึ่งคลัสเตอร์ต่อสภาพแวดล้อม: dev, staging (qa), prod และอาจสำหรับการดำเนินงานคลัสเตอร์สาธิต
ทุกอย่างจะเป็นไปโดยอัตโนมัติและ IaC พร้อม terraform + ansible (kubespray)
ทุกทีม/ขอบเขตแอปพลิเคชันจะได้รับเนมสเปซเดียว - จากสาเหตุ
คำถาม / ปัญหาของเรา:
การตรวจสอบ
โดยปกติเราใช้ Prometheus และ Grafana เพื่อตรวจสอบการใช้ทรัพยากรพ็อด/คลัสเตอร์ใหม่ควรมีการบันทึกส่วนกลางด้วย (เรากำลังพยายามแก้ไขปัญหาอยู่ในขณะนี้)
สิ่งนี้ใช้ได้สำหรับทีม infra แต่ infra ไม่ต้องการตรวจสอบในระดับแอปพลิเคชัน
มีวิธีการทำงานใด ๆ เพื่อให้ทีมแอพตรวจสอบหรือไม่? ชอบ: คุณ (ทีมแอพ) สามารถตั้งค่าการแจ้งเตือนเกี่ยวกับบันทึก, ซีพียู, การใช้งาน RAM อะไรก็ได้ที่คุณต้องการ "คุณเพียงแค่ต้องเผยแพร่แผนภูมิหางเสือนี้"
ในโลกที่ยิ่งใหญ่ ฉันจะให้ทุกทีม (ดังนั้นทุกเนมสเปซ) มีสแต็คการตรวจสอบของตัวเอง ดังนั้นเรายังสามารถจำกัดพื้นที่เก็บข้อมูลและการใช้ ram+cpu และทุกทีมสามารถใช้ทรัพยากรที่ "สั่งไว้" (ดังนั้นหากทีม มีความต้องการบันทึก / การตรวจสอบจำนวนมาก จำเป็นต้อง "สั่งซื้อ" ทรัพยากรเพิ่มเติม")
พวกเขาสามารถเลือกซอฟต์แวร์ที่เหมาะสมที่สุดได้
โซลูชันอื่นอาจเป็นไปได้ว่าทีม infra ตั้งค่าโซลูชันการตรวจสอบ / บันทึกจากส่วนกลางและจำกัดการเข้าถึง App-Team A ไม่ควรเข้าถึงบันทึก / การใช้ cpu / การใช้ ram / การใช้ดิสก์จาก App-Team B แต่ฉันไม่เห็นวิธีการที่ดีจริงๆ
อาจเป็นตัวเลือกที่ทีม infra ติดตั้งสแต็คนั้น - แต่ทุกอย่างที่ฉันเห็นคือ: เมื่อฉันติดตั้งสแต็กการตรวจสอบบนเนมสเปซเฉพาะ สแต็กต้องการสิทธิ์การเข้าถึงของผู้ดูแลระบบในคลัสเตอร์ นี้ไม่ดีในความคิดของฉัน
ฉันผิดเหรอ?
พื้นที่จัดเก็บ
เรามีที่เก็บกลูต้าและต้องการเก็บไว้ หากทีมต้องการดิสก์ เราจะเพิ่ม "ไดรฟ์ข้อมูลถาวร glusterfs" ที่มีขนาดเฉพาะและ storageClassName เช่น "team1-disk5"
ทีมงานจึงสามารถสร้าง PVC และใช้พื้นที่เก็บข้อมูลได้ ทำงานได้ดีในอดีต
นี่เป็นทางออกที่ดีหรือไม่? มีความคิดอื่น ๆ อีกไหม?
ฉันคิดว่านั่นคือทั้งหมดในขณะนี้ แค่สองคำถามนี้ ความคิดใดที่จะพาฉันไปในทิศทางที่ถูกต้อง?
ขอบคุณ!