Настройка трассировки OpenTelemetry с помощью Istio
Istio 1.22+
| Заявление о поддержке
Эта интеграция основана на открытом исходном коде, контролируемом соответствующими сообществами, и не подпадает под действие политики поддержки Ключ-АСТРОМ. Несмотря на наше стремление оказать помощь, о проблемах и предложениях по функциям следует сообщать непосредственно в соответствующий проект. Ключ-АСТРОМ не может гарантировать исправление/внедрение функций в связи с независимостью проектов с открытым исходным кодом. Всегда используйте самую последнюю версию релиза. |
Важная часть трассировки — наличие стабильной единой точки в архитектуре, где гарантирована инициализация трассировки, например, запуск новых или продолжение существующих трассировок с помощью распространения контекста. Поскольку сетевые запросы сначала поступают на границу сети, это идеальное место для этого.
В среде Kubernetes это можно реализовать с помощью Istio и автоматического развертывания HTTP-прокси-сервисов. В следующей конфигурации поставщик расширений Istio OpenTelemetry используется для автоматического развертывания и настройки HTTP-прокси для экспорта трассировок OpenTelemetry в Ключ-АСТРОМ.
Зачем мигрировать?
В Envoy поддержка OpenTracing прекращена, начиная с версии Envoy 1.30 (Istio 1.22). Поскольку кодовый модуль Ключ-АСТРОМ Envoy основан на OpenTracing, он доступен только до версии Envoy 1.29 (Istio 1.21). Начиная с Envoy 1.30 / Istio 1.22, мы рекомендуем следовать этому руководству по настройке и использовать конфигурацию трассировки Istio OpenTelemetry, включая обнаружение и выборку ресурсов Ключ-АСТРОМ.
Влияние лицензирования
Переход с кодового модуля Ключ-АСТРОМ Envoy на новый подход на основе OpenTelemetry может повлиять на потребление лицензий в зависимости от конфигурации выборки и используемого вами подхода к развертыванию Kubernetes:
- Трассировка Istio OTEL, включающая детектор ресурсов и сэмплер Ключ-АСТРОМ : при выполнении инструкций на этой странице и настройке Istio, включая сэмплер Ключ-АСТРОМ, при использовании классических полностековых или облачных полностековых развертываний потребление лицензий не изменится, поскольку оно покрывается вашими хост-единицами (лицензия Ключ-АСТРОМ Classic) или ГБ-часами памяти хоста (DPS) . Для развертываний, использующих только функцию Observability, новый подход к трассировке Istio подлежит DDU для пользовательских трассировок (лицензия Ключ-АСТРОМ Classic) или пользовательских классических трассировок (DPS) вместо потребления хост-единиц-часов, полученных из модуля кода Envoy.
- Трассировка Istio OTEL без детектора/сэмплера ресурсов Ключ-АСТРОМ: эта конфигурация всегда приводит к DDU для пользовательских трассировок (лицензия Ключ-АСТРОМ Classic) или потребления Custom Traces Classic (DPS).
1. Получите записи конфигурации
- В Ключ-АСТРОМ найдите
Istio. - Фильтр по категории Технологии.
- Выберите запись Hub Istio Service Mesh.
- Выберите Настроить.
- Настройте токен API.
- Используйте предоставленные и предварительно настроенные фрагменты для развертывания следующих элементов на следующих этапах:
- конфигурация сетки
- запись службы
- API телеметрии
2. Примените конфигурацию Mesh к вашей установке Istio
Сохраните фрагмент конфигурации Mesh, полученный на шаге 1 meshconfig.yaml, и настройте Istio с помощью следующей команды:
| istioctl install -f meshconfig.yaml |
| Существующая конфигурация сетки
Если вы уже используете собственную конфигурацию Mesh, вам необходимо объединить её содержимое с предоставленным фрагментом. В противном случае вы можете использовать фрагмент как есть. |
3. Разверните запись службы
Далее необходимо развернуть манифест записи службы Istio, полученный на шаге 1, с помощью kubectl. Сохраните его в service_entry.yaml и выполните следующую команду:
| kubectl apply -n istio-system -f service_entry.yaml |
4. Включить поставщика отслеживания
На последнем этапе настройки используйте API телеметрии Istio, чтобы включить поставщика трассировки.
Сохраните манифест API телеметрии, полученный на шаге 1 tracing.yaml, и используйте его в kubectl для применения конфигурации к нужному пространству имен.
| kubectl apply -n istio-system -f tracing.yaml |
| Несколько телеметрических ресурсов
Не развертывайте более одного ресурса телеметрии в одном пространстве имен, так как это может привести к конфликтам конфигураций и неполной информации трассировки. Если вам требуются другие ресурсы телеметрии, разверните их в других пространствах имен или используйте другие селекторы. |
| Перезапуск Pod
Обязательно перезапустите все соответствующие модули Kubernetes, чтобы изменения в конфигурации сетки вступили в силу. |
5. Проверьте настройку
После завершения настройки и получения первых данных вы можете проверить, отображаются ли трассировки в Ключ-АСТРОМ.
