Правильный подход: Обновляться строго с предыдущей версии на следующую (Версия N → Версия N+1).Не рекомендуется: Пропускать версии при обновлении (например, Версия N → Версия N+2).
Обновление инфраструктурных сервисов:
- minio: v2024-07-16T23-46-41Z → v2025-07-23T15-54-02Z;
- rabbitmq: v3.13.7 → v4.1.3;
- redis: v6.2.12 → v7.2.10;
- postgres: v14 → v17.
Перед обновлением рекомендуется сделать резервную копию.
Для обновления postgres можно воспользоваться одним из следующих методов:
С помощью скрипта (рекомендуемый метод обновления):
- Распаковать релиз и перенести свои значения в .env;
- Загрузить docker образы:
docker load -i images.tar; - Выключить Проекты VK WorkSpace:
docker compose -p vk down; - Перейти в каталог
scriptsи задать параметры обновления в скриптеupgrade_db.sh, если они отличаются от значений по умолчанию; - Запустить скрипт обновления:
./upgrade_db.sh;
Ручное обновление (альтернативный метод обновления):
- Перед обновлением конфигурационных файлов необходимо:
1. Выключить Проекты VK WorkSpace:
docker compose -p vk down; 2. Поднять только database_service:docker compose -p vk up -d database_service; 3. Сделать резервную копию всех баз:docker exec -it vk-database_service-1 pg_dumpall -U postgres > backup_db_14.sql. - Распаковать релиз и заменить конфигурационные файлы;
- Загрузить docker образы:
docker load -i images.tar; - Развернуть только новую версию database_service:
docker compose -p vk -f docker-compose.yml up -d database_service; - Восстановить данные из резервной копии:
docker exec -i vk-database_service-1 psql -U postgres < backup_db_14.sql;
В результате будет создан новый docker volume vk_database-service-volume-v17.
Если обновление успешно выполнено, то можно переходить к установке новой версии релиза.
После полной проверки работоспособности новой версии, старый docker volume можно удалить: docker volume rm vk_database-service-volume.
Версия helm-чарта: 1.1.
Перед обновлением рекомендуется сделать резервную копию.
Для обновления postgres необходимо выполнить:
-
Перед обновлением необходимо: 1. Выключить все сервисы, кроме sts:
kubectl get deploy -n NAMESPACE -o name | xargs -I % kubectl scale % --replicas=0 -n NAMESPACE; 2. Сделать резервную копию всех баз:kubectl -n NAMESPACE exec postgres-0 -c postgres -- pg_dumpall -U postgres > backup_db_14.sql; 3. Удалить существующий релиз:helm -n NAMESPACE uninstall RELEASE. -
Отключить в values.yaml развертывание сервисов приложения:
yaml frontend: replicas: 0 adminui: replicas: 0 attachment: replicas: 0 automation: replicas: 0 comment: replicas: 0 cwmpublicgateway: replicas: 0 gitintegration: replicas: 0 history: replicas: 0 notification: replicas: 0 notificationhub: replicas: 0 notificationmail: replicas: 0 template: replicas: 0 taskitem: replicas: 0 webhook: replicas: 0 wiki: replicas: 0 workitem: replicas: 0 workspace: replicas: 0 -
Установить с новым релизом только инфраструктурные сервисы:
helm upgrade --install -n NAMESPACE -f PATH-TO-VALUES --wait --create-namespace RELEASE PATH-TO-HELM-CHART; -
Скопировать файл бэкапа в postgres под:
kubectl -n NAMESPACE -c postgres cp backup_db_14.sql postgres-0:/tmp/backup_db_14.sql; -
Восстановить базу:
kubectl -n NAMESPACE exec -it postgres-0 -c postgres -- psql -U postgres < /tmp/backup_db_14.sql; -
Удалить файл резервной копии:
kubectl -n NAMESPACE -c postgres exec -it postgres-0 -- rm /tmp/backup_db_14.sql; -
Убрать настройки из пункта 2 и установить релиз:
helm upgrade --install -n NAMESPACE -f PATH-TO-VALUES --wait --create-namespace RELEASE PATH-TO-HELM-CHART.
Если обновление успешно выполнено, то можно переходить к установке новой версии релиза.
После полной проверки работоспособности новой версии, старый PVC можно удалить: kubectl -n NAMESPACE delete pvc postgres-pv-claim-postgres-0..
Технический писатель: Белова Ирина