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.

Default pod scheduling

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.

Advanced pod scheduling

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