﻿# Установка ELMA365 Standard в KinD

> [HTML Version](install-kubernetes-in-docker.html)

ELMA365 редакции Standard можно установить в Kubernetes-in-Docker (KinD). Данный вариант установки наиболее прост и позволяет запускать локальный кластер Kubernetes с использованием узла Docker‑контейнера. 

Установка состоит из следующих этапов:

1. [Подготовка инфраструктуры](#prepare-infrastructure).

2. [Установка Docker на вашу ОС и проверка его работоспособности](#enable-docker).

3. [Скачивание скрипта установки и заполнение конфигурационного файла](#install-config-file).

4. [Запуск скрипта установки](#run-script).

5. [Проверка успешной установки системы на инфраструктурном уровне](#verification-of-successful-installation).

Перед началом установки ознакомьтесь с [системными требованиями ELMA365 On-Premises](elma365-enterprise-on-premises.md#standard).

**(on-premises-standard-1.png)**

## Шаг 1. Подготовка инфраструктуры

Под инфраструктурой понимаются необходимые для работы приложения ELMA365 On-Premises компоненты:

- Docker;

- PostgreSQL;

- MongoDB;

- RabbitMQ;

- Valkey или Redis;

- S3 (MinIO).

````
начало внимание

````
Клиент самостоятельно разворачивает зависимые компоненты. Все работы по организации отказоустойчивой локальной архитектуры и настройке отказоустойчивости зависимых компонентов также остаются на стороне клиента.

````
конец внимание

````
Встроенные компоненты хранения данных подходят для ознакомления, тестирования и некоторых DEV/TEST-сценариев. Для продуктивной среды рекомендуем использовать внешние PostgreSQL, MongoDB и S3. Если в дополнительных параметрах установки не заданы параметры подключения к внешним базам данных и S3-хранилищу, то автоматически будут использованы встроенные компоненты хранения данных (PostgreSQL, MongoDB, RabbitMQ, Valkey или Redis, MinIO). 

В рамках статьи база данных PostgreSQL и S3-хранилище будут внешними. Подробнее о том, как их развернуть читайте в статьях: [«PostgreSQL»](postgresql.md) и [«MinIO (S3)»](configure-minio.md). 

Для подключения к PostgreSQL и MinIO (S3) используются стандартные строки подключения и пароли.

## Шаг 2. Установка Docker и проверка его работоспособности

1. Установите Docker для вашей операционной системы. О том, как это сделать, читайте в [официальной документации Docker](https://docs.docker.com/engine/install/)

````
начало внимание

````
KinD не поддерживает создание Kubernetes-кластера с Cgroups v2. Подробнее о возможных ошибках читайте в [документации](https://kind.sigs.k8s.io/docs/user/known-issues/#failure-to-create-cluster-with-cgroups-v2).

````
конец внимание

2. ````
Проверьте список контейнеров **Docker**. Для этого выполните команду:

````
sudo docker ps

````
Если **Docker** установлен корректно, то вы увидите пустой список.

3. Запустите тестовый контейнер для проверки функциональности **Docker**, выполнив команду:

````
sudo docker run hello-world

````
При успешном выполнении команды загрузится образ для размещения тестового контейнера \[OBJECT\]. После этого запустится контейнер и появится сообщение:

````
...  
Hello from Docker\!  
This message shows that your installation appears to be working correctly.  
To generate this message, Docker took the following steps:  
1. The Docker client contacted the Docker daemon.  
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.  
...

````
Обратите внимание, тестовый контейнер \[OBJECT\] автоматически завершит работу после выполнения и не отобразится в списке активных контейнеров.

## Шаг 3. Скачивание скрипта установки и заполнение конфигурационного файла

При первом запуске скрипт установки создаст файл конфигурации с наименованием \[OBJECT\] в каталоге, откуда он был запущен.

1. Скачайте и запустите скрипт установка ELMA365 для создания конфигурационного файла, выполнив следующую команду:

````
sudo curl -fsSL -o elma365-docker.sh https://dl.elma365.com/onPremise/latest/elma365-docker-latest \&\& \\  
sudo chmod +x elma365-docker.sh \&\& \\  
sudo ./elma365-docker.sh

````
Адреса для загрузки других версий ELMA365 перечислены в статье [«Ссылки для скачивания дистрибутивов ELMA365 On‑Premises»](links-for-install-elma365.md#links-for-install-kind).

````
начало внимание

````
Для создания нового стартового (default) файла конфигурации переименуйте существующий файл конфигурации \[OBJECT\] и запустите скрипт установки с ключом \[OBJECT\].

````
конец внимание

2. ````
Внесите изменения в подготовленный скриптом установки конфигурационный файл \[OBJECT\]. 

3. Для быстрого старта приложения ELMA365 Standard раскомментируйте и заполните необходимые переменные.

Заполнение основных параметров в конфигурационном файле \[OBJECT\] может выглядеть следующим образом:

**(kubernetes-in-docker-2.png)**

Где:

- \[OBJECT\] — IP-адрес хостовой машины, по которому будет доступно приложение ELMA365 Standard. Подробнее о создании домена (FQDN) читайте в [«Изменение параметров ELMA365 Standard»](change-elma365standard-parameters.md);

- \[OBJECT\] — адрес электронной почты администратора;

- \[OBJECT\] — пароль администратора;

````
начало примечание

````
**Примечание**

Для пароля разрешается применять следующие символы:

- заглавные латинские буквы: от A до Z;

- строчные латинские буквы: от a до z;

- цифры от 0 до 9;

- символы:  -\_.

Зарезервированные (недопустимые) символы:

\! \* ' ( ) ; : @ \& = + \$ , / ? % # \[ \] \{ \}

````
конец примечание

- \[OBJECT\]````
** **— язык установленной системы.

**Важно**: если Docker установлен через Snap, в файле конфигурации раскомментируйте и измените пути до папок или каталогов для параметров \[OBJECT\] и \[OBJECT\], например:

- \[OBJECT\];

- \[OBJECT\].

4. Настройте подключение к внешним базам данных и объектному хранилищу S3.  
  
**Важно:** встроенные компоненты хранения данных подходят для ознакомительных целей и в особых случаях для организации платформ тестирования и разработки. Если в дополнительных параметрах установки не заданы параметры подключения к внешним базам данных и S3-хранилищу, то автоматически будут использованы встроенные компоненты хранения данных (PostgreSQL, MongoDB, RabbitMQ, Valkey или Redis, MinIO).

Для подключения к внешней базе данных PostgreSQL раскомментируйте и заполните параметр \[OBJECT\], указав строку подключения, полученную при [выполнении установки PostgreSQL в шаге 6](postgresql.md#connect-to-postgresql). 

Пример настройки подключения:

**(kubernetes-in-docker-7.png)**

Раскомментируйте и задайте для подключения к S3 параметры \[OBJECT\], \[OBJECT\], \[OBJECT\], \[OBJECT\], \[OBJECT\], \[OBJECT\], \[OBJECT\]. Значения параметров подключения получаются [при настройке объектного хранилища S3](configure-minio.md#connection-to-minio).

По умолчанию включено проксирование запросов к S3. Вы можете отключить его, раскомментировав параметр \[OBJECT\].

Настройки подключения к S3-хранилищу файлов

````
\# Укажите параметры для подключения к S3 и резервного копирования.  
\# По умолчанию трафик к внешнему S3 направляется через прокси-сервер. Чтобы отключить проксирование,   
\# раскомментируйте параметр ELMA365\_DB\_S3\_GATEWAY.   
\# Обратите внимание: для работы прокси необходимо заранее указать параметры подключения к S3 (ELMA365\_DB\_S3\_\*).  
\# Укажите в параметре ELMA365\_DB\_S3\_DUMP\_URL адрес S3 для резервного копирования в формате, если S3 в Kubernetes-кластере  
\# http(s)://minio.<namespace>.svc.<cluster.local>, для внешнего S3 формат http(s)://example.ru:9000  
\# При необходимосте отключите проверку TLS-сертификатов (раскомментировать параметр ELMA365\_SKIP\_SSL\_VERIFY)  
  
\#ELMA365\_DB\_S3\_ADDRESS=example.ru:9000  
\#ELMA365\_DB\_S3\_BUCKET=s3elma365  
\#ELMA365\_DB\_S3\_USER=user  
\#ELMA365\_DB\_S3\_PASSWORD=password  
\#ELMA365\_DB\_S3\_REGION=us-east-1  
\#ELMA365\_DB\_S3\_METHOD=PUT  
\#ELMA365\_DB\_S3\_SSL=false  
\#ELMA365\_DB\_S3\_VIRTUAL\_HOSTED\_STYLE=false  
\#ELMA365\_DB\_S3\_DUMP\_URL=https://example.ru:9000  
\#ELMA365\_SKIP\_SSL\_VERIFY=true  
\#ELMA365\_DB\_S3\_GATEWAY=false
````

````


Заполнение переменных подключения к proxy-серверу

  
Чтобы использовать ваш proxy-сервер для установки и работы ELMA365 Standard, раскомментируйте и заполните переменные секции \[OBJECT\] в конфигурационном файле \[OBJECT\].  


Пример для \[OBJECT\]:  


````
\# -------------------------------------------------------------  
\# Настройка режима работы сервера ELMA365 через прокси-сервер  
\# -------------------------------------------------------------  
HTTPS\_PROXY=http://proxy\_user:proxy\_pass@host:port/  
HTTP\_PROXY=http://proxy\_user:proxy\_pass@host:port/  
NO\_PROXY=localhost,192.168.1.103,127.0.0.0/8,10.0.0.0/8,  
169.254.0.0/16,192.168.0.0/16,100.64.0.0/10,172.16.0.0/12,  
cluster.local,linkerd.svc  
https\_proxy=http://proxy\_user:proxy\_pass@host:port/  
http\_proxy=http://proxy\_user:proxy\_pass@host:port/  
no\_proxy=localhost,192.168.1.103,127.0.0.0/8,10.0.0.0/8,  
169.254.0.0/16,192.168.0.0/16,100.64.0.0/10,172.16.0.0/12,  
cluster.local,linkerd.svc

````
  
Пример для \[OBJECT\]:  


````
\# -------------------------------------------------------------  
\# Настройка режима работы сервера ELMA365 через прокси-сервер  
\# -------------------------------------------------------------  
HTTPS\_PROXY=http://proxy\_user:proxy\_pass@host:port/  
HTTP\_PROXY=http://proxy\_user:proxy\_pass@host:port/  
NO\_PROXY=localhost,example.com,127.0.0.0/8,10.0.0.0/8,  
169.254.0.0/16,192.168.0.0/16,100.64.0.0/10,172.16.0.0/12,  
cluster.local,linkerd.svc  
https\_proxy=http://proxy\_user:proxy\_pass@host:port/  
http\_proxy=http://proxy\_user:proxy\_pass@host:port/  
no\_proxy=localhost,example.com,127.0.0.0/8,10.0.0.0/8,  
169.254.0.0/16,192.168.0.0/16,100.64.0.0/10,172.16.0.0/

````


где:

- \[OBJECT\] — имя пользователя для авторизации на proxy‑сервере;

- \[OBJECT\] — пароль для авторизации на proxy‑сервере;

- \[OBJECT\] — хост используемого proxy‑сервера;

- \[OBJECT\] — порт используемого proxy‑сервера.

Убедитесь, что в переменных \[OBJECT\] и \[OBJECT\] указаны сетевые адреса диапазоны сетевых адресов и домены, которые нужно исключить из использования proxy.

Подробнее о параметрах конфигурационного файла \[OBJECT\] читайте в статье [«Изменение параметров ELMA365 Standard»](change-elma365standard-parameters.md).

## Шаг 4. Запуск скрипта установки ELMA365 Standard

Объём загружаемых файлов во время установки ELMA365 Standard составляет 4-5 ГБ, время установки занимает 10-15 минут.

1. Запустите [загруженный ранее скрипт установки](#install-config-file) с помощью команды: 

````
sudo ./elma365-docker.sh

````
По окончании установки в скрипте отобразится сообщение об успешной установке приложения ELMA365 Standard.

**(kubernetes-in-docker-3.png)**

2. Запустите браузер и откройте страницу входа в приложение ELMA365 Standard по адресу \[OBJECT\]. Параметр \[OBJECT\] был указан в файле конфигурации \[OBJECT\] на шаге [скачивания скрипта установки и заполнения конфигурационного файла](#install-config-file). 

В представленном примере используется следующий адрес страницы входа в приложение ELMA365 Standard: \[OBJECT\]  
**(kubernetes-in-docker-4.png)**

3. В качестве логина и пароля укажите адрес электронной почты администратора и пароль, который использовался в файле конфигурации \[OBJECT\] в параметрах \[OBJECT\] и \[OBJECT\].

В приведённом примере используются:

- **Логин** — **admin@mail.com**;

- **Пароль** — **test**.

4. Нажмите кнопку **Войти в систему**.

Откроется окно активации системы ELMA365.

5. Активируйте систему. Подробнее об этом читайте в статье [«Активация ELMA365 On-Premises»](activate_on_premise.md). 

Установка приложения ELMA365 редакции Standard успешно закончена. Перед началом работы в системе рекомендуем проверить работоспособность модулей.

````
Начало внимание

````
Сохраните файл \[OBJECT\] для последующих обновлений.

````
Конец внимание

## ````
Шаг 5. Проверка успешной установки системы на инфраструктурном уровне

После завершения установки ELMA365 Standard проверьте работоспособность модулей системы. Для этого в терминале, где выполнялась установка системы, выполните команду:

````
sudo docker exec elma365 kubectl get pods

````
Запущенные модули продукта должны находится в статусе **Running** и быть в готовности **1/1**. Модули, жизненный цикл которых не предполагает постоянную активность и является конечным, могут быть в статусе **Completed**.