Инструкция по установке
Выпуски Q.Integration
Актуальные версии образов
registry-new.diasoft.ru/release/qintdui:1.53.01-24100805
registry-new.diasoft.ru/release/qintdintegrationservice:24082701
registry-new.diasoft.ru/release/database-qintdintegrationservice:24082701
registry-new.diasoft.ru/release/qmappui:24100802
registry-new.diasoft.ru/release/qiregintegrationflow:24101103
registry-new.diasoft.ru/release/database-qiregintegrationflow:24101103
registry-new.diasoft.ru/release/qiregui:24090405
registry-new.diasoft.ru/release/qintmqmessagebroker:2.33.0-24100302
registry-new.diasoft.ru/release/qintrkaraf:4.4.5-24080902
registry-new.diasoft.ru/release/qmmmsgpackage:2410020
registry-new.diasoft.ru/release/database-qmmmsgpackage:24100201
registry-new.diasoft.ru/release/qmmui:24100301Создание эталонной базы данных проекта
Перед созданием проекта необходимо подготовить эталонную базу данных проекта. Для этого необходимо определить список существующих схем БД, которые будут использоваться в проекте.
Список модулей и их БД:
- QINTD - Дизайнер интеграционных потоков (Q.Integration Designer): qintdintegrationservice
- QIREG - Реестр интеграционных потоков (Q.Integration Registry): qiregintegrationflow
- QMM - Учет сообщений (Q.Message Management): qmmmsgpackage
Список модулей без БД:
- QINTMQ - Приложение является асинхронной системой обмена сообщениями и способно координировать трафик сообщений между процессами в распределенных системах через экземпляр работающего брокера (Q.Artemis): qintmqmessagebroker
- QINTR - Приложение представляет собой модульную среду для запуска интеграционных адаптеров (Q.Karaf): qintrkaraf
Q.Integration Руководство по установке и запуску сервисов
Установка сервисов производится через платформу Q.CMDB (Инструменты для управления конфигурацией стенда, планирование поставок, заполнения справочников ИТ компонент), с помощью инструмента "Поставки".
Подробнее про использование поставок можно прочитать здесь
Настройка конфигурации сервисов
Примеры общих настроек неймспейса:
system-config
ARTEMIS_BROKER_URL: tcp://"URL Артемиса, с портом k8s, проброшенным на 61616"
AUTH_SERVER_CONTEXT: mdpauth
AUTH_SERVER_URL: "URL mdpauth"
AUTH_SERVICE: mdpauth
DB_TEST_QUERY: select 1
JPA_DIALECT: org.hibernate.dialect.PostgreSQL95Dialect // для 2ого архетипа
JPA_DIALECT: org.hibernate.dialect.PostgreSQL95Dialect // для 3ого архетипа
KAFKA_HOST: "Хост Кафки"
KAFKA_PORT: "Порт Кафки"
KAFKA_URL: "URL Кафки"
KUBERNETES_API_HOST: https://kubernetes.default
KUBERNETES_LEGACY_MOD: 'false'
LICENSE_PATH: /share/license
LPATH: /share/config/
MDPSECURITY_DB_CONNECTION_TEST_QUERY: select 1
MDPSECURITY_DB_DATABASE: "Название БД"
MDPSECURITY_DB_DRIVER: org.postgresql.Driver
MDPSECURITY_DB_SCHEMA: mdpsecurity
MDPSECURITY_DB_URL: "URL БД"?currentSchema=mdpsecurity
MESSAGEMANAGEMENT_URL_SERVICE: "URL qmmmsgpackage"
PROBE_API: /actuator/health
PROBE_TYPE: http
QOAUTH_MODE: mdpauth
SERVICE_PORT: '8080'
USE_TOKEN_FOR_FEIGN: 'false'
USE_VAULT: 'false'
system-secret
DB_ADMIN: "Логин админа БД"
DB_ADMINPASSWORD: "Пароль админа БД"
DB_DATABASE: "Логин админа БД"
DB_DRIVER: org.postgresql.Driver
DB_HOST: "Хост БД"
DB_PORT: "Порт БД"
DB_POSTGRESDRIVER: org.postgresql.Driver
DB_QUOTED_IDENTIFIERS: false
DB_TYPE: postgres
DB_URL: "URL БД"
MDPSECURITY_DB_LOGIN: "логин тех.пользователя mdpsecurity"
MDPSECURITY_DB_PASSWORD: "пароль тех.пользователя mdpsecurity"
OAUTH2_CLIENT_ID: "логин"
OAUTH2_CLIENT_SECRET: "пароль"
TECH_PASSWORD: "пароль тех.пользователя"
TECH_USERNAME: "логин тех.пользователя"Примеры необходимых настроек для модулей:
Qintdui
SECURITY_ENABLED: 'false'
SERVICE_NAME: qintdui
Qintdintegrationservice
ADMIN_SERVER_URL: mdpgateway:8080
ALLOW_ALL_FOR_DEBUG: 'true'
AUTH_SERVER_CONTEXT: mdpauth
AUTH_SERVER_URL: http://mdpauth:8080
CONFELEMENT_KIND: '2'
DB_CONNECTION_TEST_QUERY: SELECT 1
DEFAULT_BINDER: kafka
JPA_DIALECT: org.hibernate.dialect.PostgreSQL95Dialect // для 2ого архетипа
JPA_DIALECT: org.hibernate.dialect.PostgreSQL95Dialect // для 3ого архетипа
RIBBON_REFRESH_INTERVAL: '10000'
SERVICE_NAME: qintdintegrationservice
SERVICE_PORT: '8080'
Qmappui
SECURITY_ENABLED: 'false'
SERVICE_NAME: qmappui
Qiregui
SECURITY_ENABLED: 'false'
SERVICE_NAME: qiregui
Qmmmsgpackage
ALLOW_ALL_FOR_DEBUG: 'false'
ASYNC_CLIENT_TIMEOUT: '180'
AUTH_PROVIDER: digital
CONFELEMENT_KIND: '2'
DB_QUOTED_IDENTIFIERS: 'true'
DEBUG: 'true '
DEFAULT_BINDER: kafka
GATEWAY_URL: http://mdpgateway:8080/
JPA_DIALECT: org.hibernate.dialect.PostgreSQL95Dialect // для 2ого архетипа
JPA_DIALECT: org.hibernate.dialect.PostgreSQL95Dialect // для 3ого архетипа
KAFKA_BOOTSTRAP_SERVERS: "URL Кафки"
SECURITY_ENABLED: 'false'
SERVICE_PORT: '8080'
Qmmui
SECURITY_ENABLED: 'false'
SERVICE_NAME: qmmui
Qintmqmessagebroker
ALLOW_ALL_FOR_DEBUG: 'true'
ARTEMIS_BROKER_URL: tcp://localhost:61616
ARTEMIS_USER: artemis
DEFAULT_BINDER: kafka
HIKARI_CONNECTION_TIMEOUT: '30000'
HIKARI_IDLE_TIMEOUT: '600000'
HIKARI_MAXIMUM_POOLSIZE: '50'
HIKARI_MAX_LIFETIME: '1800000'
HIKARI_MINIMUM_IDLE: '10'
LIQUIBASE_ENABLED: 'false'
LOGGING_HIBERNATE_LEVEL: DEBUG
LOGGING_LEVEL: DEBUG
LOGGING_LEVEL_RU_DIASOFT: DEBUG
LOGGING_ROOT_LEVEL: DEBUG
SERVICE_NAME: qintmqmessagebroker
SERVICE_PORT: '8161'Установка сервисов qintmqmessagebroker и qintrkaraf:
qintmqmessagebroker:
При развертывании сервиса нужно в K8S добавить запись в config-map с названием share-entrypoint-volume:
share-entrypoint-volume
qintmqmessagebroker.sh: | /opt/broker/bin/artemis run
Убедиться, что в деплойменте сервиса есть mount к share-entrypoint-volume, иначе сервис не запустится
А также изменить тип service с ClusterIp на NodePort со следующей записью для портов:
service
- name: http
protocol: TCP
port: 8161
targetPort: 8161
nodePort: "свободный порт k8s"
- name: tcp
protocol: TCP
port: 61616
targetPort: 61616
nodePort: "свободный порт k8s"Свободный порт k8s должен быть из диапазона 30000-32767.
Пример:
ports:
- name: http
protocol: TCP
port: 8161
targetPort: 8161
nodePort: 32355
- name: tcp
protocol: TCP
port: 61616
targetPort: 61616
nodePort: 32356
selector:
name: qintmqmessagebroker
clusterIP: 10.10.10.10
clusterIPS:
- 10.10.10.10
type: NodePort
sessionAffinity: None
externalTrafficPolicy: ClusterСделать рестарт деплоймента.
UI сервиса станет доступен по адресу:
http://qintmqmessagebroker."namespace"."название стенда".diasoft.ru:"порт K8S"/
qintrkaraf: При развертывании сервиса нужно в K8S добавить запись в config-map с названием share-entrypoint-volume:
share-entrypoint-volume
qintrkaraf.sh: |
/opt/karaf/bin/karafrunУбедиться, что в деплойменте сервиса есть mount к share-entrypoint-volume, иначе сервис не запустится
А также изменить тип service с ClusterIp на NodePort со следующей записью для портов:
service
- name: http
protocol: TCP
port: 8181
targetPort: 8181
nodePort: "свободный порт k8s"
Свободный порт k8s должен быть из диапазона 30000-32767.
Пример:
spec:
ports:
- name: http
protocol: TCP
port: 8181
targetPort: 8181
nodePort: 30899
selector:
name: qintrkanaf
clusterIP: 10.10.10.10
clusterIPs:
- 10.10.10.10
type: NodePort
sessionAffinity: None
externalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStackСделать рестарт деплоймента.
UI сервиса станет доступен по адресу:
http://qintrkaraf."namespace"."название стенда".diasoft.ru:"порт K8S"/Для работы сервисов Q.Integration потребуется установка актуальных версий платформенных сервисов:
Mdpauth
mdpdepartments
mdpemployee
mdpgateway
mdprefs
mdproles
mdpsenders
mdpsettings
mdpusersАктуальные версии платформенных сервисов запрашивать у команды "Инструменты и платформа Back-end разработки"
Опционально: Для работы бизнес-процессов потребуется установка актуальных версий сервисов Q.BPM:
Qbpmdesigner
qbpmcockpit
dqhumantask
qbpetqbpmplayer
humantaskui
qbpmuiАктуальные версии платформенных сервисов запрашивать у команды "Технологическая платформа Q.BPM"
Распространенные ошибки при запуске сервисов
1.Не стартует сервис артемиса с ошибкой "Using image entrypoint"

Убедиться, что в деплойменте сервиса есть маунт к share-entrypoint-volume:
spec:
volumes:
- name: qintmqmessagebroker
persistentVolumeClaim:
claimName: integration-dev
- name: diasoft-devopsutils
emptyDir: {}
- name: config-folder-volume
emptyDir: {}
- name: share-folder-volume
emptyDir: {}
- name: share-volume
configMap:
name: share-volume
defaultMode: 511
- name: share-config-volume
configMap:
name: share-config-volume
defaultMode: 511
- name: share-entrypoint-volume
configMap:
name: share-entrypoint-volume
defaultMode: 511
- name: wave-list
configMap: {}
memory: 512Mi
volumeMounts:
- name: qintmqmessagebroker
mountPath: /share/pv
- name: diasoft-devopsutils
mountPath: /share/scripts
- name: share-folder-volume
mountPath: /share
- name: config-folder-volume
mountPath: /share/config
- name: share-volume
mountPath: /opt/share
- name: share-config-volume
mountPath: /opt/config
- name: share-entrypoint-volume
mountPath: /share/entrypoint
livenessProbe:
tcpSocket:
port: 8161
initialDelaySeconds: 1280
timeoutSeconds: 5
periodSeconds: 30-
Ошибки сервиса при соединении к артемису - должен быть указан ARTEMIS_URL в конфиге, обязательно с куберовским портом проброшенным к 61616 - пример: tcp://qintmqmessagebroker.int.qrun.diasoft.ru:30854
-
Ошибка пода status 404. Исправить в deployment блок с пробами и привести его к виду:
livenessProbe:
tcpSocket:
port: 8161
initialDelaySeconds: 1200
timeoutSeconds: 5
periodSeconds: 30
successThreshold: 1
failureThreshold: 7
readinessProbe:
tcpSocket:
port: 8161
timeoutSeconds: 5
periodSeconds: 30
successThreshold: 1
failureThreshold: 7
startupProbe:
tcpSocket:
port: 8161
timeoutSeconds: 5
periodSeconds: 30
successThreshold: 1
failureThreshold: 40