Обновление и откат Kubernetes

Планирование обновления, восстановление после ошибки и откат независимых выпусков приложения и данных.

Краткий словарь
  • Установка Helm (Helm release) — установленный и независимо управляемый набор ресурсов одного чарта.
  • Объект Secret — ресурс Kubernetes для ссылок на конфиденциальные значения; поставочные чарты не владеют самими значениями.
  • Запрос постоянного тома (PersistentVolumeClaim, PVC) — запрос хранилища для встроенного компонента данных.
  • Сетевая политика (NetworkPolicy) — правила допустимых сетевых соединений модулей приложения.
  • Интерфейс хранения контейнеров (Container Storage Interface, CSI) и сетевой интерфейс контейнеров (Container Network Interface, CNI) предоставляются кластером заказчика.

Обновление, восстановление после ошибки и откат

Распакуйте новый пакет и используйте upgrade.sh: без --apply он выполняет read-only проверки и показывает план, а с --apply подготавливает активацию, формирует values, обновляет необходимые релизы и проверяет результат.

  • До применения сохраните совместимую резервную копию и проверьте точные namespace, версию пакета и план обновления
  • При переходе на полностью внешние хранилища upgrade.sh снимает оставшийся massaccess-data, но сохраняет PVC, PV, Secret и резервные копии
  • Откат Helm изменяет только контроллеры и образы; он не обращает вспять изменение схемы или данных
  • Откатывайте massaccess-data только при обратной совместимости формата хранения; иначе применяйте проверенное поступательное изменение или восстановление

Порядок обновления и отката

  1. 1. Проверьте план обновления

    Команда без --apply выполняет read-only проверки и показывает действия. Устраните каждый FAIL; кластер на этом шаге не изменяется.

    bash
    ./bin/upgrade.sh --namespace <namespace>
  2. 2. Примените обновление

    Запускайте запись только после проверки плана, резервной копии и точного namespace. Скрипт обновит только необходимые релизы и затем проверит их состояние.

    bash
    ./bin/upgrade.sh --namespace <namespace> --apply
  3. 3. При необходимости проверьте план отката

    Откат — альтернативная восстановительная операция, а не обязательное продолжение обновления. Сначала получите план без --apply.

    bash
    ./bin/massaccess-k8s rollback-plan \
      --namespace <namespace>
  4. 4. Примените подтверждённый откат приложения

    Подставьте предыдущую совместимую ревизию из истории Helm. --namespace-ack должен точно совпадать с namespace; --apply разрешает изменение только релиза приложения.

    bash
    ./bin/massaccess-k8s rollback \
      --release application \
      --revision <previous-revision> \
      --namespace <namespace> \
      --namespace-ack <namespace> \
      --apply
  5. 5. Повторите итоговую проверку

    После обновления или отката отдельно запустите healthcheck и расследуйте любой ненулевой код завершения.

    bash
    ./bin/healthcheck.sh --namespace <namespace>