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
      • Подключение Gotenberg
  • Настройка внешних ссылок для перехода из 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

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

Внимание

  • Перед переходом необходимо обновить Test IT до последней docker-версии, соответствующей выходу сборки Kubernetes.
  • Во время перехода на Kubernetes продукт будет недоступен.
  1. Задайте необходимые значения переменных для проекта:
    # minio_vars
    export TMS_BUCKET_NAME=testit
    export AVATARS_AWS_BUCKET_NAME=avatars
    
    # docker_vars
    export COMPOSE_FILE_PATH=/absolute/path/to/testit/docker-compose.yml
    export COMPOSE_PROJECT_PREFIX=prod
    export COMPOSE_NETWORK_NAME=123123_yoonion_network_local
    
  2. Выполните резервное копирование docker-версии Test IT:
    chmod +x scripts/pre_k8s_backup.sh
    ./scripts/pre_k8s_backup.sh
    
  3. По окончании резервного копирования сохраните путь, по которому расположен архив (он отобразится в сообщении об успешном окончании резервного копирования):
    Backup successful! Archive saved at: '/path/to/testit_docker_to_k8s.tar'
    
  4. Сравните переменные из .env файла (в директории docker-версии продукта) с values.yaml:general в директории testit_unichart :
# testit_unichart/values.yaml
frontend:
  enabled: true
  image:
    repository: "docker.testit.ru/tms-frontend/tms-frontend"
    tag: v5.12.0 #<--env.TMS_FRONTEND_CONTAINER_VERSION
  config:
    NGINX_JSON_LOGGING: "true"
    SSL_STRONG_CIPHERS: "false"
webapi:
  enabled: true
  image:
    repository: "registry.testit.software/testit/testit"
    tag: v5.10.1  #<--env.TMS_CONTAINER_VERSION
  config:
    USE_PKCE: "true"
    INSECURE_REMOTES: ""
    SYNC_RESULT_LINKS_EVERY_SEC: "120"
    TEST_RESULT_LINK_REQUEST_LIFETIME_SEC: "600"
    THREAD_PER_PROCESSOR: "10"
    SMTP_ENABLE: "false"
    SMTP_FROM: ""
    SMTP_HOST: ""
    SMTP_PORT: ""
    SMTP_LOGIN: ""
    SMTP_DOMAIN: ""
    SMTP_PASSWORD: ""
    SMTP_CONNECTION: ""
    SMTP_AUTHENTICATION: ""
    SMTP_SKIP_CERTIFICATE: "false"
    SMTP_TLS_VERSION: "tls"
    SMTP_LOG_ENABLE: "false"
    PERF_MODULE_ENABLED: "false"
avatars-api:
  enabled: true
  image:
    repository: "docker.testit.ru/avatars/avatars-api"
    tag: v5.2.8 #<--env.AVATARS_CONTAINER_VERSION
  config:
      AVATARS_AWS_BUCKET_NAME: "avatars"
  auth:
    enabled: true
    image:
      repository: "docker.testit.ru/identity/authwebapi"
      tag: v5.5.0 #<--env.AUTHWEBAPI_CONTAINER_VERSION
    config:
      ASPNETCORE_ACCESS_TOKEN_EXPIRATION_MINUTES: "120"
      ASPNETCORE_REFRESH_TOKEN_EXPIRATION_MINUTES: "88000"
  postgres:
    config:
      POSTGRES_PASSWORD: "F1rstL0g0N!"
      POSTGRES_USER: "postgres"
      POSTGRES_DB: "testitdb"
general:
  config:
    AWS_CONNECTION_STRING: "http://minio:9000"
    AWS_CREATE_BUCKET_IF_REQUIRED: "true"
    TMS_BUCKET_NAME: "testit"
    COMPlus_EnableDiagnostics: "0"
    INFLUX_CONNECTION_STRING: "http://influxdb:8086"
    INFLUX_AUTH_ENABLED: "false" 
    RABBITMQ_DEFAULT_HOST: "rabbitmq"
    RABBITMQ_SSL_ENABLED: "false"
    RABBITMQ_DEFAULT_PORT: "5672"
    RABBITMQ_DEFAULT_VHOST: "testitrabbit"
    RABBITMQ_AUTH_MODE: "plain"
    RABBITMQ_CLIENT_CERT_PASSPHRASE: ""
    RABBITMQ_CLIENT_CERT_PATH: "/etc/rabbitmq/ssl/client/testit.pfx"
    APPLICATION__CONFIGURATION__CUSTOMFILEPATH: "/app/customs/appsettings.json"
    FRONTEND_URL: "http://frontend:8080"
    CHECK_DB_READY: "true"
secrets:
  AWS_ACCESS_KEY: "testitAccessKey"
  AWS_SECRET_KEY: "testitSecretKey"
  INFLUX_USERNAME: "influx" 
  INFLUX_PASSWORD: "influxpass"
  RABBITMQ_DEFAULT_USER: "testit"
  RABBITMQ_DEFAULT_PASS: "password"
  AUTH_CACHE_CONNECTION_STRING: "auth-cache"
  TESTIT_DB_CONNECTION_STRING: >
    Host=postgres;
    Port=5432;
    Database=testitdb;
    Username=postgres;
    Password=F1rstL0g0N!;
    Command Timeout=30;
    Target Session Attributes=any;
    Pooling=true;
    Maximum Pool Size=130;
  BACKGROUND_DB_CONNECTION_STRING: >
    Host=postgres;
    Port=5432;
    Database=backgrounddb;
    Username=postgres;
    Password=F1rstL0g0N!;
    Command Timeout=30;
    Target Session Attributes=any;
    Pooling=true;
    Maximum Pool Size=130;
  GLOBALSEARCH_DB_CONNECTION_STRING: >
    Host=postgres;
    Port=5432;
    Database=globalsearchdb;
    Username=postgres;
    Password=F1rstL0g0N!;
    Command Timeout=30;
    Target Session Attributes=any;
    Pooling=true;
    Maximum Pool Size=130;
  AUTH_DB_CONNECTION_STRING: >
    Host=postgres;
    Port=5432;
    Database=authdb;
    Username=postgres;
    Password=F1rstL0g0N!;
    Command Timeout=30;
    Target Session Attributes=any;
    Pooling=true;
    Maximum Pool Size=130;
  LICENSE_DB_CONNECTION_STRING: >
    Host=postgres;
    Port=5432;
    Database=licensedb;
    Username=postgres;
    Password=F1rstL0g0N!;
    Command Timeout=30;
    Target Session Attributes=any;
    Pooling=true;
    Maximum Pool Size=130;
  AVATARS_DB_CONNECTION_STRING: >
    Host=postgres;
    Port=5432;
    Database=avatarsdb;
    Username=postgres;
    Password=F1rstL0g0N!;
    Command Timeout=30;
    Target Session Attributes=any;
    Pooling=true;
    Maximum Pool Size=130;
  1. Опционально: При необходимости, внесите изменения в отдельном файле values-override.yaml, раскомментировав только те строки, которые хотите поменять. Например:
    # testit_unichart/values-override.yaml
    # ...
    general:
      config:
        #     AUTH_CACHE_CONNECTION_STRING: "auth-cache:6379,ssl=true"
        #     INFLUX_CONNECTION_STRING: "https://influxdb:8086"
        RABBITMQ_SSL_ENABLED: "true"
        RABBITMQ_DEFAULT_PORT: "5671"
        #     APPLICATION__SECURITY__TRUSTEDCERTIFICATELOCATION: "/etc/ssl/certs"
    frontend:
      replicaCount: 3
    #   resources: {}
    # ...
    
  2. Установите Test IT Kubernetes.
  3. Задайте необходимые значения переменных для проекта:
    # Убедитесь, что вводите правильные значения переменных (testit_unichart/values.yaml или testit_unichart/values-override.yaml)
    # minio_vars
    export AWS_CONNECTION_STRING="http://minio:9000"
    export AWS_ACCESS_KEY="testitAccessKey"
    export AWS_SECRET_KEY="testitSecretKey"
    export TESTIT_BUCKET="testit"
    export AVATARS_BUCKET="avatars"
    
    # postgres_vars
    export POSTGRES_USER="postgres"
    export POSTGRES_PASSWORD="F1rstL0g0N!"
    export POSTGRES_HOST="postgres"
    export POSTGRES_PORT="5432"
    
  4. Восстановите данные из резервной копии, используя пространство имен, в котором создали Test IT Kubernetes и путь, который сохранили после успешного выполнения scripts/pre_k8s_backup.sh:
    # Задавать эти переменные не обязательно, скрипт может подтянуть из уже запущенных внутренних postgres и minio
    export NAMESPACE=<my-namespace>
    chmod +x scripts/move_to_k8s.sh
    ./scripts/move_to_k8s.sh $NAMESPACE /path/to/testit_docker_to_k8s.tar
    
    После успешного выполнения скрипта отобразится сообщение:
    Restore process completed successfully! Your Test IT is running on Kubernetes now!
    If you have SSL certificates (trusted-certificates-volume) or any other configurations to apply, you can reference the Test IT docs for guides.
    
Обновлено:
Далее
Переход из Docker в Kubernetes: Test IT 5.2 и более ранние версии