Перейти к содержанию

Kubernetes — обновление

Принципы

  • Версия всех Helm-чартов определяется тегом образа Wizard — в values.yaml версия не указывается. Для апгрейда достаточно поменять тег.
  • Рекомендуемый способ обновления — Wizard (update / update --force); ручной путь — helm upgrade (см. ниже).
  • Миграции БД (Alembic, init-контейнеры) применяются до старта зависящих сервисов.
  • Выкат — rolling update; критичные сервисы — с проверкой /readyz.

Обновление через Wizard

update — умный апгрейд: пропускает релизы без изменений (сравнивает хеш values + версию), обновляя только реально изменившиеся чарты.

docker run --rm \
  -v ~/.kube/config:/kubeconfig:ro \
  -v ./values.yaml:/values.yaml \
  registry.appsec.global/appsecaigate-release/wizard:<NEW_VERSION> \
  update -f /values.yaml

update --force — принудительный апгрейд всех релизов; нужен для hotfix под тот же semver (когда тег не сменился, а образ перекатан).

docker run --rm ... wizard:<VERSION> update --force -f /values.yaml

Контроль выката:

kubectl rollout status deploy/api-gateway -n aigate
kubectl get pods -n aigate

Ручное обновление

helm upgrade --install aigate <chart> -n aigate -f values.yaml
kubectl rollout status deploy/api-gateway -n aigate

Откат

helm rollback aigate <revision> -n aigate

Миграции БД

Часть изменений схемы необратима (forward-only Alembic-миграции). Перед обновлением сделайте резервную копию (см. Резервное копирование) и проверьте совместимость down-миграций, если планируете откат — helm rollback откатит только манифесты, но не данные.