RollingUpdate определяет порядок замены экземпляров, Deployment хранит шаблон и управляет ReplicaSet. Условие завершённого обновления нужно дополнить проверкой работы приложения.
Почему это важно
Для обновления нужен временный запас: новая копия должна запуститься и пройти проверки, пока часть старых ещё работает. Посчитайте переходные состояния по каждому узлу. Проверяйте также завершение запросов и совместимость версий: достаточное число Pod не доказывает непрерывность сервиса.
Что подтверждено
RollingUpdate постепенно увеличивает новый ReplicaSet и уменьшает старый. Параметр maxSurge задаёт допустимое превышение требуемого числа Pod при замене, maxUnavailable — допустимое сокращение числа доступных копий. Завершающиеся Pod могут временно оставаться сверх расчёта с maxSurge.
Граница применимости: Стратегия RollingUpdate для Deployment Kubernetes.
Непрерывность сервиса требует готовой мощности, корректных проверок, завершения текущих запросов и совместимости одновременно работающих версий. RollingUpdate управляет числом экземпляров, но не доказывает эти условия.
Граница применимости: Сопоставление стратегии Deployment, готовности Pod и сетевого доступа.
Для трёх экземпляров 25% в maxSurge округляется вверх до одного дополнительного Pod, а 25% в maxUnavailable — вниз до нуля. При таких настройках нужна ёмкость для новой копии до вывода старой.
Граница применимости: Deployment с тремя требуемыми экземплярами и обоими параметрами 25%; завершающиеся Pod учитываются отдельно.
Параметры maxSurge и maxUnavailable нельзя одновременно установить в ноль. Без дополнительного места и без возможности временно сократить доступное число экземпляров контроллеру нечем выполнить замену.
Граница применимости: Допустимая конфигурация стратегии RollingUpdate Deployment.
Завершающиеся Pod могут ещё потреблять ресурсы, когда новая копия уже создаётся. Поэтому фактическая потребность во время обновления может превысить расчёт «требуемые экземпляры плюс maxSurge» до завершения старых процессов.
Граница применимости: Переходные состояния RollingUpdate Deployment; длительность завершения зависит от приложения и его настроек.
Разрешение дополнительного Pod не создаёт место на узле. При maxUnavailable=0 и отсутствии ресурсов для новой копии обновление может остановиться, сохранив старые экземпляры.
Граница применимости: RollingUpdate при отсутствии допустимого места для дополнительного Pod; прежние экземпляры исправны.
Во время RollingUpdate старые и новые экземпляры могут обслуживать одну систему одновременно. До выпуска нужно проверить совместимость их запросов и общих данных на этом переходе.
Граница применимости: Параллельное существование старого и нового ReplicaSet при RollingUpdate.
Процентный maxSurge переводят в число дополнительных Pod с округлением вверх, а процентный maxUnavailable — в допустимое число недоступных копий с округлением вниз. Проценты считают от требуемого числа экземпляров Deployment. Ресурсы ещё завершающихся Pod учитывают отдельно.
Граница применимости: Стратегия RollingUpdate Deployment с процентными параметрами, когда хотя бы один результат округления больше нуля. Случай, когда оба результата равны нулю, здесь не рассматривается; явные maxSurge=0 и maxUnavailable=0 разобраны отдельно.
Не путать
RollingUpdate управляет последовательностью замены. Неизменяемое развёртывание помогает повторить принятую сборку, но фиксированный образ не делает внешнюю конфигурацию и данные неизменяемыми.
Что проверить
- Пересчитайте проценты maxSurge и maxUnavailable в целое число Pod для своего количества экземпляров.
- Проверьте место для новой копии на каждом допустимом узле.
- Учтите ресурсы ещё завершающихся экземпляров.
- Проверьте готовность новой копии и условие допуска её к запросам.
- Испытайте завершение старых запросов и соединений.
- Проверьте совместную работу старой и новой версий с общими данными.
- Повторите расчёт для отказа узла, если обновление должно пережить такой отказ.
- Назовите условие остановки, ответственного за решение и проверенный путь отката.
Первоисточники
Deployments
Kubernetes · Kubernetes current documentation
Описывает управление ReplicaSet, стратегии обновления, параметры maxUnavailable и maxSurge, ход выпуска и историю для отката.
Открыть первоисточникLiveness, Readiness, and Startup Probes
Kubernetes · Kubernetes current documentation
Разделяет проверки готовности, работоспособности и запуска. Объясняет их действия и риск каскадного отказа при неверной настройке.
Открыть первоисточникService
Kubernetes · Kubernetes current documentation
Описывает сетевой доступ через Service к меняющемуся набору экземпляров приложения и связанные EndpointSlice.
Открыть первоисточникResource Management for Pods and Containers
Kubernetes · Kubernetes current documentation
Разделяет запросы и ограничения CPU и памяти: их учёт при размещении, распределение процессорного времени и применение пределов на узле.
Открыть первоисточникKubernetes Scheduler
Kubernetes · Kubernetes current documentation
Описывает отбор допустимых узлов, оценку вариантов и назначение узла для ещё не размещённого Pod.
Открыть первоисточникOpen Container Initiative Image Format Specification
Open Container Initiative · OCI Image Specification, November 2025
Определяет манифест, индекс, конфигурацию и слои образа, а также дескрипторы объектов с адресацией по содержимому.
Открыть первоисточникConfigMaps
Kubernetes · документация Kubernetes v1.37, страница открыта 6 сентября 2026 года
Открыт редактором 6 сентября 2026 года, заголовок и версия документа сверены. Внешняя конфигурация; различия переменных окружения, томов и подключений subPath.
Открыть первоисточник