💻 Kubernetes 1.35: Новый уровень эффективности с перезапуском подов на месте
🚀 В версии Kubernetes 1.35 представлена новая стабильная функция — In-Place Restart всех контейнеров в поде. Это позволяет перезапустить все контейнеры внутри существующего пода без его удаления и повторного создания.
💬 Что это и зачем нужно?
Раньше для перезапуска приложения часто использовали kubectl delete pod или модифицировали под через kubectl rollout restart для Deployment. Это приводило к полному пересозданию пода: смене IP, повторному прохождению стадий планирования и инициализации, что не всегда эффективно.
In-Place Restart даёт точечный контроль: вы можете принудительно перезапустить контейнеры внутри пода, сохранив его идентичность (имя, IP-адрес, привязку к ноде).
💬 Основные сценарии использования
— Обновление конфигурации приложения без пересоздания пода
Например, если ConfigMap или Secret, подключенные как volume, были обновлены, новый In-Place Restart позволит применить изменения к уже работающему поду.
— Перезапуск "зависшего" приложения
Если контейнеры в поде работают, но приложение внутри них перестало отвечать (например, из-за утечки памяти или deadlock), можно инициировать их перезапуск без прерывания сетевого соединения к поду.
— Горячее обновление зависимостей внутри контейнера
Для некоторых сценариев (например, перезагрузка внутренних процессов или динамических библиотек) теперь не нужно уничтожать весь под.
💬 Как это работает
Механизм реализован через новое поле restartAllContainers в PodSpec. При его установке в true kubelet на ноде перезапускает все контейнеры в поде (кроме тех, что имеют политику перезапуска Never).
💬 Ограничения и особенности
— Перезапуск не влияет на volumes: данные сохраняются.
— IP-адрес пода и его привязка к ноде остаются неизменными.
— Под должен быть в состоянии Running для успешного перезапуска.
— Если перезапуск не удаётся (например, новый образ недоступен), под может перейти в состояние Error.
In-Place Pod Restart в Kubernetes 1.35 даёт более тонкий и эффективный инструмент управления жизненным циклом контейнеров. Это особенно полезно для stateful-приложений, чувствительных к смене IP, и для оперативного реагирования на проблемы без полного пересоздания инфраструктуры пода.
➡️ Подробнее в официальном блоге Kubernetes
#заметкиИнженера
Post #2631
1.6K

- 👍 9
- 🔥 4
- ❤ 2
- 👏 1