Test ITTest IT
  • Руководство системного администратора
  • Руководство пользователя
  • Загрузить Test IT Enterprise
  • GitHub
  • Руководство по работе с Личным кабинетом
  • Руководство пользователя
  • Личный кабинет Test IT Cloud
  • GitHub
  • Release notes: Test IT Enterprise
  • Release notes: Test IT Cloud
  • Новое в документации
  • Центр помощи
  • Видеокурс по Test IT
  • Часто задаваемые вопросы
  • Спросите нас в Telegram
      
    
  • Руководство системного администратора
  • Руководство пользователя
  • Загрузить Test IT Enterprise
  • GitHub
  • Руководство по работе с Личным кабинетом
  • Руководство пользователя
  • Личный кабинет Test IT Cloud
  • GitHub
  • Release notes: Test IT Enterprise
  • Release notes: Test IT Cloud
  • Новое в документации
  • Центр помощи
  • Видеокурс по Test IT
  • Часто задаваемые вопросы
  • Спросите нас в Telegram
  • Установка

    • Установка в Docker Compose
      • Описание .env-файла
    • Установка в Kubernetes
      • Значения, используемые в файле "values"
  • Настройка внешних подключений и повышение их безопасности

    • О настройке внешних подключений
    • Настройка внешних подключений в Docker Compose

      • Подключение RabbitMQ в Docker Compose
      • Подключение стека Elasticsearch, Logstash и Kibana (ELK) в Docker Compose
      • Подключение MinIO в Docker Compose
      • Подключение Redis в Docker Compose
      • Подключение InfluxDB в Docker Compose
      • Подключение PostgreSQL в Docker Compose
    • Настройка внешних подключений в Kubernetes

      • Подключение RabbitMQ в Kubernetes
      • Подключение MinIO в Kubernetes
      • Подключение Redis в Kubernetes
      • Подключение InfluxDB в Kubernetes
      • Подключение PostgreSQL в Kubernetes
    • Описание микросервисов Test IT
  • Настройка внешних ссылок для перехода из Test IT
  • Перезапуск системы

    • Перезапуск системы в Docker Compose
    • Перезапуск системы в Kubernetes
  • Работа с компонентами Kubernetes

    • Изменение выделенных ресурсов в Kubernetes
    • Замена рабочего узла (ноды) в Kubernetes
    • Настройка SSL для внутренних подключений в Kubernetes
    • Добавление самоподписанных сертификатов в контейнеры (Kubernetes)
    • Переход на новый кластер Kubernetes
    • Перезапуск подов и остановка компонентов Test IT в Kubernetes
    • Переопределение переменных и настроек приложений в Kubernetes
  • Обновление

    • Обновление в Docker Compose

      • Обновление Test IT в Docker Compose
      • Структура файла docker-compose.yml в версии 4.5
    • Обновление в Kubernetes

      • Обновление в Test IT в Kubernetes
      • Обновление старых версий Test IT в Kubernetes
  • Переход из Docker в Kubernetes

    • Переход из Docker в Kubernetes: Test IT 5.3 и более поздние версии
    • Переход из Docker в Kubernetes: Test IT 5.2 и более ранние версии
  • Проверка лицензии

    • Проверка лицензии в Docker Compose
    • Проверка лицензии в Kubernetes
  • Резервное копирование

    • Резервное копирование в Docker Compose
    • Резервное копирование в Kubernetes: Test IT 5.3 и более поздние версии
    • Резервное копирование в Kubernetes: Test IT 5.2 и более ранние версии
  • Логирование пользовательских действий (Docker Compose)
  • Настройка HTTPS

    • Настройка HTTPS в Docker Compose
    • Настройка HTTPS в Kubernetes
  • Добавление самоподписанных сертификатов в контейнеры (Docker Compose)
  • Удаление системы

    • Удаление Test IT в Docker Compose
    • Удаление Test IT в Kubernetes

Обновление Test IT в Kubernetes

Если вы используйте версии Test IT Enterprise до 4.6 включительно, следуйте соответствующим инструкциям на этой странице.

  • Обновление
  • Переход на unichart в версии 5.3.0
  • Подготовка к обновлению до версии 4.5
    • Очистка backgrounddb через СУБД из состава поставки посредством скрипта
    • Очистка backgrounddb во внешней СУБД (не входит в поставку)
  • Обновление

Обновление

Важно

При автономном обновлении предварительно загрузите образы из архива images.tar.gz в выбранный вами локальный репозиторий. Убедитесь, что кластер имеет доступ к этому репозиторию.

  1. Создайте новую директорию, скачайте и распакуйте в ней архив с новой поставкой Helm-чарта.
  2. Сравните содержимое файлов values.yaml и values-override.yaml для внешнего и внутреннего интерфейса (frontend и backend) и перенесите пользовательские параметры в соответствующие файлы новой версии.
  3. В командной строке перейдите в директорию с новой версией и выполните следующие команды:
    # Обновите приложения бэкенда.
    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).

Переход на unichart в версии 5.3.0

Для случаев, когда k8s-версия продукта обновляется с 5.2.x на 5.3.0, необходимо произвести миграцию объектов k8s на новый чарт:

  1. (рекомендуется) Выполните резервное копирование для сохранности данных, запустив scripts/k8s_backup.sh.
  2. Удалите чарты предыдущей версии:
    export NAMESPACE=<my-namespace>
    # Убеждаемся, что в выбранном пространстве имен присутствуют
    helm list -n $NAMESPACE | grep testit
    # Удаляем установленные чарты testit
    # NOTE: Названия чартов приведены для примера и могут отличаться в зависимости от того, какими командами они устанавливались
    helm -n $NAMESPACE uninstall testit-backend
    helm -n $NAMESPACE uninstall testit-frontend
    # Рекомендуется удостовериться, что при удалении чартов не были удалены тома памяти
    kubectl -n $NAMESPACE get pvc
    # NAME                               STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    # auth-cache-pv-claim-auth-cache-0
    # influxdb-pv-claim-influxdb-0
    # minio-pv-claim-minio-0
    # postgres-pv-claim-postgres-0
    # rabbitmq-pv-claim-rabbitmq-0
    
  3. Удалите pvc RabbitMQ.
    kubectl -n $NAMESPACE delete pvc rabbitmq-pv-claim-rabbitmq-0
    
    В поставку 5.3.0 вошел обновленный docker образ для RabbitMQ. В связи с этим, для избегания несовместимости, pvc rabbitmq-pv-claim-rabbitmq-0 нужно удалить. В противном случае при старте возникнет ошибка Error during startup: {error,failed_to_initialize_feature_flags_registry}
  4. Если были какие-либо дополнительные настройки в (testit_backend | testit_frontend)/values-override.yaml - перенесите их в соответствующие поля в testit_unichart/values-override.yaml.
  5. Выполните установку продукта через новый Helm-чарт:
    cd <installation_folder>
    helm upgrade --install -f testit_unichart/values-override.yaml -n <my-namespace> --create-namespace testit testit_unichart/ --wait --timeout 10m
    # Дождитесь начала работы всех компонентов продукта.
    watch -n 1 kubectl -n <my-namespace> get pods
    
  6. Опционально: Выполните восстановление данных (из п.1) с помощью scripts/k8s_restore.sh, если тома памяти не сохранились во время миграции, или замечена потеря данных.

Переход на Alpine в версии 4.6

Важно

Начиная с версии 4.6.0 в базовых образах сервисов Test IT, а также образах PostgreSQL, InfluxDB, Redis используется версия Alpine. Данное изменение уменьшает фактический размер образов и существенно снижает количество потенциальных уязвимостей контейнеров.

Пользователям PostgreSQL

Если вы используете сервер PostgreSQL из состава поставки Test IT, в процессе обновления для корректной работы сервисов необходимо переиндексировать базы данных в связи с переходом сервера на Alpine и запустить процесс обновления прав доступа (инструкцию читайте ниже).

Обновление прав доступа

  1. Произведите обновление релиза с включением параметра postgres.initPermissions:
    helm upgrade --install testit-backend testit_backend/ -n <namespace> --set postgres.initPermissions=true
    
    Параметр postgres.initPermissions достаточно использовать один раз при обновлении, позже это действие не потребуется.
  2. После окончания процесса обновления Test IT до 4.6.0 можно исключить init-контейнер из релиза, выполнив повторный запуск обновления:
    helm upgrade --install testit-backend testit_backend/ -n <namespace> --set postgres.initPermissions=false
    

Действия, описанные ниже, необходимо выполнить после запуска новой версии Test IT, т.е. после выполнения команд helm upgrade в обновлении.

  1. Перейдите в директорию с установочными файлами версии 4.6.0 Kubernetes.
  2. Определите пространство имен (namespace), в котором запущено приложение Test IT:
    kubectl get ns
    # Здесь будут отображены доступные пространства имен
    
  3. Установите право на выполнение скрипта:
    chmod +x scripts/k8s_postgres_reindex_alpine.sh
    
  4. Запустите скрипт, заменив namespace на свое пространство имен:
    ./scripts/k8s_postgres_reindex_alpine.sh <namespace>
    # Пример: ./scripts/k8s_postgres_reindex_alpine.sh my-testit-namespace
    
  5. Убедитесь, что реиндексация баз данных прошла успешно. По окончании работы скрипта отобразится строка:
    Reindex completed successfully!
    

В случае ошибки устраните проблему самостоятельно или свяжитесь с технической поддержкой (support@yoonion.ru).

Подготовка к обновлению до версии 4.5

Пользователям внешних СУБД

Если вы используете внешнюю СУБД (не входящую в поставку), то вместо исполнения скрипта необходимо применить команду очистки базы данных backgrounddb вручную.

Очистка backgrounddb через СУБД из состава поставки посредством скрипта

  1. Перед выполнением скрипта очистки background_db перейдите в директорию, в которой находится папка scripts/:
    cd my-testit-directory
    ls
    # Здесь должна присутствовать папка scripts/
    
  2. Определите пространство имен (namespace), в котором запущено приложение Test IT:
    kubectl get ns
    # Здесь будут отображены доступные пространства имен
    
  3. Установите право на выполнение скрипта clean_backgrounddb.sh:
    chmod +x scripts/clean_backgrounddb.sh
    
  4. Запустите скрипт, заменив <namespace> на свое пространство имен:
    scripts/clean_backgrounddb.sh <namespace> 
    # Пример: ./scripts/clean_backgrounddb.sh my-testit-namespace
    
    Убедитесь, что очистка прошла успешно. По окончании работы скрипта отобразится строка:
     Done! Please proceed to the next update step
    
    В случае ошибки устраните проблему самостоятельно или свяжитесь с технической поддержкой (support@yoonion.ru).

Очистка backgrounddb во внешней СУБД (не входит в поставку)

При использовании внешней СУБД необходимо подключиться к ней, выбрать базу данных backgrounddb и произвести удаление следующих таблиц:

  • public."SearchItems"
  • public."Resources"
  • public."Projects"
  • public."__EFMigrationsHistory

Чтобы удалить background_db, примените команду:

  DROP TABLE IF EXISTS public."SearchItems", public."Resources", public."Projects", public."__EFMigrationsHistory";

Обновление

Важно

При автономном обновлении предварительно загрузите образы из архива images.tar.gz в выбранный вами локальный репозиторий. Убедитесь, что кластер имеет доступ к этому репозиторию.

  1. Создайте новую директорию, скачайте и распакуйте в ней архив с новой поставкой Helm-чарта.
  2. Сравните содержимое файлов values.yaml и values-override.yaml и перенесите пользовательские параметры в соответствующие файлы новой версии.
  3. В командной строке перейдите в директорию с новой версией и выполните следующие команды:
    # Зафиксируйте название пространства имен K8S
    export NAMESPACE=<my-namespace>
    # Обновите приложение командой
    helm upgrade --install --reset-values -f testit_unichart/values-override.yaml -n $NAMESPACE --create-namespace testit testit_unichart/ --wait --timeout 10m
    # Дождитесь начала работы всех компонентов (все поды в статусе Running).
    watch -n 1 kubectl -n $NAMESPACE get pods 
    
Обновлено: