Что происходит при отказе узла
Вопрос
Один рабочий узел внезапно выключился. Что будет с подами на нём и через какое время сервис восстановится?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
kubelet перестаёт обновлять heartbeat (Lease), контроллер узлов через `node-monitor-grace-period` помечает узел недоступным (Unknown)
Поды на узле получают taint `node.kubernetes.io/unreachable`, по умолчанию толерантность 300 секунд, после чего поды вытесняются
ReplicaSet создаёт замену на других узлах, если есть ресурсы
Пока узел не помечен, Service может слать трафик на мёртвые поды, если readiness не обновилась; помогают несколько реплик и anti-affinity
StatefulSet не пересоздаёт под с тем же именем, пока старый не удалён подтверждённо: защита от двух писателей в один том
Ускорение: настроить tolerationSeconds, PodDisruptionBudget, распределение реплик по зонам
Что могут спросить следом
- Почему StatefulSet ведёт себя осторожнее Deployment?
- Как уменьшить время реакции на отказ узла?
Разбор
kubelet регулярно продлевает Lease узла. Когда узел выключился, обновления прекращаются, и контроллер узлов через несколько десятков секунд (параметр node-monitor-grace-period) помечает узел как недоступный и вешает на него taint unreachable. У подов по умолчанию есть толерантность к этому taint на 300 секунд, так что ещё около пяти минут они считаются живыми на этом узле. После этого поды вытесняются, а ReplicaSet создаёт замену на других узлах, если хватает ресурсов. EndpointSlice убирает поды недоступного узла, когда узел помечен, но до этого часть запросов может уходить в никуда, поэтому важны несколько реплик на разных узлах и повторы на клиенте. StatefulSet осторожнее: он не создаст под с тем же именем, пока старый не удалён, чтобы два экземпляра не писали в один том; если узел не вернётся, оператор удаляет под принудительно. Ускорить реакцию можно уменьшив tolerationSeconds, а уменьшить влияние распределением реплик по узлам и зонам через anti-affinity и topology spread.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.