Установка#
Установка в кластере#
Установка компонент SyTester с помощью helm#
Полное описание values для helm описаны в файле: values.yml
Перейти в директорию conf/helm/syte
Выполнить команду получения yaml конфигурации, предварительно задав в команде следующие параметры:
helm template syte . -f values.yaml --set-string cm.db.url=<databaseUrl> --set-string cm.db.schema=<schemaName> --set-string cm.db.username=<databaseUsername> --set-string cm.db.password=<databasePassword> --set-string depl.image.registry=<registryUrl> --set-string depl.image.repository=<repositoryPath> --set-string depl.image.tag=<dockerTag> --set-string svc.elbId=<elbId> > syte-yaml-configs.yamlПараметры
<databaseUrl> - ссылка на базу данных <schemaName> - имя схемы в базе данных <databaseUsername> - логин для базы данных <databasePassword> - пароль для базы данных <registryUrl> - url адрес docker registry <repositoryPath> - путь до docker образа в репозитории docker registry <dockerTag> - тег docker образа <elbId> - id внешнего балансировщика для доступа к UI из интернета (запращивать у администраторов кластера)Пример:
helm template syte . -f values.yaml --set-string cm.db.url="jdbc:postgresql://localhost:5432/sammy?currentSchema=myschema&useSSL=false&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=Europe/Moscow&allowPublicKeyRetrieval=true" --set-string cm.db.schema=myschema --set-string cm.db.username=postgres --set-string cm.db.password=postgres --set-string depl.image.registry=registry.test.ru --set-string depl.image.repository=syte --set-string depl.image.tag=v1.1 --set-string svc.elbId="2c069ca7-bcca-4ca2-aa0b-9ed912f92b92" > syte-yaml-configs.yamlУстановить полученную конфигурацию в кластер k8s выполнив команду:
kubectl --kubeconfig=<путь до kubeconfig> apply -f syte-yaml-configs.yaml
Автоматизированная установка сервиса с использованием Deploy Tools#
Ниже описана процедура интеграции с рекомендованным АО «СберТех» продуктом Platform V Synapse Service Mesh (SSM) компонентом SynapseInstaller (SMDL). На усмотрение пользователя может быть настроена интеграция с аналогичным по функциональности продуктом от других производителей.
Для установки дистрибутива необходимо произвести следующие шаги:
Скопировать токен от проекта в кластере, чтобы SynapseInstaller смог взаимодействовать с кластером.
Зайти в Jenkins Job SynapseInstaller и выбрать «Cобрать с параметрами».
Параметры запуска Jenkins Job:
Параметр |
Описание |
Пример |
|---|---|---|
CI |
КЭ компонента в Nexus |
CI90000480_syte |
DistribName |
Дистрибутив с конфигурациями для загрузки в проект системы оркестрации |
D-01.000.00-2814 |
userDefinedFormatDistrib |
Формат дистрибутива |
zip |
nexusLink |
URL для скачивания дистрибутива с конфигурациями (альтернатива DistribName) |
https://nexus-example.ru/nexus-cd/repository/sbt_PROD/sbt_PROD/CI90000480_syte/sytester/D-01.000.00-2814/syte-D-01.000.00-2814-distrib.zip |
gavParam |
Параметры дистрибутива: „groupId:artifactId:version“ (альтернатива DistribName) |
„sbt_PROD.CI90000480_syte:sytester:zip:distrib:D-01.000.00-2814“ |
ClusterName |
Кластер для установки |
stands-k8s |
projectApiUrl |
Cсылка на кластер |
https://api.stands-k8s.ru:6443 |
projectsConfigGitUrlSources |
Адрес репозитория стендозависимых параметров |
ssh://bitbucket-example.ru/synapse/synapse-config-dev-gen.git |
orchestratorProject |
Проект в кластере |
tribe-sy-dev-syte-node1 |
needInputOrchestratorLogin |
Авторизация по логину/паролю или токену |
true |
В репозитории со стендозависимыми параметрами нужно создать папку с проектом кластера, куда нужно устанавливать компонент (tribe-sy-dev-syte-node1), и папку с названием компонента (sytester), которое должно совпадать с названием компонента в Chart.yaml дистрибутиве компонента в папке helm.
Структура репозитория со стендозависимыми параметрами:

В файле values.yaml задаются параметры Jenkins Job.
Пример values.yml с описанием параметров
Нажать кнопку «Собрать» и проверить, что сборка Jenkins Job SynapseInstaller завершилась успешно.
Подробнее о функционале компонента SynapseInstaller можно ознакомиться в документации на этот компонент в «Руководстве оператора».
Установка компонент SyTester с помощью компонента Synapse Operator (SYOP) в рамках продукта Platform V Synapse App Mesh#
Для целей AppMesh для установки компонент необходимо внести изменения в helm values (подробнее в values.yml).
Для использования оператора необходимо переопределить параметр operator.enabled=true. Для работы оператора необходимо наличие в кластере CRD SytesterRun и SytesterStrategy из helm-схемы syte-base.
Для использования режима Integration Debug необходимо переопределить соответствующие параметры.
integrationDebug:
enabled: true
discoveryService:
enabled: true
userNamespaces:
- integration-debug-user-ns1
Важно в integrationDebug.userNamespaces задать все пространства имен, в которых будут устанавливаться интеграции для отладки.
Более подробно про установку с помощью SYOP описано в документации продукта Platform V Synapse App Mesh в разделе «Руководство по установке компонента SYTE».
Ручная установка компонент SyTester#
Пререквизиты#
Развернут кластер DropApp или Kubernetes
Развернут ServiceMesh (необязательно)
Базовый образ для сборки docker image загружен в docker registry.
Развернута база данных PV Pangolin/PostgreSQL. Создан пользователь с правами SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, CREATE, CONNECT. Создана пустая схема.
Развернута база данных Ignite/Ignite SE (опционально).
Запущена Kafka/Kafka Abyss(опционально).
Запущен Druid/Druid Abyss(опционально).
Запущена Grafana/Indicator(опционально).
Указаны точки подключения к базам данных (хост/порт, логин/пароль).
Установлен keycloak(опционально).
Установка компонент окружения#
Добавление к проекту механизмов ServiceMesh DropApp (Kubernetes/Istio)
kubectl label namespace имя_namespace istio-injection=enabledДля установки Компонента «Сервисный прокси» (SVPX) продукта «Platform V Synapse Service Mesh» (SSM) нужно отредактировать Deployment dc.yaml, и заполнить необходимые переменные:
syte.istio.enabled – включение/отключение sidecar service mesh (например, true/false) syte.ose.deployment.metadata.annotations.sidecar.istio.io.proxyCPU – cpu request для контейнера sidecar service mesh (например, 200m) syte.ose.deployment.metadata.annotations.sidecar.istio.io.proxyCPULimit – cpu limit для контейнера sidecar service mesh (например, 200m) syte.ose.deployment.metadata.annotations.sidecar.istio.io.proxyMemory – memory request для контейнера sidecar service mesh (например, 500Mi) syte.ose.deployment.metadata.annotations.sidecar.istio.io.proxyMemoryLimit – memory limit для контейнера sidecar service mesh (например, 500Mi)Установка граничного прокси / IGEG. Для корректной работы граничного прокси нужно установить следующие конфигурационные файлы:
Для установки Компонента «Журналирование» (LOGA) нужно отредактировать конфигурационный файл deployment dc.yaml, вставив блок ниже:
А также создать ConfigMap с конфигурацией:
Для установки Компонента Secret Management Продукта Platform V Secret Management (SCM) нужно отредактировать deployment dc.yaml по пути package/conf/k8s/base/sytester, и заполнить необходимые переменные:
syte.secman.enabled – подключить сайдкар Secman (например, true) syte.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.log-level – уровень логирования для SecMan (например, info) syte.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.namespace – имя созданного хранилища в SecMan (например, DEV_DZO) syte.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.role – имя полученной роли в SecMan (например, role-ga-secman-syte) syte.secman.vault.path – путь до хранилища с секретами в SecMan (например, A/IFT/FS/JDBC/KV/SYTESTER) syte.secman.vault.mount-path – путь для загрузки секретов в файловой системе Pod (например, /deployments/config/sytester) syte.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-limits-cpu – cpu limit для SecMan (например, 250m) syte.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-limits-mem – memory limit для SecMan (например, 128Mi) syte.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-requests-cpu – cpu request для SecMan (например, 125m) syte.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-requests-mem – memory request для SecMan (например, 64Mi)А также отредактировать configmap-certs.yaml по пути package/conf/k8s/base/configmaps/ заполнив параметры:
syte.cm.db.sslrootcert – путь к корневому сертификату (например, /deployments/config/sytester/ca.crt) syte.cm.db.sslcert – путь к клиентскому сертификату (например, /deployments/config/sytester/cert.crt) syte.cm.db.sslkey – путь к файлу клиентского ключа (например, /deployments/config/sytester/key.pk8) syte.cm.dbSecret – путь к файлу с конфиденциальными данными, такими как пароль пользователя базы данных (например, /deployments/config/sytester/db-secret.yml)Для интеграции с компонентом MONA продукта Platform V Monitor необходимо в конфигурацию Deployment dc.yaml добавить следующие аннотации:
syte.prometheus.enabled – включение/отключение prometheus (например, true/false) syte.ose.deployment.prometheus.portMaster – порт, на котором доступен web serverУстановка базы данных PostgreSQL/Pangolin
В качестве базы данных может использоваться PostgreSQL или Pangolin.
Установка PostgreSQL
Установка базы данных PostgreSQL(на Ubuntu 20.04.3 LTS):
Обновите локальный индекс пакетов вашего сервера
sudo apt updateУстановить PostgreSQL
sudo apt install postgresql postgresql-contribРедактируем файлы postgresql.conf и pg_hba.conf
Рестартуем сервис и пробуем подключится клиентом
systemctl restart postgresql
Установка Pangolin
Установка сервера базы данных Pangolin осуществляется по инструкции Руководство по установке Компонента «Platform V Pangolin» (PSQL) продукта «Platform V Pangolin SE».
Интеграция с продуктом Platform V Pangolin SE производится через компонент Platform V Pangolin (PSQL) путем конфигурирования в ConfigMap следующих параметров:
syte.cm.db.url — адрес базы данных (например, jdbc:postgresql://<host>:<port>/<database>) syte.cm.db.username — имя пользователя базы данных (например, postgres) syte.cm.db.ssl — логический параметр, отвечающий за включение ssl соединения (например, true) syte.cm.db.sslmode — метод аутентификации при заданном параметре ssl: true (например, verify-full) syte.cm.db.sslrootcert — путь к корневому сертификату (например, /deployments/config/sytester/ca.crt) syte.cm.db.sslcert — путь к клиентскому сертификату (например, /deployments/config/sytester/cert.crt) syte.cm.db.sslkey — путь к файлу клиентского ключа (например, /deployments/config/sytester/key.pk8) syte.cm.db.tlsprotocol — требуемая версия TLS протокола JVM (например, TLSv1.2) syte.cm.db.cipherSuites — требуемый алгоритм шифрования JVM (например, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384)Установка базы данных Ignite SE/Ignite
В качестве базы данных Ignite может использоваться Ignite SE или Ignite.
Установка Ignite SE
Установка Ignite SE осуществляется по инструкции Инструкция по установке Ignite SE.
Установка Ignite
Установка Ignite (пример для версии 2.15.0):
Скачать Ignite
wget https://archive.apache.org/dist/ignite/2.15.0/apache-ignite-2.15.0-bin.zipРаспаковать файл
unzip apache-ignite-2.15.0-bin.zipДобавить файл конфигурации Ignite в apache-ignite-2.15.0-bin/bin/config_cache_sytester.xml и файл конфигурации сервиса unix в ~/…/…/etc/systemd/system/ignite.service
Запустить Ignite
sudo service ignite start
Установка компонент для мониторинга
В качестве компонент для мониторинга может использоваться Kafka, Druid и Ignite либо Kafka Abyss, Druid Abyss и Indicator.
Установка Kafka Abyss, Druid Abyss и Indicator
Установка брокера сообщений Kafka Abyss и базы данных Druid Abyss осуществляется по инструкции Руководство по установке Abyss. Установка сервиса визуализации данных Indicator осуществляется по инструкции Руководство по установке Indicator.
Установка Kafka, Druid и Grafana
Установка Kafka (пример для версии 2.13):
Скачать Kafka
wget https://archive.apache.org/dist/kafka/3.6.0/kafka_2.13-3.6.0.tgzРаспаковать файл
tar -xvzf kafka_2.13-3.6.0.tgzСоздать файлы ~/…/…/etc/systemd/system/zookeeper.service, ~/…/…/etc/systemd/system/kafka.service для более удобного управления Kafka и Zookeeper
Отредактировать конфигурационные файлы /kafka_2.13-3.6.0/config/server.properties и /kafka_2.13-3.6.0/config/zookeeper.properties
Запустить Kafka:
sudo systemctl start zookeeper.service sudo systemctl start kafka.service
Установка Druid (пример для версии 0.23.0):
Скачать Druid
wget https://archive.apache.org/dist/druid/0.23.0/apache-druid-0.23.0-bin.tar.gzРаспаковать архив
tar -xvzf apache-druid-0.23.0-bin.tar.gzСоздать файл, если его нет ~/…/…/etc/systemd/system/druid.service
Запустить Druid:
sudo systemctl start druid
Установка Grafana: Инструкцию по установке Grafana можно найти в репозитории.
Собранные в druid метрики могут быть визуализированы в Grafana.
Установка keycloak.
В качестве сервиса аутентификации и авторизации может использоваться KeyCloak.SE или KeyCloak.
Установка KeyCloak.SE
Установка KeyCloak.SE осуществляется по инструкции Руководство по установке компонента KeyCloak.SE(KCSE).
Установка keycloak
Установка keycloak (пример для версии 22.0.1):
Скачать keycloak
wget https://github.com/keycloak/keycloak/releases/download/21.1.0/keycloak-21.1.0.tar.gzРаспаковать файл
tar -xvf keycloak-21.1.0.tar.gzОтредактировать конфигурационный файл
/keycloak-21.1.0/conf/keycloak.confзаполнив нужные поля в keycloak.conf и файл конфигурации сервиса unix в ~/…/…/etc/systemd/system/keycloak.service (вместо admin_login нужно указать логин админа, а вместо admin_password - его пароль)Запустить keycloak:
sudo systemctl start keycloakДля интеграции с Единым аудитом программного компонента Единый коллектор телеметрии (COTE) продукта «Platform V Monitor» необходимо в конфигурации SyTester задать параметр audit.enabled равным true, а также указать параметры подключения к аудиту, пример:.
audit:
enabled: <включение интеграции с аудитом>
service:
host: <адрес сервера аудита>
metamodelRoute: <endpoint для регистрации метамодели аудита>
eventRoute: <endpoint для фиксации событий аудита>
metamodel:
version: <версия метамодели>
moduleId: <идентификатор модуля>
retry:
maxAttempts: <кол-во попыток регистрации метамодели>
waitDuration: <время в миллисекундах между попытками регистрации метамодели>
event:
retry:
maxAttempts: <кол-во попыток фиксации событий аудита>
waitDuration: <время в миллисекундах между попытками фиксации>
buffer:
size: <размер буфера событий, которые необходимо отправить в аудит>
listener:
poolSize: <кол-во слушателей, которые читают буфер и отправляют события в аудит>
period: <периодичность в миллисекундах, как часто слушатели должны опрашивать буфер>
Сборка образа из owned и party частей#
Скачать party, owned, vendor дистрибутивы. Vendor дистрибутив является опциональным, информацию по нему можно посмотреть в файле report.json в owned дистрибутиве. Если Vendor пакет отсутствует, его можно скачать самостоятельно
Список библиотек, включенных в vendor:
«com.ibm.mq.allclient-9.4.0.0.jar» - https://repo1.maven.org/maven2/com/ibm/mq/com.ibm.mq.allclient/9.4.0.0/com.ibm.mq.allclient-9.4.0.0.jar https://repo1.maven.org/maven2/com/ibm/mq/com.ibm.mq.allclient/9.3.4.0/com.ibm.mq.allclient-9.3.4.0.jar — используется для поддержки работы с очередями IBM MQ в компоненте;
«javax.jms-api-2.0.1.jar» - https://repo1.maven.org/maven2/javax/jms/javax.jms-api/2.0.1/javax.jms-api-2.0.1.jar используется для поддержки работы с очередями MQ в компоненте;
«javax.servlet-api-3.1.0.jar» - https://repo.maven.apache.org/maven2/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar используется для взаимодействия web gui и серверной части;
«aspectjrt-1.8.14.jar» - https://repo.mavenlibs.com/maven/org/aspectj/aspectjrt/1.8.14/aspectjrt-1.8.14.jar?utm_source=mavenlibs.com используется для авторизации;
«aspectjweaver-1.8.14.jar» - https://repo.mavenlibs.com/maven/org/aspectj/aspectjweaver/1.8.14/aspectjweaver-1.8.14.jar?utm_source=mavenlibs.com используется для авторизации;
«h2-2.2.222.jar» - https://mvnrepository.com/artifact/com.h2database/h2/2.2.222 используется для обслуживания локальной БД;
«logback-classic-1.4.14.jar» - https://download.dcache.org/nexus/repository/public-snapshots/ch/qos/logback/logback-classic/1.4.14/logback-classic-1.4.14.jar используется для логирования;
«logback-core-1.4.14.jar» - https://download.dcache.org/nexus/repository/public-snapshots/ch/qos/logback/logback-core/1.4.14/logback-core-1.4.14.jar используется для логирования;
«junit-4.13.2.jar» - https://repo1.maven.org/maven2/junit/junit/4.13.2/junit-4.13.2.jar используется для тестирования.
Разархивировать дистрибутивы и собрать jar file, выполнив команды:
unzip <owned-distrib.zip> -d owned unzip <party-distrib.zip> -d party unzip <vendor-distrib.zip> -d vendor unzip <owned/distrib.zip> -d unzipped cd unzipped/package/bh/ jar -xf SyTester-1.0-exec.jar rm SyTester-1.0-exec.jar cp ../../../party/*.jar BOOT-INF/lib/ cp ../../../vendor/*.jar BOOT-INF/lib/ jar -c --file=SyTester-1.0-exec.jar --manifest=META-INF/MANIFEST.MF -0 . cd ../ cp conf/k8s/base/sytester/Dockerfile ./ chmod ugo+x conf/proto/* docker build --build-arg BASE_IMAGE=<базовый образ> . -t <путь/имя/версия образа> docker push <путь/имя/версия образа >
Подготовка к установке#
Для установки экземпляра SyTester на стенд необходимо подготовить конфигурационные компоненты (все примеры приведены в разделе конфигурирование):
Компонент |
Содержание |
Описание |
|---|---|---|
Deployment для sytester-master, sytester-gen, sytester-grpc-stub, sytester-http-stub, sytester-stub |
Параметры запуска контейнера приложения в Kubernetes или Red Hat OpenShift |
Наименование экземпляра приложения, ссылка на образ контейнера приложения, запрашиваемые ресурсы, публикуемые порты, параметры liveness и readiness проб, необходимость и параметры подключения sidecar контейнеров, точки монтирования конфигурационных артефактов в файловую систему контейнера |
Config Map |
application.yml |
Файл, содержащий параметры конфигурации приложения |
Secret |
Ключи и сертификаты |
Файлы .jks, содержащие ключи и сертификаты для подключения по SSL. Содержит конфиденциальные данные, поэтому загружается в виде секрета |
Service для sytester-master, sytester-gen, sytester-grpc-stub, sytester-http-stub, sytester-stub |
Артефакт для регистрации приложения в service discovery Kubernetes или Red Hat OpenShift |
Селекторы и порты для подключения приложения к механизмам распределения трафика Kubernetes или Red Hat OpenShift |
Service Entry |
Артефакт для регистрации внешнего сервиса в Kubernetes или Red Hat OpenShift |
Содержит адреса hosts и номера ports для подключения к внешним ресурсам. Если для нужных hosts и ports Service Entry уже установлены в проекте, то загружать его повторно не требуется. |
Route |
Артефакт для регистрации маршрутов сервиса в Kubernetes или Red Hat OpenShift |
Содержит адреса hosts и номера ports для подключения к внешним ресурсам. Если для нужных hosts и ports Route уже установлены в проекте, то загружать его повторно не требуется. |
Для Deployment необходимо заполнить следующие параметры:
Если для хранения сертификатов, ключей и паролей не используется Secman, необходимо создать Secret, в котором прописывается список файлов, загружаемых в Pod:
Secret со списком необходимых ключей и сертификатов
apiVersion: v1 kind: Secret metadata: name: sytester-secret type: Opaque data: db-secret.yml: '' # base64 файла настроек ca.crt: '' # base64 корневой сертификат client.crt: '' # base64 клиентский сертификат clientKey.pk8: '' # base64 клиентский ключdb-secret.yml из Secret содержит настройки SSL подключения к базе:
spring: datasource: username: <username> # имя пользователя СУБД password: <password> # пароль пользователя СУБД datasourcessl: sslpassword: <password> # пароль для клиентского ключа (при необходимости)Если sytester настроен на авторизацию через keycloak, то рекомендуется параметры clientSecret и trustedCAPassword из application.yml перенести в db-secret.yml
keycloak: clientSecret: <secret> # значение clientSecret, заданное в keycloak для клиента trustedCAPassword: <password> # пароль хранилища доверенных корневых сертификатовСоздать ConfigMap с необходимыми настройками:
ConfigMap с настройками
kind: ConfigMap apiVersion: v1 metadata: name: sytester-config data: application.yml: |- /* добавить настройки из примера application.yml (см. раздел Конфигурирование ниже) */
Установка компонент#
Компоненты необходимо установить в следующем порядке:
Config Map c application.yml
Secret c ключами (если не используется Компонент Secman)
Service Entry
Deployment для sytester-master, sytester-gen, sytester-grpc-stub, sytester-http-stub, sytester-stub
Service для sytester-master, sytester-gen, sytester-grpc-stub, sytester-http-stub, sytester-stub
Route для sytester-master, sytester-http-stub, sytester-http-stub-ssl, sytester-grpc-stub-ssl, grafana
Установка с использованием консоли
Шаг |
Действия |
|---|---|
Вход в учетную запись в консоли |
1. В окне командной строки в приглашении введите команду: |
Переход в нужный проект |
Введите команду: |
Загрузка компонент |
В консоли выполните команду |
Завершение сеанса работы с клиентом |
В консоли введите команду |
Установка с использованием веб-интерфейса
Шаг |
Действия |
|---|---|
Вход в учетную запись через веб-консоль |
1. Перейдите по ссылке (URL) веб-консоли кластера Kubernetes. |
Переход в нужный проект |
1. Выберите пункт меню Home → Projects.. |
Создание нужных компонент |
Для каждой компоненты выполните следующие действия: |
Выход из веб-консоли |
1. Нажатием на имени пользователя раскройте меню пользователя. |
Локальная установка#
Для локального запуска рекомендуется использовать Community Edition, с его инструкцией можно ознакомиться тут.