Иногда плановые работы в Kubernetes (обновления или смена нод) могут вывести сервис из строя. Чтобы этого избежать, используйте PodDisruptionBudget (PDB) — это объект, который ограничивает количество недоступных подов во время "добровольных" операций (voluntary disruptions).
PDB не спасёт от аппаратных сбоев, но сделает вашу инфраструктуру предсказуемой и устойчивой к изменениям. С PDB вы устанавливаете правила: сколько подов минимум должно работать (minAvailable) или сколько максимум может быть недоступно (maxUnavailable). Это напрямую влияет на SLO — если сервис должен быть доступен 99.9%, PDB помогает это гарантировать.
Как PDB работает на практике:
⚪️ Рассчитайте параметры: для сервиса с 5 подами
minAvailable=3 значит, что всегда должно работать минимум 3. maxUnavailable=1 — одновременно падает не больше 1 пода.⚪️ Интегрируйте с другими инструментами: PDB работает с Horizontal Pod Autoscaler (HPA) — чтобы при масштабировании не нарушать лимиты. В CI/CD добавьте проверки PDB перед деплоем.
⚪️ Мониторьте нарушения: используйте Prometheus для алертов на eviction events — если PDB блокирует операцию, это сигнал пересмотреть настройки.
Когда внедрять PDB:
⚪️Для критичных сервисов (базы данных, API), чтобы избежать каскадных сбоев.
⚪️В продакшене: всегда, если используете
rolling updates или node maintenance.⚪️Совет: начните с
minAvailable=1 для простых сервисов, чтобы не заблокировать операции.PodDisruptionBudget — это не опция, а обязательный инструмент для любого продакшн-сервиса в Kubernetes.
В Core 24/7 мы помогаем внедрять такие практики, чтобы ваш бизнес не терял ни секунды.
@DevOpsKaz 😛
