The k8s scheduler, controls how pods are scheduled onto k8s worker nodes, based on various factors like node affinity, the container operational requirements (CPU, Memory), etc. This component is part of the k8s control plane.
Important
The scheduler doesn’t schedule the pods onto the nodes itself; this is the job of the kubelet. The scheduler only communicates its decisions to the kube-apiserver which then prompts the respective kublet/s to realise the changes.