Розгортання Kubernetes
Ми надаємо Helm-чарт OpenTelemetry Demo, щоб допомогти розгорнути демо на наявному кластері Kubernetes.
Для використання чартів необхідно встановити Helm. Будь ласка, зверніться до документації Helm, щоб почати.
Попередні вимоги
- Kubernetes 1.24+
- 6 ГБ вільної оперативної памʼяті для застосунку
- Helm 3.14+ (тільки для методу встановлення Helm)
Встановлення за допомогою Helm (рекомендовано)
Додайте репозиторій Helm OpenTelemetry:
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
Щоб встановити чарт з імʼям релізу my-otel-demo, виконайте наступну команду:
helm install my-otel-demo open-telemetry/opentelemetry-demo
Примітка
Helm-чарт OpenTelemetry Demo не підтримує оновлення з однієї версії на іншу. Якщо вам потрібно оновити чарт, спочатку видаліть наявний реліз, а потім встановіть нову версію.Примітка
Для виконання всіх методів використання, згаданих нижче, потрібна версія Helm-чарту демо OpenTelemetry 0.11.0 або вище.Встановлення за допомогою kubectl
Наступна команда встановить демонстраційний застосунок у ваш кластер Kubernetes.
kubectl apply --namespace otel-demo -f https://raw.githubusercontent.com/open-telemetry/opentelemetry-demo/main/kubernetes/opentelemetry-demo.yaml
Примітка
Маніфести Kubernetes OpenTelemetry Demo не підтримують оновлення з однієї версії на іншу. Якщо вам потрібно оновити демо, спочатку видаліть наявні ресурси, а потім встановіть нову версію.Примітка
Ці маніфести генеруються з Helm-чарту і надаються для зручності. Рекомендується використовувати Helm-чарт для встановлення.Використання Demo
Для використання демонстраційного застосунку необхідно, щоб сервіси були доступні за межами кластера Kubernetes. Ви можете зробити сервіси доступними для вашої локальної системи за допомогою команди kubectl port-forward
або налаштувавши типи сервісів (наприклад, LoadBalancer) з опціонально розгорнутими ресурсами ingress.
Експонування сервісів за допомогою kubectl port-forward
Щоб відкрити сервіс frontendproxy, використовуйте наступну команду (замініть my-otel-demo
на відповідну назву релізу Helm-чарту):
kubectl port-forward svc/my-otel-demo-frontendproxy 8080:8080
Примітка
kubectl port-forward
проксіює порт до завершення процесу. Можливо, вам знадобиться створити окремі сеанси термінала для кожного використання kubectl port-forward
і використовувати Ctrl-C для завершення процесу після завершення.З налаштованим port-forward для frontendproxy ви можете отримати доступ до:
- Вебмагазин: http://localhost:8080/
- Grafana: http://localhost:8080/grafana/
- Інтерфейс користувача генератора навантаження: http://localhost:8080/loadgen/
- Інтерфейс користувача Jaeger: http://localhost:8080/jaeger/ui/
- Інтерфейс користувача конфігуратора Flagd: http://localhost:8080/feature
Експонування компонентів Demo за допомогою конфігурацій сервісів або ingress
Примітка
Ми рекомендуємо використовувати файл значень при встановленні Helm-чарту для вказівки додаткових параметрів конфігурації.Налаштування ресурсів ingress
Примітка
Кластери Kubernetes можуть не мати необхідних інфраструктурних компонентів для підтримки типів сервісів LoadBalancer або ресурсів ingress. Переконайтеся, що ваш кластер має необхідну підтримку перед використанням цих параметрів конфігурації.Кожен компонент демо (наприклад, frontendproxy) пропонує спосіб налаштування типу сервісу Kubernetes. Стандартно вони не будуть створені, але ви можете увімкнути та налаштувати їх через властивість ingress
кожного компонента.
Щоб налаштувати компонент frontendproxy для використання ресурсу ingress, ви повинні вказати наступне у вашому файлі значень:
components:
frontendProxy:
ingress:
enabled: true
annotations: {}
hosts:
- host: otel-demo.my-domain.com
paths:
- path: /
pathType: Prefix
port: 8080
Деякі контролери ingress вимагають спеціальних анотацій або типів сервісів. Зверніться до документації вашого контролера ingress для отримання додаткової інформації.
Налаштування типів сервісів
Кожен компонент демо (наприклад, frontendproxy) пропонує спосіб налаштування типу сервісу Kubernetes. Стандартно вони будуть ClusterIP
, але ви можете змінити кожен з них за допомогою властивості service.type
кожного компонента.
Щоб налаштувати компонент frontendproxy для використання типу сервісу LoadBalancer, ви повинні вказати наступне у вашому файлі значень:
components:
frontendProxy:
service:
type: LoadBalancer
Налаштування телеметрії оглядача
Для правильного збору відрізків з оглядача вам також потрібно вказати місце, де буде розташований OpenTelemetry Collector. Компонент frontendproxy визначає маршрут для колектора з префіксом шляху /otlp-http
. Ви можете налаштувати точку доступу колектора, встановивши наступну змінну середовища на компоненті frontend:
components:
frontend:
envOverrides:
- name: PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
value: http://otel-demo.my-domain.com/otlp-http/v1/traces
Використання власного бекенду
Ймовірно, ви хочете використовувати вебмагазин як демонстраційний застосунок для наявного бекенду спостережуваності (наприклад, наявного екземпляра Jaeger, Zipkin або одного з вибраних вами постачальників).
Конфігурація OpenTelemetry Collector доступна в Helm-чарті. Будь-які додавання, які ви зробите, будуть обʼєднані зі стандартною конфігурацією. Ви можете використовувати це для додавання власних експортерів і додавання їх до потрібних конвеєрів.
opentelemetry-collector:
config:
exporters:
otlphttp/example:
endpoint: <your-endpoint-url>
service:
pipelines:
traces:
exporters: [spanmetrics, otlphttp/example]
Примітка
При обʼєднанні значень YAML з Helm обʼєкти обʼєднуються, а масиви замінюються. Експортерspanmetrics
повинен бути включений у масив експортерів для конвеєра traces
, якщо він перевизначений. Не включення цього експортера призведе до помилки.Постачальники бекендів можуть вимагати додавання додаткових параметрів для автентифікації, будь ласка, зверніться до їх документації. Деякі бекенди вимагають різних експортерів, ви можете знайти їх і їх документацію на opentelemetry-collector-contrib/exporter.
Щоб встановити Helm-чарт з власним файлом значень my-values-file.yaml
, використовуйте:
helm install my-otel-demo open-telemetry/opentelemetry-demo --values my-values-file.yaml
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!