ELMA365 On-Premises > Подготовка инфраструктуры > Балансировщик нагрузки / Проксирование баз данных в Kubernetes через DB-Gateway

Проксирование баз данных в Kubernetes через DB‑Gateway

Одним из этапов подготовки инфраструктуры для работы с приложением ELMA365 является настройка проксирования запросов к базам данных. Для этого вы можете использовать инструмент DB‑Gateway.

Он обеспечивает доступ к базам данных Redis, RabbitMQ, PostgreSQL и MinIO через точку входа в Kubernetes‑кластере. Это упрощает процесс подключения к базам‑данных и работу с ними, а также оптимизирует количество инфраструктурных компонентов, необходимых для настройки проксирования.

Установка DB‑Gateway состоит из следующих этапов:

  1. Загрузить helm‑чарт и конфигурационный файл.
  2. Заполнить конфигурационный файл.
  3. Установить чарт DB‑Gateway с помощью Helm в Kubernetes‑кластер.
  4. Подключиться к базам данных.

Шаг 1: Загрузить helm-чарт и конфигурационный файл

Для установки через интернет получите конфигурационный файл values-dbgateway.yaml, выполнив команду:

helm repo add elma365 https://charts.elma365.tech
helm repo update
helm show values elma365/dbgateway > values-dbgateway.yaml

Получение конфигурационного файла для установки в закрытом контуре без доступа в интернет

Шаг 2: Заполнить конфигурационный файл

Заполните конфигурационный файл values-dbgateway.yaml для установки DB‑Gateway:

  1. В параметре ingress.hostname укажите домен (FQDN) или IP‑адрес, по которому доступно приложение ELMA365.
  2. В параметре ingress.path укажите наименование бакета (в хранилище баз данных), в котором хранятся файлы приложения ELMA365.
    Наименование бакета в базе данных должно соответствовать формату DBelma365.

Начало примера

Пример:

  • DBelma365
  • DBelma365-dev
  • DBelma365-prod

конец примера

  1. Следующие изменения нужно внести в конфигурационный файл, если веб‑интерфейс приложения ELMA365 доступен по HTTPS:
  • в параметре ingress.hostname укажите домен (FQDN);
  • в параметре ingress.ingressClassName укажите имя класса ingress‑контроллера;
  • включите поддержку TLS, установив значение true в параметре ingress.tls;
  • раскомментируйте параметры секции ingress.extraTls;
  • для параметра ingress.extraTls.hosts укажите домен (FQDN), по которому доступно приложение ELMA365;
  • для параметра ingress.extraTls.secretName укажите наименование secret типа tls для домена, указанного в ingress.extraTls.hosts.
  1. Если обеспечивается отказоустойчивость, в параметре replicaCount укажите необходимое количество реплик.
  1. В параметре configuration указана конфигурация HAProxy, с которой этот инструмент запустится в Kubernetes‑кластере. В секции backend DB_main конфигурации HAProxy укажите список серверов баз данных, на которые будет перенаправляться пользовательский трафик.

Пример настройки HAProxy для проксирования подключения к хранилищу баз данных

  1. Если вы устанавливаете чарт DB‑Gateway в закрытом контуре без доступа в интернет, заполните параметры подключения к приватному registry.

Пример заполнения параметров для подключения к приватному registry

Шаг 3: Установить чарт DB-Gateway с помощью Helm в Kubernetes-кластер

Установите чарт DB‑Gateway в namespace dbgateway.

Для установки через интернет выполните команду:

helm upgrade --install dbgateway elma365/dbgateway -f values-dbgateway.yaml -n dbgateway --create-namespace

Для установки без доступа в интернет выполните команду:

helm upgrade --install dbgateway ./dbgateway -f values-dbgateway.yaml -n dbgateway --create-namespace

Шаг 4: Подключиться к базам данных

В конфигурационном файле values-elma365.yaml заполните параметры, чтобы приложение ELMA365 подключалось к базам данных через настроенный инструмент DB‑Gateway:

  • параметры для подключения к MinIO:
    • address — укажите elma365-server.your_domain;
    • bucket, region, access key ID, secret access key, upload method и enable SSL — укажите значения согласно параметрам хранилища базы данных, для которого настраивается проксирование;
  • параметры для подключения к Redis:

elma365.db.redisUrl — 'redis://:SecretPassword@redis.dbgateway.svc.cluster.local:6379/0';

  • параметры для подключения к RabbitMQ:

elma365.db.amqpUrl — 'amqp://elma365user:SecretPassword@rabbitmq.dbgateway.svc.cluster.local:5672/0';
elma365.db.amqpManagementUrl — 'http://rabbitmq-stats.dbgateway.svc.cluster.local:15672';

  • параметры для подключения к PostgreSQL:

elma365.db.psqlUrl — 'postgresql://elma365user:SecretPassword@postgresql.dbgateway.svc.cluster.local:5000/elma365?sslmode=disable';
elma365.db.roPsqlUrl — 'postgresql://elma365user:SecretPassword@postgresqlro.dbgateway.svc.cluster.local:5001/elma365?sslmode=disable';

Подробнее о заполнении этих параметров читайте в статье «Изменение параметров ELMA365 Enterprise».