Обновление Test IT в Kubernetes
Если вы используйте версии Test IT Enterprise до 4.6 включительно, следуйте соответствующим инструкциям на этой странице.
Обновление
Важно
При автономном обновлении предварительно загрузите образы из архива images.tar.gz
в выбранный вами локальный репозиторий. Убедитесь, что кластер имеет доступ к этому репозиторию.
- Создайте новую директорию, скачайте и распакуйте в ней архив с новой поставкой Helm-чарта.
- Сравните содержимое файлов
values.yaml
иvalues-override.yaml
для внешнего и внутреннего интерфейса (frontend и backend) и перенесите пользовательские параметры в соответствующие файлы новой версии. - В командной строке перейдите в директорию с новой версией и выполните следующие команды:
# Обновите приложения бэкенда. helm upgrade --install --reset-values -f testit_backend/values-override.yaml -n <namespace> --create-namespace testit-backend testit_backend/ # Дождитесь начала работы всех модулей бэкенда (все поды в статусе Running). watch -n 1 kubectl -n <namespace> get pods # Обновите внешний интерфейс (фронтенд). helm upgrade --install --reset-values -f testit_frontend/values-override.yaml -n <namespace> --create-namespace testit-frontend testit_frontend/ # Дождитесь начала работы всех модулей внешнего интерфейса watch -n 1 kubectl -n <namespace> get pods -l app=frontend
Как обновлять Test IT до последних версий
- Если вы используете манифесты для Kubernetes, полученные от технической поддержки, вам доступно обновление до версии 4.4 Lupus.
- Чтобы своевременно обновлять Test IT до более поздних версий, требуется использовать helm-чарты. Для получения инструкций обратитесь в техническую поддержку: (support@yoonion.ru).
Переход на Alpine в версии 4.6
Важно
Начиная с версии 4.6.0 в базовых образах сервисов Test IT, а также образах PostgreSQL, InfluxDB, Redis используется версия Alpine. Данное изменение уменьшает фактический размер образов и существенно снижает количество потенциальных уязвимостей контейнеров.
Пользователям PostgreSQL
Если вы используете сервер PostgreSQL из состава поставки Test IT, в процессе обновления для корректной работы сервисов необходимо переиндексировать базы данных в связи с переходом сервера на Alpine и запустить процесс обновления прав доступа (инструкцию читайте ниже).
Обновление прав доступа
- Произведите обновление релиза с включением параметра
postgres.initPermissions
:Параметрhelm upgrade --install testit-backend testit_backend/ -n <namespace> --set postgres.initPermissions=true
postgres.initPermissions
достаточно использовать один раз при обновлении, позже это действие не потребуется. - После окончания процесса обновления Test IT до 4.6.0 можно исключить init-контейнер из релиза, выполнив повторный запуск обновления:
helm upgrade --install testit-backend testit_backend/ -n <namespace> --set postgres.initPermissions=false
Действия, описанные ниже, необходимо выполнить после запуска новой версии Test IT, т.е. после выполнения команд helm upgrade
в обновлении.
- Перейдите в директорию с установочными файлами версии 4.6.0 Kubernetes.
- Определите пространство имен (namespace), в котором запущено приложение Test IT:
kubectl get ns # Здесь будут отображены доступные пространства имен
- Установите право на выполнение скрипта:
chmod +x scripts/k8s_postgres_reindex_alpine.sh
- Запустите скрипт, заменив
namespace
на свое пространство имен:./scripts/k8s_postgres_reindex_alpine.sh <namespace> # Пример: ./scripts/k8s_postgres_reindex_alpine.sh my-testit-namespace
- Убедитесь, что реиндексация баз данных прошла успешно. По окончании работы скрипта отобразится строка:
Reindex completed successfully!
В случае ошибки устраните проблему самостоятельно или свяжитесь с технической поддержкой (support@yoonion.ru).
Подготовка к обновлению до версии 4.5
Пользователям внешних СУБД
Если вы используете внешнюю СУБД (не входящую в поставку), то вместо исполнения скрипта необходимо применить команду очистки базы данных backgrounddb
вручную.
Очистка backgrounddb через СУБД из состава поставки посредством скрипта
- Перед выполнением скрипта очистки background_db перейдите в директорию, в которой находится папка scripts/:
cd my-testit-directory ls # Здесь должна присутствовать папка scripts/
- Определите пространство имен (namespace), в котором запущено приложение Test IT:
kubectl get ns # Здесь будут отображены доступные пространства имен
- Установите право на выполнение скрипта
clean_backgrounddb.sh
:chmod +x scripts/clean_backgrounddb.sh
- Запустите скрипт, заменив
<namespace>
на свое пространство имен:Убедитесь, что очистка прошла успешно. По окончании работы скрипта отобразится строка:scripts/clean_backgrounddb.sh <namespace> # Пример: ./scripts/clean_backgrounddb.sh my-testit-namespace
В случае ошибки устраните проблему самостоятельно или свяжитесь с технической поддержкой (support@yoonion.ru).Done! Please proceed to the next update step
Очистка backgrounddb во внешней СУБД (не входит в поставку)
При использовании внешней СУБД необходимо подключиться к ней, выбрать базу данных backgrounddb
и произвести удаление следующих таблиц:
- public."SearchItems"
- public."Resources"
- public."Projects"
- public."__EFMigrationsHistory
Чтобы удалить background_db, примените команду:
DROP TABLE IF EXISTS public."SearchItems", public."Resources", public."Projects", public."__EFMigrationsHistory";