Установить ELMA Cortex с использованием Docker Swarm

Эта статья описывает установку с использованием Docker Swarm с доступом в интернет. О возможности установить ELMA Cortex офлайн читайте в статьях об установке в закрытом контуре.

Этот вариант установки подходит для продуктивного окружения, т. к. позволяет масштабировать микросервисы при росте нагрузки.

Перед установкой:

  1. Проверьте, что сервер, на котором выполняется установка, инициализирован как менеджер кластера Docker Swarm. Для этого при создании кластера выполняется команда docker swarm init.
  2. Убедитесь, что вы загрузили установочные файлы и настроили переменные окружения.

Обратите внимание:

Установка ELMA Cortex

Для установки ELMA Cortex с использованием Docker Swarm:

  1. Запустите скрипт установки:

chmod +x install.sh
./install.sh

Если вы используете несколько копий ELMA Cortex, и нужно указать название проекта, используйте параметр:

./install.sh --project-name my-cortex

  1. После выполнения скрипта install.sh некоторым сервисам может потребоваться несколько минут для полного запуска. Чтобы проверить готовность сервисов, выполните команду:

docker service logs -f elma-cortex_gamma-apps

  1. Дождитесь в логах появления сообщения “Application startup complete”.

Создание ключа для MongoDB

При установке ELMA Cortex в скрипте install.sh автоматически генерируется файл ключа аутентификации, который используется для репликации MongoDB, с нужными правами доступа. Он передаётся в Docker Swarm через секрет mongodb-keyfile.

Если нужно создать новый ключ вручную, выполните команды:

openssl rand -base64 756 > mongo.keyfile
sudo chmod 400 mongo.keyfile
 
docker secret create mongo_keyfile mongo.keyfile

Экспорт корневого сертификата Caddy

Если  в качестве режима управления TLS‑сертификатами вы выбрали Internal, экспортируйте корневой сертификат Caddy, чтобы добавить его в список доверенных:

docker exec $(docker ps -q -f name=elma-cortex_caddy) cat /data/caddy/pki/authorities/local/root.crt > caddy_root.crt

Если выполнение команды не удаётся, используйте другой способ:

docker ps -f name=elma-cortex_caddy  # returns <CONTAINER_ID>
docker cp <CONTAINER_ID>:/data/caddy/pki/authorities/local/root.crt ./caddy_root.crt

Обновление ELMA Cortex

При выпуске новой версии ELMA Cortex сохраните текущую конфигурацию и выполните обновление. Подробнее читайте в статье «Обновить ELMA Cortex при использовании Docker Swarm».

Удаление ELMA Cortex

При установке ELMA Cortex в Docker Swarm создаётся стек — экземпляр установки. Вы можете удалить его, а также все данные.

Удаление стека с сохранением данных

Для удаления всех сервисов ELMA Cortex из кластера Docker Swarm без очистки данных можно использовать два способа:

  • запустить скрипт удаления:

chmod +x uninstall.sh
./uninstall.sh

Если вы используете несколько копий ELMA Cortex и указываете название проекта в скриптах:

./uninstall.sh --project-name my-cortex

  • удалить стек из Docker Swarm вручную:

docker stack rm elma-cortex

Удаление стека и данных

Чтобы безвозвратно удалить ELMA Cortex и все его данные:

  1. Удалите стек с помощью команды:

./uninstall.sh

Если вы используете несколько копий ELMA Cortex и указываете название проекта в скриптах:

./uninstall.sh --project-name my-cortex

  1. Дождитесь остановки всех сервисов.
  2. Удалите тома с данными:

docker volume rm $(docker volume ls -q -f name=elma-cortex)

При этом также удалятся данные внутреннего центра сертификации Caddy. Если в качестве режима управления TLS‑сертификатами вы используете Internal, после переустановки нужно повторно экспортировать корневой сертификат Caddy и добавить его в список доверенных.