Scheduling Pods on Certain Nodes
PodAffinity lets you say things like:
- i want this pod to run on nodes that have another pod running on it (e.g., running a redis cache pod only on nodes that are running an application pod that uses the cache)
PodAntiAffinity does the inverse
Taints can be applied to nodes. They are essentially labels that signify a node has a certain characteristic. Tolerations are applied to pods, and say "hey there, i am a pod and i can tolerate these taints:..." A good use case is for scheduling ARM-based containers to run on nodes that are tainted with ARM cpus.