Руководство по установке#

В руководстве приведены инструкции по установке компонента Шлюз ActiveMQ Artemis, ASGT продукта Platform V Synapse Enterprise Integration (SEI).

Термины и определения#

Термин/Аббревиатура

Определение

СТ

Системное тестирование

ИФТ

Интеграционно-функциональное тестирование

SSH

Secure Shell

Istio

Реализация концепции управляемой сети сервисов (Service-Mesh)

Artemis

Программный продукт Apache Active MQ Artemis

Важно! Шлюз ActiveMQ Artemis, (ASGT) продукта Platform V Synapse Enterprise Integration (SEI) поставляется в виде дистрибутива для сборки Docker-образа. Собранный Docker-образ предназначается для использования в составе прикладных интеграционных решений, разрабатываемых продуктовыми командами.

Для этого команды, реализующие прикладную интеграцию, выпускают дистрибутив, содержащий набор конфигурационных артефактов Kubernetes, обеспечивающих развертывание и настройку отдельного экземпляра компонента Шлюз ActiveMQ Artemis под требования этой интеграции.

Самостоятельно, вне рамок прикладных интеграционных решений, компонент Шлюз ActiveMQ Artemis не эксплуатируется.

Системные требования#

Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе (далее — ИС), выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности (далее — ИБ), предъявляемых к ней.

Системное программное обеспечение#

Ниже представлены категории системного программного обеспечения (далее — ПО), которые обязательны или опциональны для установки, настройки, контроля и функционирования компонента. В каждой категории перечислены все поддерживаемые продукты сторонних правообладателей. Отдельно обозначены варианты, которые рекомендует АО «СберТех» (маркировка «Рекомендовано» в столбце «Продукт, функциональная совместимость с которым подтверждена»). Клиенту необходимо выбрать один из продуктов в каждой категории, исходя из условий использования конечной ИС.

Категория ПО

Обязательность установки (да/нет)*

Наименование ПО

Версия

Продукт, функциональная совместимость с которым подтверждена**

Описание

Операционная система

Да

ОС Альт 8 СП

8

Рекомендовано. Правообладателем АО «СберТех» также рекомендована ОС – Platform V SberLinux OS Server, см. раздел «Платформенные зависимости»

ОС контейнеров для запуска модулей компонента

Среда контейнеризации

Да

Kubernetes

1.25.3

Рекомендовано. Правообладателем АО «СберТех» также рекомендована среда контейнеризации – Platform V DropApp, см. раздел «Платформенные зависимости»

Платформа контейнеризации для запуска компонентов сервиса

Консольная утилита управления

Да

kubectl

1.22.4

Рекомендовано

Инструмент для управления экземплярами

OC

4.6.0

Опционально

Средство контейнеризации

Да

Docker CE

1.13.1

Рекомендовано

Инструмент для автоматизации работы с контейнерами

Сервис интеграции и оркестрации микросервисов в облаке

Да

Istio

1.12

Рекомендовано. Правообладателем АО «СберТех» также рекомендован сервис интеграции и оркестрации микросервисов в облаке, основанный на Istio, – Platform V Synapse Service Mesh, см. раздел «Платформенные зависимости»

Сервис интеграции микросервисов в облаке

Менеджер системы обмена сообщениями

Да

Apache ActiveMQ Artemis

2.20.0

Рекомендовано. Правообладателем АО «СберТех» также рекомендована система обмена сообщениями – Platform V Synapse.Messaging, см. раздел «Платформенные зависимости»

Обмен сообщениями

Внешнее хранилище секретов на основе hashicorp vault

Нет

ВХС Агент hashicorp vault

Рекомендовано

Получение сертификатов и других секретов из хранилища hashicorp vault и загрузка их в Pod. Функционирует как sidecar-контейнер, прозрачно для основных участников взаимодействия

Примечание:

*

  • Да — категория ПО обязательна для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данной категории ПО).

  • Нет — категория ПО необязательна для функционирования сервиса (это означает, что сервис может выполнять свои основные функции без установки данной категории ПО).

**

  • Рекомендовано — рекомендованный правообладателем АО «СберТех» продукт.

  • Опционально — альтернативный по отношению к рекомендованному правообладателем АО «СберТех» продукт.

Платформенные зависимости#

Для настройки, контроля и функционирования компонента реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:

Наименование продукта

Код

Версия продукта

Код и наименование компонента

Обязательность установки (да/нет)***

Описание

Аналог других производителей****

Platform V SberLinux OS Server

SLO

8.7

INST Операционная система

Да

ОС контейнеров для запуска модулей компонента

ОС Альт 8 СП

Platform V DropApp

K8S

1.1 и выше

K8SC K8S Core

Да

Дистрибутив Kubernetes со встроенными механизмами мультитенантности и бессерверным исполнением

Kubernetes, Red Hat OpenShift Container Platform

Platform V Synapse Service Mesh

SSM

3.6

SVPX Сервисный прокси

Да

Сайдкар обеспечивающий функции управления внутренним трафиком

Istio proxy 1.12

IGEG Граничный прокси

Нет

Сервис для обеспечения управляемого вызова интеграционных сервисов прикладной части

Istio proxy 1.12

Platform V Synapse.Messaging

SMB

1.2.0 и выше

SMBX

Да

Сервис предоставляет возможность использования очередей сообщений (MQ) в интеграционной платформе на основе технологий Apache Artemis MQ

Apache ActiveMQ Artemis

Platform V Audit SE

AUD

3.1

AUDT Аудит

Нет

Сервис для аудирования событий

Сервис успешно прошел испытания и подтвердил свою работоспособность с компонентом AUDT. С аналогами других производителей не тестировался

Platform V Monitor

OPM

5.0.1

LOGA Журналирование

Нет

Сервис для хранения лог-файлов

Любой сервис сбора записей о событиях, совместимый с fluent-bit, например: Elasticsearch, InfluxDB

MONA Объединенный мониторинг Unimon

Нет

Сервис для сбора прикладных и инфраструктурных метрик и отправки их в целевую систему хранения

Prometheus 2.21.0

Platform V Synapse Service Mesh

SSM

3.6

REQV Валидатор запросов

Нет

Валидации входящих запросов. Функционирует как sidecar-контейнер

Примечание:

***

  • Да — компонент или продукт необходим для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данного компонента).

  • Нет — необязательный для функционирования сервиса компонент или продукт (это означает, что сервис может выполнять свои основные функции без установки данного компонента).

**** Рекомендуется установка программного продукта, правообладателем которого является АО «СберТех», при этом не исключена возможность (допускается правообладателем) использования аналога других производителей. Аналоги, в отношении которых продукт успешно прошел испытания и подтвердил свою работоспособность, указаны в разделе «Системное программное обеспечение».

Аппаратные требования#

В рамках требований указан минимальный размер. Целевой размер определяется по результатам НТ отдельно под каждый интеграционный сценарий.

Для установки компонента требуется следующая конфигурация аппаратного обеспечения:

Тип стенда

DEV

ИФТ/ПСИ

НТ/ПРОМ

Конфигурация в среде контейнеризации (в рамках одного POD'а)

CPU: 200m

RAM: 256Mi

CPU: 300m

RAM: 512Mi

CPU: 500m

RAM: 512Mi

При использовании sidecars Сервисного прокси, Агента журналирования, Агент hashicorp vault минимальные ресурсы, необходимые для их запуска, следует уточнить в документации на эти компоненты.

Компонент Сервисный прокси (SVPX) Platform V Synapse Service Mesh должен быть развернут в соответствии с разделом Установка документа Руководство по установке своей документации.

Компонент Агент журналирования (LOGA) Platform V Monitor должен быть развернут в соответствии с разделом Установка документа Руководство по установке своей документации.

Компонент Валидатор запросов (REQV) Platform V Synapse Service Mesh должен быть развернут в соответствии с разделом Установка документа Руководство по установке своей документации.

Состав дистрибутива#

Элемент дистрибутива

Описание

/package/docker/asgt/waitingSecrets.sh

Скрипт, исполняемый после старта docker контейнера

/package/docker/asgt/entrypoint.sh

Скрипт запуска приложения

/package/docker/asgt/Dockerfile

Файл инструкций для сборки образа компонента Шлюз ActiveMQ Artemis в Docker

/package/bh/go-mq-gateway

Исполняемый (бинарный) файл приложения компонента Шлюз ActiveMQ Artemis

/package/ReleaseNotes.json

Метаинформация по дистрибутиву, формируемая сборщиком дистрибутива

/package/conf/

Конфигурация дистрибутива, включая определение стендозависимых параметров

Выбор способа установки#

На данный момент поддерживается только ручная установка.

Подготовка окружения#

Для установки компонента Шлюз ActiveMQ Artemis в составе прикладного дистрибутива должно быть выполнено следующее:

  1. Развернут и настроен кластер Kubernetes версии 1.25.3 или выше;

  2. В кластере создан проект (namespace), в котором будет разворачиваться компонент Шлюз ActiveMQ Artemis;

  3. Проект подключен к ControlPlane Service Mesh (Platform V Synapse Service Mesh)

  4. Обеспечена возможность подключения Сервисного прокси (SVPX) к Pod компонента Шлюз ActiveMQ Artemis;

  5. В проекте создана учетная запись с правами на загрузку артефактов;

  6. Получена ссылка на целевой Docker-репозиторий;

  7. Базовый образ для сборки Docker-образа загружен в целевой Docker-репозиторий;

  8. В проект добавлен Secret для загрузки Docker-образов из целевого Docker-репозитория;

  9. На рабочем месте должен быть установлен клиент Kubernetes (kubectl) версии 1.22.4 или выше;

  10. Для создания Docker-образа на рабочем месте должен быть установлен Docker версии 1.13.1 или выше.

  11. Развернуты, настроены и готовы к работе брокеры Artemis (версия 2.20.0 или выше), есть доступ к ним со стороны кластера Kubernetes (для целей тестирования брокеры могут быть развернуты непосредственно в проекте);

  12. Сетевые соединения с брокерами Artemis должны быть защищены протоколом TLS версии не ниже 1.2, поэтому должны быть выпущены сертификаты для установки TLS подключения.

Перечень программных продуктов, используемых при установке:

Наименование

Функции

kubectl

Подключение к проекту Kubernetes, загрузка артефактов конфигурации в проект Kubernetes в консольном режиме

Docker

Создание и размещение Docker-образа

Установка#

Важно! Ручная корректировка конфигурационных файлов в процессе установке не требуется.

Ручная установка сервиса#

Настройка namespace#

Информация по настройке приведена в таблице ниже.

Настройка namespace

Шаг

Действия

Описание

Подключиться к кластеру Kubernetes

- Если подключение реализовано, используя встроенные в kubernetes учетные записи (Service Account), то выполнить команду:
kubectl config set-credentials имя_пользователя --token=токен_пользователя
- Если подключение реализовано, используя сторонний сервер авторизации (LDAP), то выполнить команду:
kubectl config set-credentials имя_пользователя --username=логин_пользователя --password=пароль_пользователя
- Если подключение к кластеру выполняется напрямую, то выполнить команду:
kubectl config set-cluster имя кластера --server=хост_кластера:порт_кластера --embed-certs --certificate-authority=путь_к_файлу_с_сертификатом_CA
- Если подключение к кластеру выполняется через проксирующую VM с сертификатом, то выполнить команду:
kubectl config set-cluster имя_кластера --server=https://127.0.0.1:порт_кластера
kubectl config set clusters.имя_кластера.certificate-authority-data сертификат
в этом случае все последующие команды kubectl к namespace должны быть дополнены флагом --insecure-skip-tls-verify=true, например, команда получения Pods будет выглядеть: kubectl --insecure-skip-tls-verify get pods- Если подключение к кластеру выполняется через проксирующую VM без сертификата, то выполнить команду:
kubectl config set-cluster имя_кластера --insecure-skip-tls-verify=true --server=https://127.0.0.1:порт_кластерав этом случае все последующие команды kubectl к namespace дополнять флагом --insecure-skip-tls-verify=true не требуется, например, команда получения Pods будет выглядеть:
kubectl get pods
- Создать контекст, под которым будет происходить подключение к кластеру
kubectl config set-context имя_контекста --user=имя_пользователя --namespace=название_namespace --cluster=имя_кластера
- Переключиться в созданный контекст
kubectl config use-context имя_контекста

токен_пользователя для подключения получить у администраторов кластера
Сертификат CA кластера получить у администраторов кластера
Если при настройке кластера был указан параметр --insecure-skip-tls-verify=true, то указывать его при последующих вызовах API кластера необязательно.

Создать namespace

kubectl --insecure-skip-tls-verify create namespace имя_namespace

Проверить наличие namespace

kubectl --insecure-skip-tls-verify get namespace имя_namespace

Добавить квоты

kubectl --insecure-skip-tls-verify create resourcequota core-object-counts --hard=limits.cpu=34,limits.memory=51Gi,persistentvolumeclaims=0,requests.cpu=34,requests.memory=51Gi --namespace=имя_namespace

Переключиться в namespace

kubectl --insecure-skip-tls-verify config set-context --current --namespace=имя_namespace

Добавить Istio

После создания проекта написать администратору ControlPanel просьбу добавить в наш проект Istio
или
kubectl --insecure-skip-tls-verify label namespace имя_namespace istio-injection=enabled
проверить:
kubectl get namespace имя_namespace --show-labels
NAME STATUS AGE LABELS
имя_неймспейса Active 20d istio-injection=enabled,kubernetes.io/metadata.name=имя_namespace

Добавить права

Запросить у администраторов ControlPanel логины (с учетом регистра) для входа в проект Kubernetes.
В интерфейсе Kubernetes проекта в меню Cluster > Cluster Role Bindings нажать Create Binding (прав нет — не проверено) и для каждой УЗ указать параметры:
- Name=логин с учетом регистра
- Namespace=имя проекта с компонентом Шлюз ActiveMQ Artemis
- Role Name=admin — такое название, которое выдают администраторам
- Subject=user
- Subject Name=логин с учетом регистра
Либо через консоль:
kubectl create rolebinding имя_биндинга --clusterrole=роль_в_кластере --user=имя_пользователя1 --user=имя_пользователя2

Добавить артефакт Secret для доступа в registry

Проверить, в случае отсутствия добавить Secret (например pull-secret-name) для вычитки Docker-образов из registry репозитория:
1. создать Secret с доступом до Docker registry и учетной записью, имеющей права на скачивание образов: $ kubectl --insecure-skip-tls-verify create secret docker-registry имя_Secret --docker-server='имя_реджистри_сервера' --docker-username='учетная_запись' --docker-password='пароль_от_учетной_записи' (вместо "пароль" нужно указать пароль от учетной записи)
2. Добавить созданный Secret к сервисному аккаунту по умолчанию — под ним стартуют Pods (см. примечание 1).

Примечания к таблице

1 Команда правки сервисного аккаунта по умолчанию:

if kubectl --insecure-skip-tls-verify get sa default -o yaml | grep imagePullSecrets; then if ! (kubectl --insecure-skip-tls-verify get sa default -o yaml | grep -e "name.*имя_secret$"); then kubectl --insecure-skip-tls-verify patch sa default -p '[{"op": "add", "path": "/imagePullSecrets/-", "value": {"name": "имя_secret"}}]' --type=json; fi else kubectl --insecure-skip-tls-verify patch sa default -p "{\"imagePullSecrets\": [{\"name\": \"имя_secret\"}]}"; fi

Ручная сборка Docker-образа из дистрибутива#

Необходимая информация приведена в таблице ниже.

Сборка Docker-образа

Шаг

Действия

Описание

Опубликовать базовый образ

Авторизоваться в Docker-репозитории командой:
docker login -u имя_пользователя -p пароль_пользователя имя_Docker-репозитория
Загрузить образ из файла командой:
docker load -i путь_к_tar_архиву_с_образом
Проставить нужный тег полученному образу командой:
docker tag имя_загруженного_образа целевой_тег_образа
Залить образ в docker registry командой:
docker push целевой_тег_образа

Если базовый образ уже загружен в целевой Docker-репозиторий, то этот шаг можно пропустить.

Собрать образа из owned дистрибутива

Скачать owned-дистрибутив.
Разархивировать owned дистрибутив.
Перейти в терминале в директорию package дистрибутива owned
Авторизоваться в Docker-репозитории командой:
docker login -u имя_пользователя -p пароль_пользователя имя_Docker-репозитория
Выполнить сборку Docker-образа командой:
bash plain docker build -f ./docker/asgt/Dockerfile --build-arg BASE_IMAGE=имя_базового_образа  -t целевой_тэг_образа.
Залить образ в docker registry командой:
docker push целевой_тег_образа

Установка общих компонентов#

Необходимая информация приведена в таблице ниже.

Общие компоненты

Шаг

Артефакт

Действия

Описание

Установить общий пустой сервис

empty-service.yml

kubectl --insecure-skip-tls-verify apply -f empty-service.yml

Нужен всегда, один на namespace. Приведен тут для демонстрации команды, разворачивающей компонент, необходим для работы исходного компонента (заглушка)

Установить общую конфигурацию Fluentbit

mqarj-gateway-fluent-bit.yml

kubectl --insecure-skip-tls-verify apply -f mqarj-gateway-fluent-bit.yml

Нужен для работы контейнера логирования — Fluentbit. Нужно заменить Host и Port в блоке [OUTPUT] на созданный для данного стенда

Установить артефакт Secret с сертификатом Fluentbit

mqarj-gateway-fluent-bit-cert.yml

kubectl --insecure-skip-tls-verify apply -f mqarj-gateway-fluent-bit-cert.yml

Нужен для подключения к сервису прикладного логирования

Установить конфиг логирования logback

mqarj-gateway-logback-config.yml

kubectl --insecure-skip-tls-verify apply -f mqarj-gateway-logback-config.yml

Нужен для задания правила логирования

Установка брокеров Artemis#

Необходимая информация приведена в таблице ниже.

Брокеры Artemis (заглушка)

Шаг

Артефакт

Действия

Описание

Установить артефакт Secret с сертификатами

artemis-mq-ks.yml

kubectl --insecure-skip-tls-verify apply -f artemis-mq-ks.yml

Содержит сертификаты брокеров (и компонента Шлюз ActiveMQ Artemis)

Установить конфигурацию брокеров Artemis

artemis-mq1-config.yml
artemis-mq2-config.yml

kubectl --insecure-skip-tls-verify apply -f artemis-mq1-config.yml
kubectl --insecure-skip-tls-verify apply -f artemis-mq2-config.yml

Установить артефакт Deployment брокеров Artemis

artemis-mq1.yml
artemis-mq2.yml

kubectl --insecure-skip-tls-verify apply -f artemis-mq1.yml
kubectl --insecure-skip-tls-verify apply -f artemis-mq2.yml

cpu: 400m
memory: 800Mi
+
cpu: 400m
memory: 800Mi

Установить сервисы брокеров Aremis

artemis-mq1-svc.yml
artemis-mq2-svc.yml

kubectl --insecure-skip-tls-verify apply -f artemis-mq1-svc.yml
kubectl --insecure-skip-tls-verify apply -f artemis-mq2-svc.yml

Установка компонента Шлюз ActiveMQ Artemis#

Параметры настройки компонента Шлюз ActiveMQ Artemis представлены в таблице.

Компонент Шлюз ActiveMQ Artemis

Шаг

Артефакт

Действия

Описание

Установить артефакт Secret с сертификатами

artemis-mq-ks.yml

kubectl --insecure-skip-tls-verify apply -f artemis-mq-ks.yml

Сертификат компонента Шлюз ActiveMQ Artemis (и брокеров), если был установлен вместе с брокерами, шаг можно пропустить

Установить конфигурацию компонента Шлюз ActiveMQ Artemis потребителя

mqarj-gateway-sc-config.yml

kubectl --insecure-skip-tls-verify apply -f mqarj-gateway-sc-config.yml

Содержит конфигурацию шлюза потребителя. Детали настройки описаны отдельно "Шлюз ActiveMQ Artemis"

Установить компонент Шлюз ActiveMQ Artemis потребителя

mqarj-gateway-sc.yml

kubectl --insecure-skip-tls-verify apply -f mqarj-gateway-sc.yml

Манифест разворачивания компонента Шлюз ActiveMQ Artemis потребителя
cpu: 400m
memory: 470Mi

Установить сервис компонента Шлюз ActiveMQ Artemis потребителя

mqarj-gateway-sc-svc.yml

kubectl --insecure-skip-tls-verify apply -f mqarj-gateway-sc-svc.yml

Сервис, через который другие Pods могут обратиться к компоненту Шлюз ActiveMQ Artemis потребителя

Установить конфигурацию компонента Шлюз ActiveMQ Artemis поставщика

mqarj-gateway-sp-config.yml

kubectl --insecure-skip-tls-verify apply -f mqarj-gateway-sp-config.yml

Содержит конфигурацию компонента Шлюз ActiveMQ Artemis поставщика. Детали настройки описаны отдельно «Шлюз ActiveMQ Artemis»

Установить компонент Шлюз ActiveMQ Artemis поставщика

mqarj-gateway-sp.yml

kubectl --insecure-skip-tls-verify apply -f mqarj-gateway-sp.yml

Манифест разворачивания компонента Шлюз ActiveMQ Artemis поставщика
cpu: 400m
memory: 470Mi

Установить сервис компонента Шлюз ActiveMQ Artemis поставщика

mqarj-gateway-sp-svc.yml

kubectl --insecure-skip-tls-verify apply -f mqarj-gateway-sp-svc.yml

Сервис, через который другие Pods могут обратиться к компоненту Шлюз ActiveMQ Artemis поставщика

Установка заглушки JMS#

Необходимая информация приведена в таблице ниже.

JMS-заглушка

Шаг

Артефакт

Действия

Описание

Установить конфигурацию заглушки JMS

gatling-mqarj-gateway-config.yml

kubectl --insecure-skip-tls-verify apply -f gatling-mqarj-gateway-config.yml

Установить заглушку JMS

gatling-mqarj-gateway.yml

kubectl --insecure-skip-tls-verify apply -f gatling-mqarj-gateway.yml

cpu: 400m
memory: 700Mi

Примечание: для более удобного разворачивания можно запустить bash-скрипт, предварительно подключившись к namespece Kubernetes, в котором будет разворачиваться компонент Шлюз ActiveMQ Artemis для тестирования:

bash install.sh kubectl

архив с файлами: test-artemismq.rar

Обновление#

Перед обновлением версии компонента Шлюз ActiveMQ Artemis рекомендуется выполнить бэкап установленной версии командой:

kubectl --insecure-skip-tls-verify get \<тип ресурса\> \<имя ресурса\> \> \<имя ресурса\>.yml

Для обновления версии компонента Шлюз ActiveMQ Artemis необходимо:

  1. произвести полное удаление артефактов установленной версии командой:

    kubectl --insecure-skip-tls-verify delete \<тип ресурса\> \<имя ресурса>
    
  2. произвести развертывание артефактов новой версии командой:

    kubectl --insecure-skip-tls-verify apply -f \<имя файла\>
    

При этом:

Чтение сообщений из очередей брокеров Artemis Pods новой версии компонента Шлюз ActiveMQ Artemis начинается автоматически после их старта в Kubernetes.

Переключение gRPC трафика выполняется механизмами Istio Service Mesh при загрузке артефакта Service.

Остановка чтения из очередей брокеров Artemis и обработка gRPC трафика старой версией компонента Шлюз ActiveMQ Artemis прекращается после остановки Pods старой версии.

Параметр strategy в Deployment компонента Шлюз ActiveMQ Artemis устанавливается в значение:

  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%

В этом случае развертывание Pods новой версии компонента Шлюз ActiveMQ Artemis будет производится Kubernetes с использованием этой стратегии.

Удаление#

Для удаления версии компонента Шлюз ActiveMQ Artemis необходимо произвести удаление артефактов установленной версии командой:

kubectl --insecure-skip-tls-verify delete \<тип артефакта\> \<имя артефакта\>.

Требуется удалить артефакты:

  • Configmap, содержащий файл application.yml компонента Шлюз ActiveMQ Artemis

  • Secret, содержащий файлы key.pem, cert.pem с сертификатами компонента Шлюз ActiveMQ Artemis

  • Service компонента Шлюз ActiveMQ Artemis

  • Deployment компонента Шлюз ActiveMQ Artemis

Проверка работоспособности#

Для быстрой проверки работоспособности запущенного приложения компонента Шлюз ActiveMQ Artemis:

В интерфейсе Kubernetes, в терминале в Pod компонента Шлюз ActiveMQ Artemis выполните команду curl localhost:<portnum>/actuator/health в выдаче команды должна быть строка: "ping":{"status":"UP"}, что подтверждает, что экземпляр компонента Шлюз ActiveMQ Artemis запустился и готов к работе.

Чтобы выполнить эту же проверку с использованием kubectl:

  • В консоли выполните команду kubectl --insecure-skip-tls-verify port-forward pod/<имя Pod> <portnum>:<portnum>. Kubectl перенаправит порт Pod компонента Шлюз ActiveMQ Artemis на соответствующий порт рабочего места.

  • Запустите еще одно окно консоли, в нем выполнить команду: curl localhost:<portnum>/actuator/health, в выдаче команды должна быть строка: "ping":{"status":"UP"}, что подтверждает, что экземпляр компонента Шлюз ActiveMQ Artemis запустился и готов к работе.

  • Завершите форвардинг портов, для этого нажмите Ctrl+C. Перенаправление порта на рабочее место будет отменено.

Для проверки интеграций с АС Журналирование и АС Мониторинг необходимо в АРМ этих систем убедиться в наличии логов и метрик соответственно. Для проверки интеграции с ТС Аудит необходимо в АРМ Аудит убедиться в наличии записей регистрации событий аудита.

Для проверки интеграции с Агентом hashicorp vault, Валидатором необходимо убедиться в отсутствии ошибок в соответствующих данным АС sidecar-контейнерах Pod компонента Шлюз ActiveMQ Artemis.

Откат#

Для отката к предыдущей версии компонента Шлюз ActiveMQ Artemis необходимо:

  1. Произвести удаление артефактов установленной версии командой:

    kubectl --insecure-skip-tls-verify delete \<тип артефакта\> \<имя артефакта\>.
    
  2. Произвести установку с артефактов из бэкапа командой:

    kubectl --insecure-skip-tls-verify apply -f \<имя файла\>
    

Для отката к предыдущей конфигурации нужно выполнить установку из бэкапа только артефактов типа ConfigMap и Secret.

Часто встречающиеся проблемы и пути их устранения#

Проблема

Причина

Решение

Ошибка при подключении к проекту

Пользователю не предоставлен доступ в проект

Запросить доступ к проекту

Ошибка при подключении к проекту

Нет физического доступа к кластеру

Зарегистрировать обращение в поддержку для восстановления доступа

Ошибка при загрузке артефактов

У пользователя, под которым производится загрузка, отсутствуют необходимые права

Проверить и скорректируйте настройку прав доступа пользователю

Ошибка при Pull Docker-образа из репозитория

Отсутствуют права на Pull образа из репозитория

Запросить права

Ошибка при Pull Docker-образа из репозитория

Недоступен репозиторий

Зарегистрировать обращение в поддержку для восстановления доступа

Ошибка при Pull Docker-образа из репозитория

Неверная ссылка на image в Deployment компонента Шлюз ActiveMQ Artemis

Проверить ссылку при необходимости скорректировать Deployment

Чек-лист валидации установки#

Проверка

Действия

Результат

Docker-образ опубликован в Docker-registry

Найти Docker-образ по пути REGISTRY_URL/ + IMAGE_PATH/ + ARTIFACT_ID: + VERSION/ (см. пункт по сборке дистрибутива)

Docker-образ найден по указанному пути

Все артефакты загружены в проект

По списку артефактов найти их в проекте Kubernetes командой kubectl --insecure-skip-tls-verify get <тип артефакта>/<имя артефакта>

Команда для каждого артефакта вернула его параметры

Все Pods компонента Шлюз ActiveMQ Artemis запущены

Найти Deployment командой kubectl --insecure-skip-tls-verify get deployments/<имя Deployment>, убедится что все Pods запущены (и все контейнеры в Pod - Контейнер приложения, а также контейнер SVPX, контейнер LOGA если заданы в Deployment)

В выводе команды, в колонке READY числитель и знаменатель совпадают

Отсутствие ошибок в журналах контейнеров

На вкладке Logs для каждого Pod проверьте, что в журнале контейнеров Pod отсутствуют ошибки

В системных журналах Pods компонента Шлюз ActiveMQ Artemis отсутствуют записи с ключевым словом error