Pod scheduling is an internal process that determines placement of new pods onto nodes within the cluster.
The scheduler code has a clean separation that watches new pods as they get created and identifies the most suitable node to host them. It then creates bindings (pod to node bindings) for the pods using the master API.
OpenShift Container Platform comes with a default scheduler that serves the needs of most users. The default scheduler uses both inherent and customization tools to determine the best fit for a pod.
In situations where you might want more control over where new pods are placed, the OpenShift Container Platform advanced scheduling features allow you to configure a pod so that the pod is required or has a preference to run on a particular node or alongside a specific pod by.
Using pod affinity and anti-affinity rules #nodes-scheduler-pod-affinity_nodes-scheduler-pod-affinity.
Controlling pod placement with pod affinity. #nodes-scheduler-pod-affinity_nodes-scheduler-pod-affinity
Controlling pod placement with node affinity. #nodes-scheduler-node-affinity_nodes-scheduler-node-affinity
Placing pods on overcomitted nodes. #nodes-scheduler-overcommit_nodes-scheduler-overcommit
Controlling pod placement with node selectors. #nodes-scheduler-node-selectors_nodes-scheduler-node-selectors
Controlling pod placement with taints and tolerations. #nodes-scheduler-taints-tolerations_nodes-scheduler-taints-tolerations