Обновление и откат 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. Проверьте план обновления
Команда без --apply выполняет read-only проверки и показывает действия. Устраните каждый FAIL; кластер на этом шаге не изменяется.
bash./bin/upgrade.sh --namespace <namespace>2. Примените обновление
Запускайте запись только после проверки плана, резервной копии и точного namespace. Скрипт обновит только необходимые релизы и затем проверит их состояние.
bash./bin/upgrade.sh --namespace <namespace> --apply3. При необходимости проверьте план отката
Откат — альтернативная восстановительная операция, а не обязательное продолжение обновления. Сначала получите план без --apply.
bash./bin/massaccess-k8s rollback-plan \ --namespace <namespace>4. Примените подтверждённый откат приложения
Подставьте предыдущую совместимую ревизию из истории Helm. --namespace-ack должен точно совпадать с namespace; --apply разрешает изменение только релиза приложения.
bash./bin/massaccess-k8s rollback \ --release application \ --revision <previous-revision> \ --namespace <namespace> \ --namespace-ack <namespace> \ --apply5. Повторите итоговую проверку
После обновления или отката отдельно запустите healthcheck и расследуйте любой ненулевой код завершения.
bash./bin/healthcheck.sh --namespace <namespace>