Внешние подключения
Данная инструкция описывает подключения к следующим внешним сервисам:
- RabbitMQ
- Redis
- PostgreSQL
- MinIO
- InfluxDB
Подключение RabbitMQ в Kubernetes
Проверьте совместимость версии БД
Перед началом работы убедитесь, что версия внешней базы данных RabbitMQ совпадает с версией, указанной в .Values.rabbitmq.image.tag
.
- В файле
values-override.yaml
установите переменные среды в с параметрами внешней базы данных RabbitMQ:
general:
config:
RABBITMQ_DEFAULT_USER: "testit"
RABBITMQ_DEFAULT_PASS: "password"
RABBITMQ_DEFAULT_VHOST: "testitrabbit"
RABBITMQ_DEFAULT_HOST: "external-server" # IP or DNS of outside RabbitMQ server
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"
- В файле
values-override.yaml
отключите контроллер statefulSet для внутренней базы данных RabbitMQ:
rabbitmq:
enabled: false
- Примените изменения с помощью команды:
cd ~/testit
helm -n <namespace> -f values-override.yaml upgrade testit-backend testit_backend/
Redis
Проверьте совместимость версии БД
Перед началом работы убедитесь, что версия внешней базы данных Redis совпадает с версией, указанной в .Values.authCache.image.tag
.
- При настройке конфигурации внешней базы данных Redis убедитесь, что установлен следующий параметр:
appendonly yes
- В файле
values-override.yaml
установите значения переменных среды со строкой подключения внешней базы данных Redis, используя команду:
general:
config:
AUTH_CACHE_CONNECTION_STRING: "redis-external" # IP or DNS of outside Redis server
- В файле
values-override.yaml
отключите контроллер statefulSet для внутренней базы данных Redis:
authCache:
enabled: false
- Примените изменения с помощью команды:
cd ~/testit
helm -n <namespace> -f values-override.yaml upgrade testit-backend testit_backend/
Настройка внешнего подключения базы данных PostgreSQL
Проверьте совместимость версии БД
Перед началом работы убедитесь, что версия внешней базы данных PostgreSQL совпадает с версией, указанной в .Values.postgresql.image.tag
.
- Подготовьте внешнюю базу данных PostgreSQL для каждого из сервисов (testitdb, authdb, avatarsdb, licensedb, globalsearchdb)
yum install postgresql-contrib
psql -U postgres
create database testitdb;
create user tester with encrypted password 'tester';
grant all privileges on database testitdb to tester;
\connect testitdb;
CREATE EXTENSION if not exists "uuid-ossp" SCHEMA public;
create database authdb;
grant all privileges on database authdb to tester;
\connect authdb;
CREATE EXTENSION if not exists "uuid-ossp" SCHEMA public;
create database avatarsdb;
grant all privileges on database avatarsdb to tester;
\connect avatarsdb;
CREATE EXTENSION if not exists "uuid-ossp" SCHEMA public;
create database backgrounddb;
grant all privileges on database backgrounddb to tester;
\connect backgrounddb;
CREATE EXTENSION if not exists "uuid-ossp" SCHEMA public;
create database licensedb;
grant all privileges on database licensedb to tester;
\connect licensedb;
CREATE EXTENSION if not exists "uuid-ossp" SCHEMA public;
create database globalsearchdb;
grant all privileges on database globalsearchdb to tester;
\connect globalsearchdb;
CREATE EXTENSION if not exists "uuid-ossp" SCHEMA public;
CREATE EXTENSION if not exists "pg_trgm" SCHEMA public;
- В файле
values-override.yaml
отключите контроллер statefulSet для внутренней базы данных Postgres и задайте имя хоста и порт внешней базы данных в соответствующем блоке:
postgres:
enabled: false
name: postgres-external # IP or DNS of the external PostgreSQL database
service:
port: 5432
- В файле
values-override.yaml
задайте имя пользователя, пароль и корректные имена баз данных:
general:
config:
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: "F1rstL0g0N!"
POSTGRES_DB: "testitdb"
POSTGRES_AUTH_DB: "authdb"
POSTGRES_AVATARS_DB: "avatarsdb"
POSTGRES_BACKGROUND_DB: "backgrounddb"
POSTGRES_LICENSE_DB: "licensedb"
- Примените изменения с помощью команды:
cd ~/testit
helm -n <namespace> -f values-override.yaml upgrade testit-backend testit_backend/
Подключение MinIO в Kubernetes
Проверьте совместимость версии БД
Перед началом работы убедитесь, что версия внешней базы данных MinIO совпадает с версией, указанной в .Values.minio.image.tag
.
- Во внешнем сервисе MinIO создайте 2 бакета для minio и avatars.minio (например bucket1 и bucket2).
- Создайте ключ доступа (access key) и секретный ключ (secret key) для доступа к каждому из бакетов.
- В файле
values-override.yaml
отключите контроллер statefulSet для внутренней базы данных MinIO:
minio:
enabled: false
- В файле
values-override.yaml
задайте необходимую переменную для подключения к внешней базе данных MinIO:
general:
config:
AWS_CONNECTION_STRING: "http://minio-external:9000" # minio-external could be either IP or DNS
AWS_ACCESS_KEY: "YourAccessKey"
AWS_SECRET_KEY: "YourSecretKey"
TMS_FILE_BUCKET_NAME: "bucket1"
AVATARS_FILE_BUCKET_NAME: "bucket2"
- Примените изменения с помощью команды:
cd ~/testit
helm -n <namespace> -f values-override.yaml upgrade testit-backend testit_backend/
Настройка внешнего подключения базы данных InfluxDB
Проверьте совместимость версии БД
Перед началом работы убедитесь, что версия внешней базы данных InfluxDB совпадает с версией, указанной в .Values.influxdb.image.tag
.
- Если система Test IT запущена, остановите все поды с помощью команды.
- При настройке внешнего сервера InfluxDB убедитесь, что установлены следующие параметры:
max-series-per-database = 0
max-values-per-tag = 0
- В файле
values-override.yaml
отключите контроллер statefulSet для внутренней базы данных InfluxDB:
influxdb:
enabled: false
- В файле
values-override.yaml
задайте необходимую переменную для подключения к внешней базе данных InfluxDB:
general:
config:
INFLUX_CONNECTION_STRING: "http://influxdb-external:8086" # influxdb-external could be either IP or DNSservice
- Примените изменения с помощью команды:
cd ~/testit
helm -n <namespace> -f values-override.yaml upgrade testit-backend testit_backend/