Zipkin

Після виконання цього завдання ви дізнаєтесь, як забезпечити участь вашого застосунку у зборі трейсів за допомогою Zipkin, незалежно від мови програмування, фреймворку або платформи, яку ви використовуєте для створення застосунку.

Це завдання використовує зразок застосунку Bookinfo як приклад.

Щоб дізнатися, як Istio обробляє трейси, відвідайте розділ огляд цього завдання.

Перш ніж почати

  1. Дотримуйтесь інструкцій у розділі Встановлення Zipkin для розгортання Zipkin у вашому кластері.

  2. Розгорніть зразок застосунку Bookinfo.

Налаштування Istio для розподіленого трейсингу

Налаштування постачальника розширень

Встановіть Istio з постачальником розширень посилаючись на сервіс Zipkin:

$ cat <<EOF > ./tracing.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
    defaultConfig:
       tracing: {} # відключіть застарілі параметри трейсингу MeshConfig
    extensionProviders:
    - name: zipkin
      zipkin:
        address: zipkin.istio-system.svc.cluster.local
        port: 9411
EOF
$ istioctl install -f ./tracing.yaml --skip-confirmation

Увімкнення трейсингу

Увімкніть трейсинг, застосувавши наступну конфігурацію:

$ kubectl apply -f - <<EOF
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
  name: mesh-default
  namespace: istio-system
spec:
   tracing:
   - providers:
     - name: "zipkin"
EOF

Доступ до інфопанелі (дашбоарду)

Детальніше про конфігурацію доступу до надбудов Istio через шлюз можна прочитати в завданні Віддалений доступ до надбудов телеметрії.

Для тестування (та тимчасового доступу) ви також можете використовувати перенаправлення портів. Використовуйте наступну команду, припускаючи, що ви розгорнули Zipkin у просторі імен istio-system:

$ istioctl dashboard zipkin

Генерація трейсів за допомогою Bookinfo

  1. Коли застосунок Bookinfo буде запущений, зверніться до http://$GATEWAY_URL/productpage один або більше разів, щоб згенерувати інформацію для трейсів.

    Щоб побачити дані трасування, потрібно надіслати запити до вашої служби. Кількість запитів залежить від коефіцієнта відбору Istio і може бути налаштована за допомогою Telemetry API. При стандартному значенні для коефіцієнта відбору в 1% вам потрібно надіслати принаймні 100 запитів, перш ніж перші трейси стануть видимими.

    Щоб надіслати 100 запитів до служби productpage, використовуйте наступну команду:

    $ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done
  2. На панелі пошуку натисніть на плюсик. Виберіть serviceName з першого списку, productpage.default з другого списку, а потім натисніть на іконку пошуку:

    Панель трейсів
    Панель трейсів
  3. Натисніть на результат пошуку ISTIO-INGRESSGATEWAY, щоб побачити деталі, що відповідають останньому запиту до /productpage:

    Детальний вигляд трейсів
    Детальний вигляд трейсів
  4. Трасування складається з набору відрізків, де кожен відрізок відповідає одному з сервісів Bookinfo, які викликаються під час виконання запиту до /productpage, або внутрішньому компоненту Istio, наприклад: istio-ingressgateway.

Очищення

  1. Завершіть всі процеси istioctl, які можуть все ще працювати, за допомогою комбінації клавіш Control-C або наступної команди:

    $ killall istioctl
  2. Якщо ви не плануєте виконувати інші завдання, ознайомтеся з інструкціями Очищення після використання Bookinfo, щоб вимкнути застосунок.

Чи була ця інформація корисною?
Чи є у вас пропозиції щодо покращення?

Дякуємо за ваш відгук!