Руководство по установке#
В руководстве приведены инструкции по установке компонента Kafka Gateway (KFGT) продукта Monosolution Platform V Synapse Enterprise Integration (SEI).
Термины и определения#
Термин/аббревиатура |
Определение |
|---|---|
CPU |
Central Processing Unit, центральный процессор |
gRPC |
Высокопроизводительный фреймворк, разработанный компанией Google для вызова удаленных процедур (RPC) |
Pod |
Абстрактный объект, набор контейнеров в архитектуре Kubernetes |
Лимит |
Максимальный объем ресурсов, который выдается на работу сервиса |
Request |
Объем ресурсов, который необходим для запуска приложения |
URL |
Uniform Resource Locator, унифицированный указатель ресурса |
Важно!
Программный компонент Kafka Gateway продукта Platform V Synapse Enterprise Integration поставляется в виде собранного Docker-образа, размещаемого в целевом Docker-репозитории, и предназначается для использования в составе прикладных интеграционных решений, разрабатываемых продуктовыми командами.
Для этого команды, реализующие прикладную интеграцию, выпускают дистрибутив, содержащий набор конфигурационных артефактов Kubernetes или Red Hat OpenShift, обеспечивающих развертывание и настройку отдельного экземпляра Kafka Gateway под требования этой интеграции.
Самостоятельно, вне рамок прикладных интеграционных решений, Kafka Gateway не эксплуатируется.
Системные требования#
Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе (далее — ИС), выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности (далее — ИБ), предъявляемых к ней.
Системное программное обеспечение#
Ниже представлены категории системного программного обеспечения (далее — ПО), которые обязательны для установки, настройки, контроля и функционирования компонента. В каждой категории перечислены все поддерживаемые продукты сторонних правообладателей. Отдельно обозначены варианты, которые рекомендует АО «СберТех» (маркировка «Рекомендовано» в столбце «Продукт, функциональная совместимость с которым подтверждена»). Клиенту необходимо выбрать один из продуктов в каждой категории, исходя из условий использования конечной ИС.
Категория ПО |
Обязательность установки (да/нет) |
Наименование ПО |
Версия |
Продукт, функциональная совместимость с которым подтверждена |
Описание |
|---|---|---|---|---|---|
Операционная система |
Да |
SberLinux |
8 |
Рекомендовано |
Комплекс взаимосвязанных программ, предназначенных для исполнения приложений иностранного разработчика |
ОС Альт 8 СП |
- |
Опционально |
Комплекс взаимосвязанных программ, предназначенных для исполнения приложений иностранного разработчика |
||
Red Hat Enterprise Linux |
8 |
Опционально |
Комплекс взаимосвязанных программ, предназначенных для исполнения приложений российского разработчика |
||
Среда контейнеризации |
Да |
DropApp |
1.2 и выше |
Рекомендовано |
Система оркестрации, предназначенная для управления кластером контейнеров, поддерживаемая opensource сообществом |
1.23 и выше |
Опционально |
Система оркестрации, предназначенная для управления кластером контейнеров, поддерживаемая opensource сообществом |
|||
Red Hat OpenShift |
4.2 и выше |
Опционально |
Система оркестрации, предназначенная для управления кластером контейнеров иностранного разработчика |
||
Инструмент контейнеризации |
Да |
- |
Рекомендовано |
Система для развертывания приложений в любой среде, упаковывая программное обеспечение в конфигурируемые контейнеры |
|
Java-машина |
Да |
11.0.20 |
Рекомендовано |
Набор программного обеспечения, позволяющий запускать программы написанные на JVM совместимых языках |
|
Брокер сообщений |
Да |
Platform V Corax |
5 и выше |
Рекомендовано |
Брокер сообщений, позволяет производить событийный обмен сообщениями |
2.5.0 и выше |
Опционально |
Брокер сообщений, позволяет производить событийный обмен сообщениями |
|||
Инструмент сборки, тестирования, развертывания контейнеризированных приложений |
Нет |
- |
Рекомендовано |
Система, предназначенная для обеспечения процесса непрерывной интеграции программного обеспечения |
Платформенные зависимости#
Для настройки, контроля и функционирования компонента реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:
Наименование продукта |
Код |
Версия продукта |
Код и наименование компонента |
Обязательность установки |
Описание |
|---|---|---|---|---|---|
Platform V Monitor |
OPM |
D-02.000.00-77 и выше |
LOGA Журналирование |
Опционально |
Сервис для записи прикладных журналов |
Platform V Monitor |
OPM |
D-02.000.00-77 и выше |
MONA Мониторинг |
Опционально |
Объединенный мониторинг Unimon (prometheus) |
Platform V Synapse Service Mesh |
SSM |
- |
SVPX Сервисный прокси |
Опционально |
Сервис для обеспечения управляемого вызова интеграционных сервисов прикладной части в проекте Kubernetes/DropApp/Red Hat OpenShift |
Platform V Corax |
KFK |
- |
KFKA Kafka Sber Edition |
Обязательно |
Брокер сообщений, позволяет производить событийный обмен сообщениями |
Platform V Secret Management |
SCM |
- |
KMSS Агент SecMan |
Опционально |
Продукт, реализующий безопасное хранилище секретной информации |
Platform V Backend |
OTT |
- |
OTTS One-Time Password |
Опционально |
Сервис для формирования токена авторизации |
Platform V Audit SE |
AUD |
3.1 |
AUDT Аудит |
Опционально |
Сервис для хранения событий аудита |
Если версия не указана, значит компонент будет работать с любой версией продукта.
Аппаратные требования#
В рамках требований указан минимальный размер. Целевой размер определяется по результатам НТ отдельно под каждый интеграционный сценарий. Для установки компонента требуется следующая конфигурация аппаратного обеспечения:
Тип стенда |
DEV |
ИФТ/ПСИ |
НТ/ПРОМ |
|---|---|---|---|
Конфигурация в среде контейнеризации (в рамках одного Pod) |
CPU: 200m |
CPU: 300m |
CPU: 500m |
Состав дистрибутива#
Элемент дистрибутива |
Описание |
|---|---|
/documentation/ |
Документация на компонент |
/package/bh/waitingSecrets.sh |
Скрипт, исполняемый после старта docker контейнера |
/package/bh/entrypoint.sh |
Скрипт запуска приложения |
/package/bh/org/springframework/boot/loader/ |
Загрузчик классов от spring boot, используется для запуска java приложения |
/package/bh/BOOT-INF/lib/ |
Jar-бибилиотеки, зависимости, которые используются приложением |
/package/bh/META-INF/MANIFEST.MF |
Файл с метаинформацией, необходимый для запуска java приложения |
/package/bh/BOOT-INF/classpath.idx |
Пути до бибилиотек с зависимостям |
/package/bh/BOOT-INF/classes/ |
Все ресурсы java приложения, в том числе и классы |
/package/ReleaseNotes.json |
Метаинформация по дистрибутиву, формируемая сборщиком дистрибива |
/package/conf/ |
Конфигурация дистрибутива, включая определение стендозависимых параметров |
Выбор способа установки#
Поддерживается ручная установка или установка с помощью компоненты Service Mesh DevOps Lib (SMDL) продукта Platform V Synapse Service Mesh.
Подготовка окружения#
Для установки Kafka Gateway в составе прикладного дистрибутива должно быть выполнено следующее:
Развернут и настроен кластер DropApp 1.2+, Kubernetes 1.17+ или Red Hat OpenShift 4.5.13+ в соответствии с требованиями, предъявляемыми к Платформе.
В кластере создан проект (namespace), в котором будет разворачиваться шлюз.
В проекте создана учетная запись с правами на загрузку артефактов.
Docker-образ шлюза размещен в целевом Docker-репозитории по ссылке, указанной в конфигурационном артефакте Deployment.
В проект добавлен Secret для загрузки Docker-образов из целевого Docker-репозитория.
Подготовлен комплект настроенных конфигурационных артефактов.
Брокеры Kafka настроены и готовы к работе, есть доступ к ним со стороны кластера Kubernetes/DropApp или Red Hat OpenShift.
Созданы целевые topic(s) сообщений, необходимый доступ к ним предоставлен.
В проекте имеются свободные ресурсы по лимитам и Requestам не менее, чем зарезервировано в конфигурационных артефактах.
При установке с использованием консоли, на рабочем месте должен быть установлен клиент Kubernetes/DropApp или Red Hat OpenShift.
Если планируется использование сервиса OTT для обеспечения целостности данных, сервис OTT должен быть доступен из проекта, в который производится установка.
Сетевые соединения с брокерами Kafka должны быть защищены протоколом TLS версии не ниже 1.2, поэтому должны быть выпущены сертификаты для установки TLS подключения.
При опциональном использовании совместно со Шлюзом Kafka Сайдкара компонента Сервисный прокси (входящего в состав продукта «Platform V Synapse Service Mesh») минимальные ресурсы, необходимые для запуска, следует уточнить в соответствующей документации используемого компонента.
Перечень программных продуктов, используемых при установке:
Наименование |
Функции |
|---|---|
Kubernetes/DropApp или Red Hat OpenShift Client |
Подключение к проекту Kubernetes/DropApp или Red Hat OpenShift, загрузка артефактов конфигурации в проект в консольном режиме |
Kubernetes/DropApp или Red Hat OpenShift Web Console |
Подключение к проекту Kubernetes/DropApp или Red Hat OpenShift, загрузка артефактов конфигурации в проект в интерактивном режиме |
Установка#
Ручная установка сервиса#
Перед началом установки убедитесь, что выполнена подготовка окружения.
В дистрибутиве передаются примеры конфигураций Kubernetes/DropApp/Red Hat OpenShift, на основе которых необходимо описать целевую конфигурацию для промышленных стендов.
Пререквизиты#
Базовый образ для сборки docker image загружен в docker registry.
Установлен клиент kubectl.
Установлен docker.
Публикация базового образа#
Загрузить образ из файла командой
docker loadПоставить тег полученному образу и залить в docker registry (командами
docker tag,docker push)
Сборка образа из owned и party частей#
Скачать party и owned дистрибутивы.
Разархивировать party дистрибутив.
Разархивировать owned дистрибутив и разархивировать архив в нем.
Скопировать содержимое party дистрибутива в разархивированную owned часть по пути package/bh/BOOT-INF/lib.
Перейти в терминале в директорию package/ дистрибутива owned.
Скопировать в данную директорию dockerfile из package/conf/k8s/base/asgt_kafka/Dockerfile и отредактировать его, указав путь до базового образа:
cp conf/k8s/base/asgt_kafka/Dockerfile .
Выполнить сборку докер образа, предварительно авторизоваться в docker regestry (командой
docker login):
docker build .
Поставить тег полученному образу и залить в docker registry (командами
docker tag,docker push)
Развертывание#
Отредактировать deployment dc.yaml по пути package/conf/k8s/base/asgt_kafka, а также заполнить необходимые переменные:
kfgt.replicas - количество реплик Pod (например 1) kfgt.ose.deployment.metadata.annotations.sidecar.istio.io.inject - включение/отключение sidecar service mesh (например true/false) kfgt.ose.deployment.metadata.annotations.sidecar.istio.io.proxyCPU - cpu request для контейнера sidecar service mesh (например 200m) kfgt.ose.deployment.metadata.annotations.sidecar.istio.io.proxyCPULimit - cpu limit для контейнера sidecar service mesh (например 200m) kfgt.ose.deployment.metadata.annotations.sidecar.istio.io.proxyMemory - memory request для контейнера sidecar service mesh (например 500Mi) kfgt.ose.deployment.metadata.annotations.sidecar.istio.io.proxyMemoryLimit - memory limit для контейнера sidecar service mesh (например 500Mi) kfgt.ose.deployment.spec.template.spec.priorityClassName - Имя priorityClassName при использовании приоритетов развертывания Pod (null, если не используется) kfgt.ose.deployment.spec.template.spec.containers.kfgt.resources.limits.cpu - cpu limit для контейнера приложения (например 200m) kfgt.ose.deployment.spec.template.spec.containers.kfgt.resources.limits.memory - memory limit для контейнера приложения (например 500Mi) kfgt.ose.deployment.spec.template.spec.containers.kfgt.resources.requests.cpu - cpu request для контейнера приложения (например 200m) kfgt.ose.deployment.spec.template.spec.containers.kfgt.resources.requests.memory - memory request для контейнера приложения (например 500Mi) kfgt.ose.deployment.spec.template.spec.containers.kfgt.readinessProbe.initialDelaySeconds - время инициализации readiness пробы в секундах (например 45) kfgt.ose.deployment.spec.template.spec.containers.kfgt.readinessProbe.timeoutSeconds - таймаут в секундах, за который приложение должно ответить по запросу readiness пробы (например 1) kfgt.ose.deployment.spec.template.spec.containers.kfgt.readinessProbe.periodSeconds - частота запросов readiness пробы в секундах (например 1) kfgt.ose.deployment.spec.template.spec.containers.kfgt.readinessProbe.successThreshold - количество успешных запросов необходимых для успешного прохождения readiness пробы (например 1) kfgt.ose.deployment.spec.template.spec.containers.kfgt.readinessProbe.failureThreshold - количество ошибочных запросов необходимых для провального прохождения readiness пробы (например 3) kfgt.ose.deployment.spec.template.spec.containers.kfgt.livenessProbe.initialDelaySeconds - время инициализации liveness пробы в секундах (например 45) kfgt.ose.deployment.spec.template.spec.containers.kfgt.livenessProbe.timeoutSeconds - таймаут в секундах, за который приложение должно ответить по запросу liveness пробы (например 1) kfgt.ose.deployment.spec.template.spec.containers.kfgt.livenessProbe.periodSeconds - частота запросов liveness пробы в секундах (например 1) kfgt.ose.deployment.spec.template.spec.containers.kfgt.livenessProbe.successThreshold - количество успешных запросов необходимых для успешного прохождения liveness пробы (например 1) kfgt.ose.deployment.spec.template.spec.containers.kfgt.livenessProbe.failureThreshold - количество ошибочных запросов необходимых для провального прохождения liveness пробы (например 10) kfgt.ose.configmap.javaArguments - параметры запуска JVM (например -XX:+UseContainerSupport -XX:MaxRAMPercentage=70) registry - URL docker registry registry_path - путь до образа (например /sbt_dev/ci90000017_synapse_dev) distrib.release.version - версия дистрибутива (например v1)Также в файле dc.yaml в поле image указать тег образа, полученный на шаге 8 этапа сборки.
Отредактировать configmap-kafka-adapter.yaml по пути package/conf/k8s/base/configmaps/, а также заполнить необходимые переменные:
kfgt.bootstrap-servers - указываем список серверов кафки, к которым необходимо подключаться (например host1:9092,host2:9092) kfgt.producer.topic - указываем topic(s), в который необходимо записывать сообщения по умолчанию (например producer_topic) kfgt.consumer.topic - указываем topic(s), из которого необходимо читать сообщения (например consumer_topic1) kfgt.consumer.group-id - group id для consumer group, с которым Kafka Gateway будет читать сообщения из topic(s) (например kfgt)Установить конфигурацию, предварительно авторизовавшись в проекте:
kubectl apply -f conf/k8s/base/configmaps/configmap-kafka-adapter.yaml kubectl apply -f conf/k8s/base/asgt_kafka/dc.yaml kubectl apply -f conf/k8s/base/asgt_kafka/svc.yaml kubectl apply -f conf/k8s/base/empty-service/svc.yaml
Установка с помощью SynapseInstaller компонента Service Mesh DevOps Lib (SMDL) Platform V Synapse Service Mesh#
Подготовка конфигурации Helm#
Необходимо настроить файл values.yaml в соответствие с описанием конфигурации Kafka Gateway (Руководство прикладного разработчика).
Описание настроек values.yaml:
nameOverride: <Имя компонента>
fullnameOverride: <Имя компонента, включая версию>
grpcPort: <Номер порта GRPC-сервера>
restPort: <Номер порта REST-сервера>
dc:
maxUnavailable: <Максимальное количество Pod, которые могут быть недоступны в процессе обновления>
maxSurge: <Максимальное количество Pod, которое может быть создано сверх желаемого количества Pods (Pods) в процессе развертывания>
replicaCount: <Количество реплик приложения>
priorityClassName: <Имя конфигурации приоритета, с которым необходимо развернуть приложение>
prometheus:
enabled: <Управление метриками prometheus>
port: <Номер порта для опроса prometheus>
path: <Путь, по которому требуется собирать метрики prometheus>
istio:
enabled: <Управление sidecar istio>
proxyCPU: <Request CPU для контейнера sidecar istio>
proxyCPULimit: <Limit CPU для контейнера sidecar istio>
proxyMemory: <Request RAM для контейнера sidecar istio>
proxyMemoryLimit: <Limit RAM для контейнера sidecar istio>
vault:
enabled: <Управление sidecar vault>
role: <Роль для подключения к vault>
volumePath: <Путь для монтирования сертификатов из Vault>
volumePathSSL: <Путь для монтирования конфигурации ssl.yml из Vault>
withSecret: <Список конфираций для монтируемых файлов>
image:
registry: <Адрес docker registry>
repository: <Путь до docker image>
tag: <Тег docker image с sha256>
pullPolicy: Always
resources: <Request и Limits CPU/RAM для основного контейнера>
failureThreshold: <Количество неуспешных попыток для livenessProbe>
cm:
client:
settings:
default:
hostname: <Имя сервиса/адрес для вызова сервиса GRPC по умолчанию>
port: <Номер порта для вызова сервиса GRPC по умолчанию>
spring:
kafka:
ssl:
enabled: <Управление наличием TLS>
keyStoreLocation: <Путь до keyStore>
trustStoreLocation: <Путь до trustStore>
protocol: <Версия протокола TLS>
rest:
mode: <Управление режимом работы GRPC/REST>
maxConnections: <Максимальное количество подключений для клиента REST>
defaultURL: <Адрес по умолчанию для клиента REST>
failedURL: <Адрес, по которому необходимо отправить сообщение с ошибкой, в случае ошибки проверки подписи>
producer:
enabled: <Управление режимом записи в topic(s) Kafka>
bootstrapServers: <Список брокеров Kafka>
topic: <topic(s) по умолчанию для записи сообщения>
consumer:
enabled: <Управление режимом чтения из topic(s) Kafka>
transactional: <Управление транзакционным режимом>
batching: <Управление режимом Batch>
bootstrapServers: <Список брокеров Kafka>
topics: <Список topic(s) для чтения>
properties: <Список Kafka настроек для конфигурации producer и consumer>
audit:
enabled: <включение интеграции с аудитом>
service:
host: <адрес сервера аудита>
metamodel-route: <endpoint для регистрации метамодели аудита>
event-route: <endpoint для фиксации событий аудита>
metamodel:
version: <версия метамодели>
module-id: <идентификатор модуля>
retry:
max-attempts: <кол-во попыток регистрации метамодели>
wait-duration: <время в миллисекундах между попытками регистрации метамодели>
event:
retry:
max-attempts: <кол-во попыток фиксации событий аудита>
wait-duration: <время в миллисекундах между попытками фиксации>
buffer:
size: <размер буфера событий, которые необходимо отправить в аудит>
listener:
pool-size: <кол-во слушателей, которые читают буфер и отправляют события в аудит>
period: <периодичность в миллисекундах, как часто слушатели должны опрашивать буфер>
fluentBit:
name: <Имя контейнера агента журналирования>
dc:
image:
registry: <Адрес docker registry>
repository: <Путь до docker image>
tag: <Тег docker image с sha256>
pullPolicy: <Политика загрузки образа>
resources: <Request и Limits CPU/RAM для контейнера агента журналирования>
cm:
brokers: <Список брокеров Kafka>
topics: <Имя topic(s)>
Развертывание на стенд#
Запустить сборку Jenkins задачи SynapseInstaller по инструкции из документации на компонент SMDL (раздел SynapseInstaller руководства оператора).
Настройка интеграции#
Ниже описана процедура интеграции с рекомендованным АО «СберТех» продуктами. На усмотрение пользователя может быть настроена интеграция с аналогичным по функциональности продуктом от других производителей .
Интеграция с Platform V Corax производится путем конфигурирования параметров ${kfgt.bootstrap-servers}, ${kfgt.producer.topic}, ${kfgt.consumer.topic} в 3 шаге процесса развертывания.
Интеграция с Platform V Monitor производится через компонент LOGA.
Для настройки необходимо добавить в конфигурацию deployment описание дополнительного контейнера LOGA и дополнительных volumes:
- name: loga-agent image: <image> resources: limits: cpu: 100m memory: 100Mi requests: cpu: 100m memory: 100Mi securityContext: runAsNonRoot: true readOnlyRootFilesystem: true volumeMounts: - name: synapselogs mountPath: /opt/synapse/logs - name: loga-agent-config readOnly: true mountPath: /fluent-bit/etc/ imagePullPolicy: Always ... volumes: - name: synapselogs emptyDir: {} - name: loga-agent-config configMap: name: loga-agent-config defaultMode: 256 optional: trueА также подготовить ConfigMap с конфигурацией:
kind: ConfigMap apiVersion: v1 metadata: name: loga-agent-config data: fluent-bit.conf: | [SERVICE] Flush 1 Daemon Off Log_Level Debug Parsers_File /fluent-bit/etc/parsers.conf [INPUT] Name tail Path /opt/synapse/logs/*.log Tag fluent Parser custom Buffer_Chunk_Size 400k Buffer_Max_Size 6MB Mem_Buf_Limit 6MB [OUTPUT] Name kafka Brokers <host>:<port> Timestamp_Key fluent_time Topics <topic name> parsers.conf: | [PARSER] Name custom Format jsonБолее подробную информацию по конфигурации можно найти в документации на компонент LOGA (раздел подключение и конфигурирование руководства прикладного разработчика).
Для интеграции с компонентом MONA продукта Platform V Monitor необходимо в конфигурацию Service добавить следующие аннотации по пути
metadata.annotations:metadata: annotations: prometheus.io.path: /actuator/prometheus # контроллер, с которого собирать метрики prometheus.io.port: '8080' # порт, на котором доступен web server prometheus.io.scrape: 'true' # включание сбора метрик с помощью MONAИнтеграция с Platform V Synapse Service Mesh производится через sidecar SVPX Сервисный прокси в автоматическом режиме после подключения проекта в контрольной панели Synapse Service Mesh, подробности описаны в документации на компонент SVPX (Раздел подключение и конфигурирование руководства прикладного разработчика).
Интеграция с Platform V Secret Management производится через sidecar Platform V Secret Management, подробности описаны в Руководстве по безопасноcти, в разделе Как интегрировать Kafka Gateway с SecMan и настроить TLS подключение к брокерам Kafka.
Интеграция с Платформенным сервисом аудита (AUDT) продукта «Platform V Audit SE» описана в Руководстве прикладного разработчика, в разделе Настройка регистрации событий аудита.
Обновление#
Перед обновлением требуется сохранить резервную копию предыдущей конфигурации, например:
kubectl get deployment <deployment-name> > depl.yml kubectl get service <service-name> > svc.yml kubectl get se <serviceentry-name> > se.yml kubectl get configmap <configmap-name> > cm.yml kubectl get secret <keystore-secret-name> > keystore.yml kubectl get secret <secret-name> > secret.ymlУдалить все ресурсы Kafka Gateway по инструкции из раздела Удаление.
Провести установку по инструкции из раздела Установка.
Если требуется обновление без прекращения работы Kafka Gateway, то необходимо проводить канареечное развертывание (canary deployment), исходя из таблицы:
Решение по повышению отказоустойчивости Kafka Gateway |
Тип воздействия |
Тип воздействия |
|---|---|---|
Режим работы Kafka Gateway |
Вывод плеча кластера Synapse из под нагрузки |
Обновление Kafka Gateway |
Запросы в Kafka Gateway поступают по gRPC, Kafka Gateway обрабатывает их и пересылает в topic(s) |
Решается переводом нагрузки на балансировщике |
Решается канареечной установкой. Нагрузка на новые Pod заводится стандартно с помощью задачи Jenkins |
Kafka Gateway читает сообщения из topic(s), обрабатывает их и пересылает по gRPC |
Решается путем остановки Pods Kafka Gateway на плече, с которого нужно снять нагрузку |
Решается канареечной установкой. Нагрузка начинает идти через новый Pod после его старта. Pod со старой версией нужно остановить |
Удаление#
Для удаления необходимо удалить все установленные ресурсы:
kubectl delete deployment <deployment-name>
kubectl delete service <service-name>
kubectl delete se <serviceentry-name>
kubectl get configmap <configmap-name>
kubectl delete secret <keystore-secret-name>
kubectl delete secret <secret-name>
Проверка работоспособности#
С использованием веб-интерфейса
Шаг |
Действие |
Примечание |
|---|---|---|
Проверить работоспособность |
В меню выбрать пункт Workload/Pods. На странице найти нужный Pod шлюза. Пройти по ссылке в имени на вкладку Detail, перейти на вкладку Terminal. В терминале Pod выполнить команду: curl localhost:<portnum>/actuator/health В выдаче команды должна быть строка: "ping":{"status":"UP"} |
<portnum> - номер порта указанный в параметре server/port конфигурации шлюза |
С использованием консоли
Шаг |
Действие |
Примечание |
|---|---|---|
Проверить работоспособность |
В консоли выполнить команду: kubectl port-forward pod/<имя Pod> <portnum>:<portnum> Запустить еще одно окно консоли, в нем выполнить команду: curl localhost:<portnum>/actuator/health В выдаче команды должна быть строка: "ping":{"status":"UP"} Завершить forwarding(s) портов нажатием Ctrl+C |
<portnum> - номер порта указанный в параметре server/port конфигурации шлюза |
Чек-лист проверки работоспособности интеграций#
Для проверки работоспособности интеграций специальных действий не требуется и достаточно выполнить действия из раздела Проверка работоспособности.
Откат#
Удалить все ресурсы Kafka Gateway по инструкции из раздела Удаление.
Провести установку бэкапа по инструкции из раздела Установка.
Откат возможен на любую версию, выпущенную не ранее 2.8.
Часто встречающиеся проблемы и пути их устранения#
Проблема |
Причина |
Решение |
|---|---|---|
Ошибка при подключении к проекту |
Пользователю не предоставлен доступ в проект |
Запросить доступ к проекту |
Ошибка при подключении к проекту |
Нет физического доступа к кластеру |
Зарегистрировать обращение в поддержку для восстановления доступа |
Ошибка при загрузке артефактов |
У пользователя, под которым производится загрузка, отсутствуют необходимые права |
Проверить и скорректировать настройку прав доступа пользователю |
Ошибка при получении Docker-образа из репозитория |
Отсутствуют права на Pull образа из репозитория |
Запросить права |
Ошибка при получении Docker-образа из репозитория |
Недоступен репозиторий |
Зарегистрировать обращение в поддержку для восстановления доступа |
Ошибка при получении Docker-образа из репозитория |
Неверная ссылка на имя образа Docker-контнейнера в Deployment шлюза |
Проверить ссылку, при необходимости скорректировать Deployment |
Отсутствует подключение к Kafka |
Установленная configmap является некорректной |
Проверить конфигурационные файлы, найти и устранить опечатки в имени topic(s), хоста и/или порта вызываемого сервиса и/или брокера Kafka |
Чтение журналов всех контейнеров Pod помогает найти причину и решение большинства проблем при установке.
Чек-лист валидации установки#
Для проверки валидности установки проверьте наличие всех установленных компонентов, например:
kubectl get deployment <deployment-name>
kubectl get service <service-name>
kubectl get se <serviceentry-name>
kubectl get configmap <configmap-name>
kubectl get secret <keystore-secret-name>
kubectl get secret <secret-name>
Все компоненты должны присутствовать в проекте и должна отсутствовать ошибка "Error from server (NotFound)".
Проверка внешних интеграций:
Система |
Действие |
|---|---|
Аудит |
В АРМ системы убедиться в наличии записей регистрации событий аудита |
Журналирование |
В АРМ системы убедиться в наличии логов |
Мониторинг |
В АРМ системы убедиться в наличии метрик |
OTT |
Убедиться, что в логах основного контейнера с приложением KFGT отсутствуют ошибки |
Kafka |
Убедиться, что в логах основного контейнера с приложением KFGT отсутствуют ошибки |
SecMan |
Убедиться, что в логах контейнера агента SecMan отсутствуют ошибки |
Инструкция по проверке работоспособности Kafka Gateway представлена в разделе Проверка работоспособности.