Description:

  • Knows the state of all nodes
  • Can define affinity parameters
    • when a group of pods should run on a same node
    • or anti-affinity

kube-scheduler:

.
  • default scheduler for Kubernetes, custom scheduling component can be implemented
  • select optimal Kubernetes Node to run newlly created or not yet scheduled pods
    • pods can be requirements nodes that meet requirements are called feasible nodes
    • factors: individual and collective resource req, hardward/software/policy constraints, affinity and anti-affinity, data locality, inter-workload interference,…
  • Doesnt launch the pod to node
Node selection in kube-scheduler
  • select a node in 2 steps:
    1. filtering: finds the set of Nodes where it’s feasible
    2. scoring: ranks the remaining nodes to choose the most suitable Pod placement
  • 2 supported ways to configure filtering and scoring:

API:

  • Scheduling configuration