Kubernetes - Scheduler Plugins
Introduction
- Kubernetes scheduler uses a set of plugins to determine the scheduling of pods.
- Below are few examples:
PrioritySort
:- This plugin provides the logic to sort Pods in the scheduling queue based on their priority.
NodeResourcesFit
:- This plugin checks if a node has enough resources to meet the resource requirements of the Pod.
PodTopologySpread
:- This plugin helps to spread Pods evenly across different topology domains, such as regions, zones, nodes, and other user-defined topology domains.
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.
NodeUnschedulable
:- This plugin filters out nodes that have their .spec.unschedulable field set to true.
TaintToleration
:- This plugin ensures that there is a match between the taints on a node and the tolerations declared by a Pod.
NodeAffinity
:- This plugin filters nodes based on the node affinity scheduling preferences declared by Pods.
VolumeBinding
:- This plugin checks if a node has the necessary volumes that a Pod requests, and can bind them if necessary.
DefaultPreemption
:- This plugin selects a node where a Pod can run and preempts other Pods on the node if necessary.
NodeResourcesBalancedAllocation
:- This plugin favors nodes that would obtain a more balanced resource usage if the Pod is scheduled there.
NodeResourcesLeastAllocated
:- This plugin favors nodes with fewer allocated resources, promoting better resource utilization and spreading the load more evenly.
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.