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

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

Неизменяемое развёртывание — выпуск приложения заменой экземпляров из принятого образа с закреплённым дайджестом. Исправления вносят в новую сборку и объявленную конфигурацию, а не вручную в работающий контейнер. Внешние данные и настройки сохраняют отдельный жизненный цикл.

Также ищут: неизменяемый deploy · replace-not-patch deployment · immutable rollout · Immutable deployment

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

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

Ручная правка файлов внутри экземпляра не создаёт новую сборку: сохранённый образ остаётся прежним. Воспроизводимый выпуск требует не только образа, но и учёта конфигурации и данных. До отката проверьте весь набор: старое приложение может уже не понимать изменённую базу.

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

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

  1. Изменение шаблона Pod в Deployment создаёт новую ревизию и позволяет заменить экземпляры новой сборкой. Это отделяет выпуск от ручного исправления файлов внутри работающего контейнера.

    Граница применимости: Ревизии Deployment и неизменяемые исходные объекты образа OCI.

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

    Граница применимости: Граница образа OCI и отдельно подключаемой конфигурации и ресурсов Pod Kubernetes.

  3. Неизменяемый образ не означает корневую файловую систему только для чтения. Среда выполнения может создать записываемое окружение и подключить изменяемые тома; запрет записи настраивается отдельно.

    Граница применимости: Формат образа OCI и параметры среды выполнения контейнера.

  4. Значения ConfigMap, переданные контейнеру через переменные окружения, не обновляются в уже работающем процессе автоматически. В процедуре выпуска предусмотрите замену Pod и проверку новых значений.

    Граница применимости: ConfigMap Kubernetes как источник переменных окружения. Замена Pod — процедура управляемого выпуска; другие способы обновления проверяются отдельно.

  5. ConfigMap, подключённая как том, может обновиться с задержкой; переменные окружения автоматически не обновляются. Подключение через subPath также не получает таких обновлений. Способ передачи конфигурации влияет на процедуру выпуска.

    Граница применимости: ConfigMap Kubernetes: обычный том, subPath и переменные окружения.

  6. Откат Deployment возвращает шаблон Pod, а не внешние данные. Если новый выпуск изменил их формат, запуск старого образа не доказывает восстановление: совместимость проверяют отдельно.

    Граница применимости: Граница штатного отката Deployment и внешнего состояния приложения.

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

Не путать

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

Неизменяемое развёртывание фиксирует, чем заменяют экземпляры и где делают правки. RollingUpdate задаёт, как постепенно заменить их в Deployment. Первый подход не освобождает место для перехода и не проверяет совместимость данных.

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

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

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

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

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

    Deployments

    Kubernetes · Kubernetes current documentation

    Описывает управление ReplicaSet, стратегии обновления, параметры maxUnavailable и maxSurge, ход выпуска и историю для отката.

    Открыть первоисточник
  • Первичная спецификация

    Open Container Initiative Image Format Specification

    Open Container Initiative · OCI Image Specification, November 2025

    Определяет манифест, индекс, конфигурацию и слои образа, а также дескрипторы объектов с адресацией по содержимому.

    Открыть первоисточник
  • Официальная документация

    Pods

    Kubernetes · Kubernetes current documentation

    Определяет Pod как минимальную единицу размещения с контейнерами на одном узле, общей сетью и возможностью подключать общие тома.

    Открыть первоисточник
  • Официальная документация

    ConfigMaps

    Kubernetes · документация Kubernetes v1.37, страница открыта 6 сентября 2026 года

    Открыт редактором 6 сентября 2026 года, заголовок и версия документа сверены. Внешняя конфигурация; различия переменных окружения, томов и подключений subPath.

    Открыть первоисточник
  • Первичная спецификация

    Open Container Initiative Runtime Specification

    Open Container Initiative · OCI Runtime Specification, November 2025

    Определяет подготовленный пакет контейнера, config.json, окружение процесса и операции жизненного цикла.

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

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

Спасибо!

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