nodeAffinity требует/предпочитает узлы по labels; pod anti-affinity разносит реплики относительно уже running Pod'ов (например, не ставить две реплики на одну ноду/AZ).
Разбор
- required vs preferred — жёстко или мягко.
- topologyKey: kubernetes.io/hostname, zone, и т.д.
- Слишком жёсткая anti-affinity → Pending при малом кластере.
- Связка с topology spread constraints — современная альтернатива.
Итог
Affinity управляет размещением для HA и изоляции noisy neighbors.