Для работы системы ELMA365 On-Premises требуются СУБД PostgreSQL, MongoDB, Redis, шина событий RabbitMQ и объектное хранилище данных S3. В статье описана установка баз данных и S3-хранилища в Kubernetes-кластер чартом elma365-dbs
. Возможна установка только требуемых компонентов из чарта elma365-dbs
, неиспользуемые можно отключить.
Установка состоит из четырёх этапов:
- Скачивание Helm-чарта и конфигурационного файла.
- Заполнение конфигурационного файла.
- Установка с помощью Helm в Kubernetes-кластер чарта elma365-dbs.
- Подключение к БД и 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
Получение конфигурационного файла для установки в закрытом контуре без доступа в интернет
Предварительно скачайте файл на компьютере с доступом в интернет.
helm repo add elma365 https://charts.elma365.tech
tar -xf elma365-dbs-X.Y.Z.tgz |
Шаг 2: Заполнение конфигурационного файла
Заполните конфигурационный файл values-elma365-dbs.yaml
для установки баз данных и S3-хранилища.
В рамках статьи рассмотрим установку баз данных и S3-хранилища в Kubernetes-кластер с помощью чарта elma365-dbs
. Для этого будут использоваться стандартные строки подключения и пароли, указанные в чарте.
В чарте elma365-dbs
находится раздел global, в котором включается или отключается установка компонентов и разделов чарта. Это нужно для конфигурирования параметров каждого компонента: postgresql, mongodb, rabbitmq, redis, minio, elasticsearch. В статье рассмотрим необходимые параметры для установки баз данных и S3-хранилища разделов этих компонентов.
- В разделе 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
- Параметры конфигурации 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 необходимо:
### Выбор устанавливаемых БД. Где формат repository:
|
- Параметры конфигурации 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 необходимо:
### Выбор устанавливаемых БД. Где формат repository:
|
- Параметры конфигурации 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 необходимо:
### Выбор устанавливаемых БД. Где формат repository:
|
- Параметры конфигурации Redis.
При необходимости в параметре size измените размер хранилища данных, который подбирается индивидуально.
### Выбор устанавливаемых БД.
global:
...
### Настройки Redis
redis:
master:
persistence:
## размер хранилища данных (PVC)
size: 10Gi
## если не определено, используется StorageClass по умолчанию
# storageClass: "-"
...
commonConfiguration: |-
maxclients 20000
replica:
persistence:
## размер хранилища данных (PVC)
size: 10Gi
...
Заполнение параметров кластеризации для Redis
Для настройки отказоустойчивости раскомментируйте и заполните параметры ### Выбор устанавливаемых БД. |
Для подключения к приватному registry необходимо:
### Выбор устанавливаемых БД. Где формат repository:
|
- Параметры конфигурации 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
Для включения поддержки TLS/SSL в MinIO выполните следующие шаги:
### Выбор устанавливаемых БД. где:
Если при создании secret с сертификатом для работы по https вы использовали самоподписанный сертификат с помощью OpenSSL или сертификат, выпущенный локальным удостоверяющем центром, необходимо настроить поддержку доверия пользовательскому сертификату CA. Для встроенных баз данных вы можете сделать это с помощью модуля дополнений Kyverno. |
Для подключения к приватному registry необходимо:
### Выбор устанавливаемых БД. Где формат repository:
|
Шаг 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:
- address —
elma365_your_domain
; - bucket —
s3elma365
; - region —
ru-central-1
; - access key ID —
PZSF73JG72Ksd955JKU1HIA
; - secret access key —
aFDkj28Jbs2JKbnvJH678MNwiz88zKjsuNBHHs
; - upload method —
PUT
; - enable SSL —
No
.
Удаление чарта elma365-dbs с помощью Helm в Kubernetes-кластере
Начало внимание
Перед удалением чарта elma365-dbs
произведите резервное копирование баз данных и S3-хранилища. Удаление чарта elma365-dbs
приведет к полной потере данных приложением ELMA365.
Конец внимание
Выполните удаление чарта elma365-dbs
в namespace elma365-dbs:
helm uninstall elma365-dbs -n elma365-dbs