ตัวกำหนดตารางเวลา 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 นโยบายทั้งสองนี้ช่วยโหลดปริมาณงานคอนเทนเนอร์ของคอนเทนเนอร์บนหลายเครื่อง เพื่อไม่ให้เครื่องหนึ่งมีกิจกรรมที่รุนแรง ในขณะที่อีกเครื่องหนึ่งไม่ได้ใช้งาน