Размещение подов: affinity, taints и распределение по зонам
Планировщик по умолчанию раскладывает поды туда, где есть ресурсы, и этого достаточно ровно до первого инцидента, когда все реплики сервиса оказываются на одном узле и падают вместе. Управляют размещением четырьмя механизмами. nodeSelector и node affinity — требования к узлу: тип процессора, наличие видеокарты, зона; бывают жёсткие (required) и мягкие (preferred). Pod anti-affinity — «не ставь мои реплики рядом»: базовая защита от потери всего сервиса вместе с узлом. Topology spread constraints — более гибкая замена anti-affinity: задаёт допустимый перекос распределения по зонам или узлам, позволяя выбирать между строгостью и возможностью запланировать под вообще. Taints и tolerations — со стороны узла: узел отталкивает поды, кроме тех, кто явно согласен на его условия; так резервируют узлы с видеокартами или системные. Главная практическая ошибка — жёсткие правила там, где хватило бы мягких: под перестаёт планироваться и висит в Pending.