Post

Kubernetes - Scheduler Plugins

Explore the different scheduler plugins in Kubernetes.

Kubernetes - Scheduler Plugins

Introduction

  • Kubernetes scheduler uses a set of plugins to determine the scheduling of pods.
  • Below are few examples:
  1. PrioritySort
    • This plugin provides the logic to sort Pods in the scheduling queue based on their priority.
  2. NodeResourcesFit
    • This plugin checks if a node has enough resources to meet the resource requirements of the Pod.
  3. PodTopologySpread
    • This plugin helps to spread Pods evenly across different topology domains, such as regions, zones, nodes, and other user-defined topology domains.
  4. InterPodAffinity
    • This plugin implements rules that govern whether or not Pods should be placed in the same topological domain as other Pods they’re related to based on labels.
  5. NodeUnschedulable
    • This plugin filters out nodes that have their .spec.unschedulable field set to true.
  6. TaintToleration
    • This plugin ensures that there is a match between the taints on a node and the tolerations declared by a Pod.
  7. NodeAffinity
    • This plugin filters nodes based on the node affinity scheduling preferences declared by Pods.
  8. VolumeBinding
    • This plugin checks if a node has the necessary volumes that a Pod requests, and can bind them if necessary.
  9. DefaultPreemption
    • This plugin selects a node where a Pod can run and preempts other Pods on the node if necessary.
  10. NodeResourcesBalancedAllocation
    • This plugin favors nodes that would obtain a more balanced resource usage if the Pod is scheduled there.
  11. NodeResourcesLeastAllocated
    • This plugin favors nodes with fewer allocated resources, promoting better resource utilization and spreading the load more evenly.
  12. DefaultBinder
    • This plugin binds a Pod to a Node. It is the final step in the scheduling process.
This post is licensed under CC BY 4.0 by the author.