Развертывание сервиса синхронизации с использованием Kubernetes
Для развертывания сервиса выполните следующие шаги:
1.Предварительно настройте целевое окружение:
a.Кластер Kubernetes. Подробно о том, как настроить и администрировать кластер, читайте на сайте документации Kubernetes.
b.Пакетный менеджер Helm. Установка пакетного менеджера подробно описана на сайте документации Helm.
2.Установите Redis. Установка Redis с использованием Helm детально описана на сайте GitHub.
Пример команды для установки Redis:
helm install --namespace default --set usePassword=false --set=slave.persistence.enabled=false --set master.persistence.enabled=false --set cluster.enabled=false redis bitnami/redis
В этом примере:
•default — наименование namespace, куда будет установлен Redis;
•redis — произвольное имя для экземпляра Redis.
3.Установите модуль Exchange Listener. Для установки модуля скачайте helm-пакет. Доступные параметры helm-пакета описаны в таблице ”Доступные параметры helm-пакета Exchange Listener”.
Важно
Для более новых версий Kubernetes укажите версию API, добавив параметр:
--set apiVersion=apps/v1
Пример команды для установки Exchange Listener с использованием адреса и относительного пути сервиса:
helm install --set env.host=<redis_host> --set ApiUrl=<kubernetes_url> --set ingress.path=<listener_path> --set apiVersion=apps/v1 --namespace <namespace name> exchangelistener </path/to/helm/exchangelistener.tgz>
В этом примере:
•<redis_host> — адрес Redis-сервера;
•<kubernetes_url> — URL или IP-адрес Kubernetes.
Адрес сервиса Exchange Listener: <kubernetes_url>/<listener_path>.
Чтобы проверить доступность, сделайте запрос по адресу: <kubernetes_url>/<listener_path>/api/listeners/status (Рис. 1).
Пример команды для установки Exchange Listener с использованием Node IP и адреса порта:
helm install --set env.host=<redis_host> --set service.type=<node_IP> --set service.nodePort=<node_port> --set apiVersion=apps/v1 --namespace <namespace name> exchangelistener </path/to/helm/exchangelistener.tgz>
Адрес сервиса Exchange Listener — <node_IP:node_port>.
Чтобы проверить доступность, сделайте запрос по адресу: <node_IP:node_port>/api/listeners/status (Рис. 1).
Доступные параметры helm-пакета Exchange Listener
Параметр | Описание параметра | Значение по умолчанию |
---|---|---|
replicaCount | Количество StatefulSet-обработчиков. | 2 |
service.type | Тип сервиса. Детально типы сервисов Kubernetes описаны в документации Kubernetes. | ClusterIP |
service.nodePort | Если параметр service.type равен NodePort, то в этом параметре указывается внешний порт сервиса. Детально тип NodePort описан в документации Kubernetes. |
|
env.host | Адрес хоста Redis. |
|
env.port | Порт хоста Redis. | 6379 |
env.base | Номер базы данных Redis. | 0 |
ingress.enabled | Использование переопределения адресов при помощи ingress. | true |
ApiUrl | Адрес сервиса при ingress.enabled=true. |
|
ingress.path | Относительный путь сервиса. |
|
log4Net.level | Уровень логирования по умолчанию. | Info |
Системные требования к серверам
По умолчанию обработка запросов производится отдельными узлами типа StatefulSet из расчета 1 реплика обработчика на 40 активных почтовых ящиков. За количество реплик отвечает параметр replicaCount. При увеличении планового количества почтовых ящиков увеличьте количество обработчиков, указав необходимое значение при установке.
Для одного обработчика необходимо 30% процессорного времени 1Гц процессора и 850 Мб оперативной памяти (дисковое хранилище не используется).
Возможна настройка автоматического масштабирования по количеству активных подписок. Для получения подробностей по организации таких сценариев отправьте запрос на электронный адрес support@creatio.com.
Смотрите далее