The scheduler framework

For a well-designed open-source project, one distinguishing feature is its extensibility. This would help users and developers fulfill their own business needs easily without breaking upstream source codes and contribute back.

Kubernetes provides a series of ways to customize the scheduler, such as multiple schedulers and scheduler extenders. Multiple schedulers can have good performance, but they bring in high maintenance costs, resource competition problems, etc. It also has a steep developing curve—developers need to have a comprehensive understanding of the scheduling process. While the scheduler extender is easy to extend and maintain, it only provides limited extension points and has poor performance. To deal with this dilemma and provide a friendly developing experience, the Kubernetes community adopted a pluggable architecture (the scheduler framework) for the scheduler starting from v1.16.

Get hands-on with 1200+ tech skills courses.