Установка Jaeger over YDB Backend
Jaeger — платформа для распределенной трассировки с открытым исходным кодом. Jaeger позволяет выполнять мониторинг состояния запросов и отладку после сбоев в распределенных системах микросервисных приложений.
В качестве хранилища данных Jaeger может использовать:
- Yandex Managed Service for YDB при установке через Yandex Cloud Marketplace.
- Другие системы хранения данных при установке через Helm-чарт.
Установка с помощью Cloud Marketplace
Перед началом работы
-
Установите kubectl и настройте его на работу с созданным кластером.
-
Для потоковой обработки JSON-файлов установите утилиту
jq
:sudo apt update && sudo apt install jq
-
Чтобы разрешить подам кластера Kubernetes подключаться к Managed Service for YDB, настройте группы безопасности. Добавьте правило для входящего трафика:
- Диапазон портов —
2135
. - Протокол —
TCP
. - Тип источника —
Группа безопасности
. - Группа безопасности — текущая (
Self
).
- Диапазон портов —
Подготовка Managed Service for YDB
-
Создайте базу данных подходящей вам конфигурации с типом БД
Dedicated
.Важно
БД в режиме
Dedicated
— обязательное условие корректной работы сервиса Jaeger. -
Создайте директорию с именем
jaeger
.
Создание сервисного аккаунта
Чтобы Jaeger мог взаимодействовать с Managed Service for YDB, создайте сервисный аккаунт и получите для него ключ.
-
Создайте сервисный аккаунт с подходящей вам ролью в кластере Kubernetes.
-
Создайте ключ для сервисного аккаунта и сохраните его на локальный компьютер:
yc iam key create \ --service-account-id <идентификатор сервисного аккаунта> \ --folder-id <идентификатор каталога> \ --cloud-id <идентификатор облака> \ --description jaeger-over-ydb \ --format json \ -o key.json
Результат:
{ "id": "<идентификатор ключа сервисного аккаунта>", "service_account_id": "<идентификатор сервисного аккаунта>", "created_at": "2022-01-27T03:29:45.139311367Z", "description": "jaeger-over-ydb", "key_algorithm": "RSA_2048" }
Примечание
Сохраните идентификаторы сервисного аккаунта и его ключа — они понадобятся при дальнейшей установке.
-
Сохраните ключ сервисного аккаунта в формате Base64:
jq -r .private_key key.json > key.pem
Установка Jaeger
-
Перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
-
Нажмите на имя нужного кластера и выберите вкладку Cloud Marketplace.
-
В разделе Доступные для установки приложения выберите Jaeger over Managed Service for YDB Backend и нажмите кнопку Использовать.
-
Задайте настройки приложения:
- Пространство имен — выберите пространство имен или создайте новое.
- Название приложения — укажите название приложения.
- Managed Service for YDB эндпоинт — укажите имя эндпоинта Managed Service for YDB, например
lb.etnk1hv0jol3cu5pojp7.ydb.mdb.yandexcloud.net:2135
. - База данных — укажите имя БД, например
/ru-central1/b1gkgm9daf4605njnmn8/etnk2hv0jol5cu5pojp7
. - Директория в базе данных —
jaeger
. - Использовать сервис метаданных для аутентификации изнутри ВМ — выберите эту опцию, если требуется аутентификация внутри виртуальной машины.
- ID ключа сервисного аккаунта — укажите идентификатор ключа сервисного аккаунта.
- Ключ сервисного аккаунта — укажите идентификатор сервисного аккаунта.
- Приватный ключ сервисного аккаунта — скопируйте в это поле содержимое файла
key.pem
. - Установить jaeger-agent — выберите эту опцию, чтобы установить jaeger-agent.
Имя эндпоинта и БД были получены при подготовке БД Managed Service for YDB, настройки для сервисного аккаунта — в предыдущем подразделе.
-
Нажмите кнопку Установить.
Установка с помощью Helm-чарта
-
Установите менеджер пакетов Helm версии не ниже 3.7.0.
-
Установите kubectl и настройте его на работу с созданным кластером.
-
Добавьте репозиторий
jaegertracing
:helm repo add jaegertracing https://jaegertracing.github.io/helm-charts
-
Установите Jaeger:
helm install jaeger jaegertracing/jaeger
-
При необходимости установите Kubernetes-оператор jaeger-operator:
helm install jaegertracing/jaeger-operator
Подробнее о таком типе установки см. в документации платформы Jaeger.