Переход из Docker в Kubernetes
Внимание
- Перед переходом необходимо обновить Test IT до последней
docker-версии
, соответствующей выходу сборкиKubernetes
. - Во время перехода на Kubernetes продукт будет недоступен.
- Задайте необходимые значения переменных для проекта:
# 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
- Выполните резервное копирование
docker-версии
Test IT:chmod +x scripts/pre_k8s_backup.sh ./scripts/pre_k8s_backup.sh
- По окончании резервного копирования сохраните путь, по которому расположен архив (он отобразится в сообщении об успешном окончании резервного копирования):
Backup successful! Archive saved at: '/path/to/testit_docker_to_k8s.tar'
- Сравните переменные из
.env
файла (в директории docker-версии продукта) сvalues.yaml:general
в директориях testit_backend и testit_frontend:# testit_frontend/values.yaml general: image: repository: "docker.testit.ru/testit" # <--env.TMS_DOCKER_REGISTRY tag: 4.4.0 #<--env.TMS_CONTAINER_VERSION pullPolicy: IfNotPresent # политика скачивания docker-образов (IfNotPresent, Always, Never) config: CWM_ENABLED: "false" CWM_S3_BUCKET_SECRET_KEY: "secretKey" WIKI_ENABLED: "false" WIKI_S3_BUCKET_SECRET_KEY: "" # testit_backend/values.yaml general: image: repository: "docker.testit.ru/testit" # <--env.TMS_DOCKER_REGISTRY tag: 4.4.0 #<--env.TMS_CONTAINER_VERSION pullPolicy: IfNotPresent # политика скачивания docker-образов (IfNotPresent, Always, Never) config: AUTH_CACHE_CONNECTION_STRING: "auth-cache" # должно соответствовать .authCache.name при стандартном запуске FRONTEND_URL: "http://localhost" RABBITMQ_DEFAULT_USER: "testit" RABBITMQ_DEFAULT_PASS: "password" RABBITMQ_DEFAULT_VHOST: "testitrabbit" RABBITMQ_DEFAULT_HOST: "rabbitmq" RABBITMQ_DEFAULT_PORT: "5672" RABBITMQ_AUTH_MODE: "plain" RABBITMQ_CLIENT_CERT_PATH: "/etc/rabbitmq/ssl/client/testit.pfx" RABBITMQ_CLIENT_CERT_PASSPHRASE: RABBITMQ_SSL_ENABLED: "false" USE_PKCE: "true" INSECURE_REMOTES: "" SYNC_RESULT_LINKS_EVERY_SEC: "120" AWS_CONNECTION_STRING: "http://minio:9000" # должно соответствовать .minio.name при стандартном запуске AWS_ACCESS_KEY: "testitAccessKey" AWS_SECRET_KEY: "testitSecretKey" INFLUX_CONNECTION_STRING: "http://influxdb:8086" # должно соответствовать .influxdb.name при стандартном запуске INFLUX_AUTH_ENABLED: "false" INFLUX_USERNAME: "influx" INFLUX_PASSWORD: "influxpass" TEST_RESULT_LINK_REQUEST_LIFETIME_SEC: "600" DATABASE_TIMEOUT_SEC: "600" THREAD_PER_PROCESSOR: "10" TMS_BUCKET_NAME: "testit" AVATARS_AWS_BUCKET_NAME: "avatars" 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" POSTGRES_USER: "postgres" # данные для подключения к PostgreSQL и названия баз данных POSTGRES_PASSWORD: "F1rstL0g0N!" POSTGRES_DB: "testitdb" POSTGRES_AUTH_DB: "authdb" POSTGRES_AVATARS_DB: "avatarsdb" POSTGRES_BACKGROUND_DB: "backgrounddb" POSTGRES_LICENSE_DB: "licensedb" ASPNETCORE_ACCESS_TOKEN_EXPIRATION_MINUTES: "800" ASPNETCORE_REFRESH_TOKEN_EXPIRATION_MINUTES: "8000" CALCULATION_AUTOTESTS_STABILITYPERCENTAGE_DELAY_SECONDS: "600" INFLUX_DISABLE_UPLOAD: "false" APPLICATION__DEVELOPERMODE: "false"
- Опционально: При необходимости, внесите изменения в отдельном файле
values-override.yaml
, раскомментировав только те строки, которые хотите поменять. Например:# testit_backend/values-override.yaml # ... general: config: # ... # SMTP_LOG_ENABLE: # PERF_MODULE_ENABLED: POSTGRES_USER: "testituser" POSTGRES_PASSWORD: "8wkj9l!0asdk" # POSTGRES_DB: # POSTGRES_AUTH_DB: # POSTGRES_AVATARS_DB: # POSTGRES_BACKGROUND_DB: # POSTGRES_LICENSE_DB: # ... # ... # testit_frontend/values-override.yaml # ... frontend: replicaCount: 3 # resources: {} # ...
- Установите Test IT Kubernetes.
- Задайте необходимые значения переменных для проекта:
# Убедитесь, что вводите правильные значения переменных (testit_backend/values.yaml или testit_backend/values-override.yaml) # minio_vars export AWS_CONNECTION_STRING="http://minio:9000" export AWS_ACCESS_KEY="yourAccessKey" export AWS_SECRET_KEY="yourSecretKey" export TESTIT_BUCKET="testit" export AVATARS_BUCKET="avatars" # postgres_vars export POSTGRES_USER="postgres" export POSTGRES_PASSWORD="password" export POSTGRES_HOST="postgres" export POSTGRES_PORT="5432"
- Восстановите данные из резервной копии, используя пространство имен, в котором создали
Test IT Kubernetes
и путь, который сохранили после успешного выполненияscripts/pre_k8s_backup.sh
:После успешного выполнения скрипта отобразится сообщение:# Задавать эти переменные не обязательно, скрипт может подтянуть из уже запущенных внутренних postgres и minio 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.