Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

ตัวกำหนดตารางเวลา Kubernetes

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

ตัวจัดกำหนดการเป็นส่วนประกอบขนาดใหญ่ของ Kubernetes ซึ่งแยกออกจากเซิร์ฟเวอร์ API ที่จัดการคลัสเตอร์ ไม่ใช่ตัวควบคุมการรับเข้าเรียน ซึ่งจริงๆ แล้วเป็นโค้ดปลั๊กอินที่สกัดกั้นคำขอไปยัง Kubernetes API ผู้ดูแลระบบ Virtualization จะเห็นการจัดกำหนดการ Kubernetes เป็นคอนเทนเนอร์ที่เทียบเท่ากับการตั้งเวลา VM เช่นเดียวกับ VMware Distributed Resource Scheduler

Kubernetes ปรับใช้คอนเทนเนอร์ที่จัดเป็นพ็อดที่จัดกลุ่มตามตรรกะของทรัพยากรที่เรียกว่าโหนด ข้อกำหนดเฉพาะสำหรับปริมาณงานถูกกำหนดผ่าน API ตัวจัดกำหนดการ Kubernetes พยายามจับคู่พ็อดแต่ละรายการที่สร้างโดย Kubernetes กับชุดทรัพยากรไอทีที่เหมาะสมบน Node นอกจากนี้ยังสามารถแจกจ่ายสำเนาของพ็อดในโหนดต่างๆ เพื่อความพร้อมใช้งานสูงได้ หากต้องการฟีเจอร์นั้น

หากตัวจัดกำหนดการ Kubernetes ไม่พบฮาร์ดแวร์ที่เหมาะสมกับข้อกำหนดและข้อกำหนดของ Pod ตั้งแต่กฎความสัมพันธ์และการต่อต้านความสัมพันธ์ไปจนถึงคุณภาพของการตั้งค่าบริการ พ็อดนั้นจะไม่ถูกวางกำหนดการไว้ และตัวจัดกำหนดการจะลองอีกครั้งจนกว่าเครื่องจะพร้อมใช้งาน


การกำหนดค่า

ตัวกำหนดตารางเวลา Kubernetes สามารถกำหนดค่าได้ด้วยสองนโยบายที่แตกต่างกัน:PriorityFunction และ FitPredicate นอกจากนี้ยังสามารถเลือกโหนดแบบสุ่ม ซึ่งเป็นวิธีการกำหนดคอนเทนเนอร์ให้กับทรัพยากรโดยมีค่าใช้จ่ายในการคำนวณน้อยที่สุด

นโยบาย FitPredicate เป็นไปตามกฎที่จำเป็น ในขณะที่พยายามตรวจหาป้ายกำกับบน Kubernetes Node หรือตรวจหาจำนวนทรัพยากรที่ร้องขอโดยคอนเทนเนอร์ที่ทำงานอยู่แล้วในเครื่องที่กำหนด FitPredicate ช่วยตรวจสอบว่าคอนเทนเนอร์เกินความจุของทรัพยากรฮาร์ดแวร์ที่กำหนดหรือไม่ หากผู้ใช้เลือกศูนย์ทรัพยากร ตัวจัดกำหนดการจะเพิ่มพ็อดอื่นไปยังโหนดได้เสมอ

PriorityFunction จะใช้เมื่อตัวจัดกำหนดการได้ตรวจสอบหลายระบบแล้วว่าเหมาะสมที่สุดแล้ว หากตัวจัดกำหนดการพบตัวเลือกหลายตัวที่สามารถรองรับ Pod ได้ PriorityFunction จะนำตัวจัดกำหนดการเพื่อจัดอันดับเครื่องจักรตามความเหมาะสมที่สุด ตัวอย่างเช่น โหนด 3 โหนดตรงกับความต้องการของ Pod ใหม่ แต่โหนดหนึ่งมีทรัพยากรฟรีมากกว่าโหนดอื่นๆ ดังนั้นจึงเหมาะสมที่สุด

ในสภาพแวดล้อม Kubernetes นโยบายทั้งสองนี้ช่วยโหลดปริมาณงานคอนเทนเนอร์ของคอนเทนเนอร์บนหลายเครื่อง เพื่อไม่ให้เครื่องหนึ่งมีกิจกรรมที่รุนแรง ในขณะที่อีกเครื่องหนึ่งไม่ได้ใช้งาน