The Kubernetes scheduler is a control plane process which assigns Pods to Nodes. Scheduling refers to making sure that Pods are matched to Nodes so that Kubelet can run them.
kube-scheduler is the default scheduler for Kubernetes and runs as part of the control plane.
Stuff you wanna know:
- A scheduler watches for newly created Pods that have no Node assigned. For every Pod that the scheduler discovers, the scheduler becomes responsible for finding the best Node for that Pod to run on.
- The scheduler determines which Nodes are valid placements for each Pod in the scheduling queue according to constraints and available resources. The scheduler then ranks each valid Node and binds the Pod to a suitable Node.
- Multiple different schedulers may be used within a cluster; kube-scheduler is the reference implementation.
More stuff:
- Docs on Kubernetes Scheduler
- Kubernetes reference documentation on kube-scheduler
- Scheduler performance tuning
- Configuring multiple schedulers
- IBM – Kubernetes Scheduler code walk through
- IBM – Creating a custom scheduler
- Red Hat – Topology-aware scheduling
- Alibaba Cloud – A brief analysis on the implementation of the Kubernetes scheduler