How the Scheduler Works

How the Scheduler Works An architecture diagram generated by Archify. API Server · emits pod creation events · Architecture component API Server emits pod creation events Scheduling Queue · pods awaiting scheduling · Architecture component Scheduling Queue pods awaiting scheduling kube-scheduler · runs the scheduling cycle · Architecture component kube-scheduler runs the scheduling cycle Filter Plugins · rules out unfit nodes · Architecture component Filter Plugins rules out unfit nodes Score Plugins · scores each node · Architecture component Score Plugins scores each node Best Node Selection · highest-scoring node · Architecture component Best Node Selection highest-scoring node Binding Request · updates binding via API server · Architecture component Binding Request updates binding via API server Node · runs the pod · Architecture component Node runs the pod pod creation event pod selection filtering filtered nodes node scores binding pod binding Legend Backend Cloud Message bus

Filter Plugins

  • • NodeResourcesFit: checks node resource capacity
  • • NodeName: checks the pod's nodeName field
  • • NodeUnschedulable: checks node schedulability
  • • TaintToleration: checks taints and tolerations

Score Plugins

  • • NodeResourcesBalancedAllocation: considers resource usage balance
  • • ImageLocality: considers image locality
  • • InterPodAffinity: considers inter-pod affinity
  • • NodeAffinity: considers node affinity