Установка компонента MyBPM Cons1
После установки компонентов API и WEB платформа ещё не функционирует в полной мере. Необходимо наладить синхронизацию различных её модулей между собой с помощью Apache Kafka. Для этого нужно поднять ещё несколько компонентов MyBPM Cons.
Файл: 30-mybpm-cons1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mybpm-cons1
labels:
app: mybpm-cons1
namespace: crm-prod
spec:
selector:
matchLabels:
app: mybpm-cons1
replicas: 1
template:
metadata:
labels:
app: mybpm-cons1
spec:
nodeSelector:
mybpm-cons1: ok
containers:
- name: main
image: hub.mybpm.kz/mybpm-api-release:4.24.18.7 # здесь нужно указать актуальную версию
imagePullPolicy: IfNotPresent
resources:
requests:
memory: "3Gi"
limits:
memory: "3Gi"
ports:
- containerPort: 8080
env:
- { name: MYBPM_JAVA_OPTS, value: "-Xmx2Gi -Xms2Gi" }
- { name: MYBPM_ALL_KAFKA_NOTIFICATIONS_OFF, value: "true" }
- { name: MYBPM_CONSUMER_DIR, value: "cons1" }
- { name: MYBPM_COMPANY_CODE, value: "greetgo" }
- { name: MYBPM_LICENCE_NUMBER, value: "6120b632-f91a-416d-a7d0-180ffd7ce380" } # поставьте сюда Ваш номер лицензии
- { name: MYBPM_MONGO_SERVERS, value: "mongo:27017" } # поставьте сюда правильный доступ к MongoDB
- { name: MYBPM_ZOOKEEPER_SERVERS, value: "zookeeper-1:2181" } # поставьте сюда правильный доступ к Zookeeper
- { name: MYBPM_KAFKA_SERVERS, value: "kf-1:9092,kf-2:9092,kf-3:9092" } # поставьте сюда правильный доступ к Kafka
- { name: MYBPM_AUX1_HOST, value: "pg-aux1-host" }# поставьте сюда правильный доступ к PG
- { name: MYBPM_AUX1_PORT, value: "5432" }
- { name: MYBPM_AUX1_DB_NAME, value: "mybpm_aux1" }
- { name: MYBPM_AUX1_USER_NAME, valueFrom: { secretKeyRef: { name: pg_mybpm_aux1, key: username } } }
- { name: MYBPM_AUX1_PASSWORD, valueFrom: { secretKeyRef: { name: pg_mybpm_aux1, key: password } } }
- { name: MYBPM_ELASTIC_SEARCH_SERVERS, value: "elastic:9200" }
- { name: MYBPM_NODE_NAME, valueFrom: { fieldRef: { fieldPath: spec.nodeName } } }
- { name: MYBPM_MEMORY_LIMIT, valueFrom: { resourceFieldRef: { containerName: main, resource: limits.memory } } }
- { name: MYBPM_NODE_NAME, valueFrom: { fieldRef: { fieldPath: spec.nodeName } } }
startupProbe:
httpGet: { path: /web/health, port: 8080 }
initialDelaySeconds: 15
failureThreshold: 175
periodSeconds: 4
readinessProbe:
httpGet: { path: /web/health, port: 8080 }
initialDelaySeconds: 10
periodSeconds: 4
livenessProbe:
httpGet: { path: /web/health, port: 8080 }
initialDelaySeconds: 13
periodSeconds: 4
volumeMounts:
- { name: log-dir, mountPath: "/var/log/mybpm" }
volumes:
- name: log-dir
#... определение этого volume
Отличие данного файла от api (10-mybpm-api.yaml тут) в следующем:
- MYBPM_ALL_KAFKA_NOTIFICATIONS_OFF - здесь отключены оповещения - они нужны только для API, где обслуживаются пользователи, а к этому серверу пользователи не подключаются поэтому здесь это не нужно
- MYBPM_ALL_CONSUMERS_OFF - данная переменная убрана, значит получатели кафки запускаются, что нам и нужно здесь
- MYBPM_CONSUMER_DIR=cons1 - эта переменная определяет директорию в конфигурационной среде, в которой настраиваются получатели кафки. Здесь подробнее описана настройка получателей кафки: Настройка кафка-получателей
Масштабирование в ширину - параметр replicas
Обратите внимание, что в yaml-файле есть параметр:
replicas
Он обозначает количество подов, которые надо запустить. Если один под не справляется с текущей нагрузкой, то можно этот параметр увеличить. Тогда Kubernetes запустит дополнительные поды с этим сервером, который будет отдельными потоками обслуживать получатели кафки.
Подробнее смотрите в разделе: