Через nodeSelector, node/pod affinity и anti-affinity, taints/tolerations, resource requests, topologySpreadConstraints (современный способ равномерно растащить реплики по зонам/нодам) и кастомные политики планировщика. Плюс PodDisruptionBudget — чтобы при drain нод не выключить сразу все реплики. Комбинация распределяет нагрузку и обеспечивает отказоустойчивость.