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

Подготовка встроенных баз данных

Для работы системы ELMA365 On-Premises требуются СУБД PostgreSQL, MongoDB, Redis, шина событий RabbitMQ и объектное хранилище данных S3. В статье описана установка баз данных и S3-хранилища в Kubernetes-кластер чартом elma365-dbs. Возможна установка только требуемых компонентов из чарта elma365-dbs, неиспользуемые можно отключить.

Установка состоит из четырёх этапов:

  1. Скачивание Helm-чарта и конфигурационного файла.
  2. Заполнение конфигурационного файла.
  3. Установка с помощью Helm в Kubernetes-кластер чарта elma365-dbs.
  4. Подключение к БД и S3.

Шаг 1: Скачивание Helm-чарта и конфигурационного файла

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

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

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

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

Заполните конфигурационный файл values-elma365-dbs.yaml для установки баз данных и S3-хранилища.

В рамках статьи рассмотрим установку баз данных и S3-хранилища в Kubernetes-кластер с помощью чарта elma365-dbs. Для этого будут использоваться стандартные строки подключения и пароли, указанные в чарте.

В чарте elma365-dbs находится раздел global, в котором включается или отключается установка компонентов и разделов чарта. Это нужно для конфигурирования параметров каждого компонента: postgresql, mongodb, rabbitmq, redis, minio, elasticsearch. В статье рассмотрим необходимые параметры для установки баз данных и S3-хранилища разделов этих компонентов.

  1. В разделе global включите установку баз данных и S3-хранилища.

Убедитесь, что в разделе global для компонентов postgresql, mongodb, rabbitmq, redis, minio в параметре enabled указано значение true.

### Выбор устанавливаемых БД.
global:
  postgresql:
    ## Установка postgres
    enabled: true
  mongodb:
    ## Установка mongoDB
    enabled: true
  redis:
    ## Установка redis
    enabled: true
  rabbitmq:
    ## Установка rabbitmq
    enabled: true
  minio:
    ## Установка minio для S3-хранилища.
    enabled: true
  elasticsearch:
    ## Установка Elasticsearch (Включается для ELMA Bot)
    enabled: false

  1. Параметры конфигурации PostgreSQL.

При необходимости измените параметры:

  • database — наименование базы данных, которая будет создана в PostgreSQL в момент установки;
  • username — наименование пользователя для доступа к базе данных, указанной в database. Пользователь будет создан в PostgreSQL в момент установки;
  • postgresPassword — пароль для пользователя, указанного в username;
  • size — размер хранилища данных, подбирается индивидуально.

### Выбор устанавливаемых БД.
global:
...
### Настройки БД postgres
postgresql:
  auth:
    ## название БД
    database: elma365
    ## пользователь
    username: postgres
    ## пароль БД Postgres
    postgresPassword: pgpassword
    replicationUsername: repl_user
    replicationPassword: repl_password
    enablePostgresUser: true
    password: pgpassword
  primary:
    persistence:
      ## размер хранилища данных (PVC)
      size: 100Gi
      enabled: true
...

Заполнение параметров кластеризации для PostgreSQL

Заполнение параметров подключения к приватному registry для установки в закрытом контуре без доступа в интернет

  1. Параметры конфигурации MongoDB.

При необходимости измените параметры:

  • database — наименование базы данных, которая будет создана в MongoDB в момент установки;
  • username — наименование пользователя для доступа к базе данных, указанной в database. Пользователь будет создан в MongoDB в момент установки;
  • password — пароль для пользователя, указанного в username;
  • size — размер хранилища данных, подбирается индивидуально.

### Выбор устанавливаемых БД.
global:
...
### Настройки MongoDB
mongodb:
  auth:
    ## пользователь
    username: elma365
    ## название БД
    database: elma365
    ## пароль БД
    password: mongopassword
    ## root пароль БД
    rootPassword: mongorootpassword
    replicaSetKey: replicapassword
  persistence:
    ## размер хранилища данных (PVC)
    size: 20Gi
...

Заполнение параметров кластеризации для MongoDB

Заполнение параметров подключения к приватному registry для установки в закрытом контуре без доступа в интернет

 

  1. Параметры конфигурации RabbitMQ.

При необходимости измените параметры:

  • vhost — наименование виртуального хоста, который будет создан в RabbitMQ в момент установки;
  • username — наименование пользователя для доступа к виртуальному хосту, указанному в vhost. Пользователь будет создан в RabbitMQ в момент установки;
  • password — пароль для пользователя, указанного в username;
  • size — размер хранилища данных, подбирается индивидуально.

### Выбор устанавливаемых БД.
global:
...
### Настройки rabbitMQ
rabbitmq:
  auth:
    ## пользователь
    username: elma365
    ## vhost
    vhost: elma365
    ## пароль
    password: rmqpassword
    erlangCookie: zk8Jdo2Kzz4ql
  persistence:
    ## размер хранилища данных (PVC)
    size: 5Gi
...

Заполнение параметров кластеризации для RabbitMQ

Заполнение параметров подключения к приватному registry для установки в закрытом контуре без доступа в интернет

  1. Параметры конфигурации Redis.

При необходимости в параметре size измените размер хранилища данных, который подбирается индивидуально.

### Выбор устанавливаемых БД.
global:
...
### Настройки Redis
redis:
  master:
    persistence:
      ## размер хранилища данных (PVC)
      size: 10Gi
      ## если не определено, используется StorageClass по умолчанию
      # storageClass: "-"
...
  commonConfiguration: |-
    maxclients 20000
  replica:
    persistence:
      ## размер хранилища данных (PVC)
      size: 10Gi
...

Заполнение параметров кластеризации для Redis

Заполнение параметров подключения к приватному registry для установки в закрытом контуре без доступа в интернет

  1. Параметры конфигурации MinIO.

При необходимости измените параметры:

  • rootUser — наименование пользователя для доступа к S3-хранилищу. Пользователь будет создан в MinIO в момент установки;
  • rootPassword — пароль для пользователя, указанного в rootUser;
  • defaultBuckets — наименование бакета, который будет создан в MinIO в момент установки.

Начало внимание

Наименование бакета в S3 должно соответствовать формату s3elma365*.

Примеры:

  • s3elma365;
  • s3elma365-dev;
  • s3elma365-prod.

Конец внимание

  • apiIngress.apiIngress.path — наименование бакета для Ingress, должно совпадать с defaultBuckets;
  • apiIngress.apiIngress.name — наименование домена (FQDN), по которому будет доступно S3 хранилище. В рамках статьи elma365_server.your_domain;
  • size — размер хранилища данных, подбирается индивидуально.

### Выбор устанавливаемых БД.
global:
...
### Настройки minio (S3-хранилище)
minio:
  auth:
    rootUser: "PZSF73JG72Ksd955JKU1HIA"
    rootPassword: "aFDkj28Jbs2JKbnvJH678MNwiz88zKjsuNBHHs"
  ## бакет ELMA365
  defaultBuckets: s3elma365
  ## дополнительные бакеты включаются для ELMA365 + ELMA Bot
  # defaultBuckets: s3elma365,s3elmabot,elmabot-static-files,elmabot-temporary-files
  apiIngress:
    extraHosts:
      - path: /s3elma365
        name: elma365_server.your_domain
...
  persistence:
    ## размер хранилища данных (PVC)
    size: 100Gi
...

Заполнение параметров включения TLS/SSL для MinIO

Заполнение параметров подключения к приватному registry для установки в закрытом контуре без доступа в интернет

 

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

Выполните установку чарта elma365-dbs в namespace elma365-dbs.

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

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

Для офлайн-установки без доступа в интернет перейдите в каталог с загруженным чартом и выполните команду:

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

Шаг 4: Подключение к БД и S3

За наименование домена кластера Kubernetes взято cluster.local.

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

postgresql://elma365:SecretPassword@postgres.elma365-dbs.svc.cluster.local:5432/elma365?sslmode=disable

Строка для подключения к MongoDB:

mongodb://elma365:SecretPassword@mongo.elma365-dbs.svc.cluster.local:27017/elma365?ssl=false&replicaSet=rs0&readPreference=nearest

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

amqp://elma365user:SecretPassword@rabbitmq.elma365-dbs.svc.cluster.local:5672/elma365vhost

Строка для подключения к Redis:

redis://redis.elma365-dbs.svc.cluster.local:6379/0

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

  • addresselma365_your_domain;
  • buckets3elma365;
  • regionru-central-1;
  • access key IDPZSF73JG72Ksd955JKU1HIA;
  • secret access keyaFDkj28Jbs2JKbnvJH678MNwiz88zKjsuNBHHs;
  • upload methodPUT;
  • enable SSLNo.

Удаление чарта elma365-dbs с помощью Helm в Kubernetes-кластере

Начало внимание

Перед удалением чарта elma365-dbs произведите резервное копирование баз данных и S3-хранилища. Удаление чарта elma365-dbs приведет к полной потере данных приложением ELMA365.

Конец внимание

Выполните удаление чарта elma365-dbs в namespace elma365-dbs:

helm uninstall elma365-dbs -n elma365-dbs