Kube Scheduler
Kube Scheduler decides which Pod is placed in which Worker Node, it does not handle the placement of the pod, but only decides where it should be placed, Kubelet handles the entire life cycle of the pod
The scheduler looks at the Pod and filters out all the possible nodes it can be placed on, it then calculates the best fit for the pod through a priority function which decides what node would have the most amount of resources left after the scheduling, if more than one nodes have the same scoring the node is chosen at random
Using Resources & Limits we can also define how much minimum amount of resources an application requires, using this information the scheduler schedules the pods on various nodes, if the requested resources are not available on any given node, the pod is not scheduled and set to a pending state
Read More about Kubernetes Scheduling
Multiple Schedulers
We can have multiple schedulers in a Kubernetes cluster and use them to schedule Pods, by specifying which scheduler should be used for the given pod