Контейнеры и оркестрация · проверено по источникам

Поэтапное обновление Kubernetes

RollingUpdate — стратегия Deployment с постепенной заменой старых Pod новыми. Параметр maxSurge задаёт допустимое превышение требуемого числа Pod при замене, maxUnavailable — допустимое сокращение числа доступных копий. Завершающиеся Pod могут временно потреблять ресурсы сверх расчёта с maxSurge.

Также ищут: Deployment RollingUpdate · Kubernetes rolling deployment · постепенное обновление Pod · Kubernetes RollingUpdate

Практический смысл

Почему это важно

Для обновления нужен временный запас: новая копия должна запуститься и пройти проверки, пока часть старых ещё работает. Посчитайте переходные состояния по каждому узлу. Проверяйте также завершение запросов и совместимость версий: достаточное число Pod не доказывает непрерывность сервиса.

Доказательная часть

Что подтверждено

  1. RollingUpdate постепенно увеличивает новый ReplicaSet и уменьшает старый. Параметр maxSurge задаёт допустимое превышение требуемого числа Pod при замене, maxUnavailable — допустимое сокращение числа доступных копий. Завершающиеся Pod могут временно оставаться сверх расчёта с maxSurge.

    Граница применимости: Стратегия RollingUpdate для Deployment Kubernetes.

  2. Непрерывность сервиса требует готовой мощности, корректных проверок, завершения текущих запросов и совместимости одновременно работающих версий. RollingUpdate управляет числом экземпляров, но не доказывает эти условия.

    Граница применимости: Сопоставление стратегии Deployment, готовности Pod и сетевого доступа.

  3. Для трёх экземпляров 25% в maxSurge округляется вверх до одного дополнительного Pod, а 25% в maxUnavailable — вниз до нуля. При таких настройках нужна ёмкость для новой копии до вывода старой.

    Граница применимости: Deployment с тремя требуемыми экземплярами и обоими параметрами 25%; завершающиеся Pod учитываются отдельно.

  4. Параметры maxSurge и maxUnavailable нельзя одновременно установить в ноль. Без дополнительного места и без возможности временно сократить доступное число экземпляров контроллеру нечем выполнить замену.

    Граница применимости: Допустимая конфигурация стратегии RollingUpdate Deployment.

  5. Завершающиеся Pod могут ещё потреблять ресурсы, когда новая копия уже создаётся. Поэтому фактическая потребность во время обновления может превысить расчёт «требуемые экземпляры плюс maxSurge» до завершения старых процессов.

    Граница применимости: Переходные состояния RollingUpdate Deployment; длительность завершения зависит от приложения и его настроек.

  6. Разрешение дополнительного Pod не создаёт место на узле. При maxUnavailable=0 и отсутствии ресурсов для новой копии обновление может остановиться, сохранив старые экземпляры.

    Граница применимости: RollingUpdate при отсутствии допустимого места для дополнительного Pod; прежние экземпляры исправны.

  7. Во время RollingUpdate старые и новые экземпляры могут обслуживать одну систему одновременно. До выпуска нужно проверить совместимость их запросов и общих данных на этом переходе.

    Граница применимости: Параллельное существование старого и нового ReplicaSet при RollingUpdate.

  8. Процентный maxSurge переводят в число дополнительных Pod с округлением вверх, а процентный maxUnavailable — в допустимое число недоступных копий с округлением вниз. Проценты считают от требуемого числа экземпляров Deployment. Ресурсы ещё завершающихся Pod учитывают отдельно.

    Граница применимости: Стратегия RollingUpdate Deployment с процентными параметрами, когда хотя бы один результат округления больше нуля. Случай, когда оба результата равны нулю, здесь не рассматривается; явные maxSurge=0 и maxUnavailable=0 разобраны отдельно.

Граница терминов

Не путать

Deployment Kubernetes

RollingUpdate определяет порядок замены экземпляров, Deployment хранит шаблон и управляет ReplicaSet. Условие завершённого обновления нужно дополнить проверкой работы приложения.

Неизменяемое развёртывание

RollingUpdate управляет последовательностью замены. Неизменяемое развёртывание помогает повторить принятую сборку, но фиксированный образ не делает внешнюю конфигурацию и данные неизменяемыми.

Перед спецификацией

Что проверить

  1. Пересчитайте проценты maxSurge и maxUnavailable в целое число Pod для своего количества экземпляров.
  2. Проверьте место для новой копии на каждом допустимом узле.
  3. Учтите ресурсы ещё завершающихся экземпляров.
  4. Проверьте готовность новой копии и условие допуска её к запросам.
  5. Испытайте завершение старых запросов и соединений.
  6. Проверьте совместную работу старой и новой версий с общими данными.
  7. Повторите расчёт для отказа узла, если обновление должно пережить такой отказ.
  8. Назовите условие остановки, ответственного за решение и проверенный путь отката.
Открытые основания

Первоисточники

  • Официальная документация

    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.

    Открыть первоисточник
Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие