Візуалізація вашої Mesh-мережі
Це завдання показує, як візуалізувати різні аспекти вашої мережі Istio.
У рамках цього завдання ви встановите надбудову Kiali та скористаєтеся графічним інтерфейсом, що працює в оглядачі, щоб переглядати схеми сервісів мережі та обʼєкти конфігурації Istio.
У цьому завданні використовується демонстраційний застосунок Bookinfo як приклад. Це завдання передбачає, що Bookinfo встановлено в просторі імен bookinfo
.
Перед початком
Слідуйте документації встановлення Kiali, щоб розгорнути Kiali у вашому кластері.
Генерація схеми
Щоб перевірити, чи працює сервіс у вашому кластері, виконайте наступну команду:
$ kubectl -n istio-system get svc kiali
Щоб визначити URL-адресу Bookinfo, дотримуйтесь інструкцій, щоб визначити Bookinfo ingress
GATEWAY_URL
.Щоб надсилати трафік у мережу, у вас є три варіанти
Відвідайте
http://$GATEWAY_URL/productpage
у вашому вебоглядачіВикористовуйте наступну команду кілька разів:
$ curl http://$GATEWAY_URL/productpage
Якщо ви встановили команду
watch
у вашій системі, надсилайте запити безперервно за допомогою:$ watch -n 1 curl -o /dev/null -s -w %{http_code} $GATEWAY_URL/productpage
Щоб відкрити інтерфейс Kiali, виконайте наступну команду у вашому середовищі Kubernetes:
$ istioctl dashboard kiali
Перегляньте огляд вашої мережі на сторінці Огляд, яка зʼявляється одразу після входу. Сторінка Огляд показує всі простори імен, що містять сервіси у вашій мережі. Ось скріншот подібної сторінки:
Приклад огляду Щоб переглянути графік простору імен, виберіть опцію
Graph
у меню з трьох крапок на картці огляду Bookinfo. Меню з трьох крапок знаходиться у верхньому правому куті картки та виглядає як 3 вертикальні крапки. Натисніть його, щоб побачити доступні опції. Сторінка виглядає приблизно так:Приклад графіка Схема представляє трафік, що проходить через сервісну мережу протягом певного часу. Він генерується за допомогою телеметрії Istio.
Щоб переглянути підсумок метрик, виберіть будь-який вузол або ребро на схемі, щоб переглянути його деталі метрик у панелі підсумкових деталей справа.
Щоб переглянути вашу сервісну мережу, використовуючи різні типи схем, виберіть тип схеми у меню Тип схеми. Є кілька типів схем на вибір: App, Versioned App, Workload, Service.
Тип схеми App обʼєднує всі версії застосунку в один вузол схеми. Наступний приклад показує один вузол reviews, що представляє три версії застосунку reviews. Зверніть увагу, що опція показу
Show Service Nodes
вимкнена.Приклад схеми застосунку Тип схеми Versioned App показує вузол для кожної версії застосунку, але всі версії конкретного застосунку згруповані разом. Наступний приклад показує групу вузлів reviews, яка містить три вузли, що представляють три версії застосунку reviews.
Приклад схеми версії застосунку Тип схеми Workload показує вузол для кожного навантаження у вашій сервісній мережі. Цей тип схеми не вимагає використання міток
app
іversion
, тому, якщо ви вирішите не використовувати ці мітки на ваших компонентах, це може бути вашим типом схеми.Приклад схеми навантаження Тип схеми Service показує узагальнення трафіку сервісів у вашій мережі.
Приклад схеми сервісів
Огляд конфігурації Istio
Опції лівого меню ведуть до списків для Applications, Workloads, Services та Istio Config.Ось скріншот інформації про Services для простору імен Bookinfo:
Приклад деталей
Зміщення трафіку
Ви можете використовувати майстра зміщення трафіку Kiali для визначення конкретного відсотка запитів, які потрібно направити на два або більше навантажень.
Перегляньте схему Versioned app graph
bookinfo
.Переконайтеся, що ви ввімкнули опцію Traffic Distribution для показу Edge Label, щоб бачити відсоток трафіку, спрямованого на кожне навантаження.
Переконайтеся, що ви ввімкнули опцію показу Service Nodes, щоб переглядати вузли сервісів на схемі.
Опції схеми Bookinfo Зосередьтеся на сервісі
ratings
у схеміbookinfo
, натиснувши на вузол сервісуratings
(трикутник). Зверніть увагу, що трафік сервісуratings
рівномірно розподіляється між двома навантаженнямиratings
v1
іv2
(50% запитів направляються на кожне навантаження).Схема, що показує відсоток трафіку Натисніть на посилання ratings, яке знаходиться в боковій панелі, щоб перейти до перегляду деталей для сервісу
ratings
. Це також можна зробити, виконавши другий клік на вузол сервісуratings
і вибравшиDetails
у контекстному меню.У меню Actions виберіть Traffic Shifting, щоб отримати доступ до майстра зміщення трафіку.
Меню дій сервісу Перетягуйте повзунки, щоб вказати відсоток трафіку, який потрібно направити на кожне навантаження. Для
ratings-v1
встановіть 10%; дляratings-v2
— 90%.Майстер зваженої маршрутизації Натисніть кнопку Preview, щоб переглянути YAML, який буде згенерований майстром.
Попередній перегляд майстра маршрутизації Натисніть кнопку Create і підтвердіть, щоб застосувати нові налаштування трафіку.
Натисніть Graph у лівій навігаційній панелі, щоб повернутися до схеми
bookinfo
. Зверніть увагу, що вузол сервісуratings
тепер має іконкуvirtual service
.Надішліть запити до
bookinfo
. Наприклад, щоб надіслати один запит на секунду, ви можете виконати цю команду, якщо у вас встановленийwatch
:$ watch -n 1 curl -o /dev/null -s -w %{http_code} $GATEWAY_URL/productpage
Через кілька хвилин ви помітите, що відсоток трафіку показує новий маршрут трафіку, підтверджуючи, що ваш новий маршрут трафіку успішно направляє 90% всіх запитів трафіку на
ratings-v2
.90% трафіку Ratings направлено на ratings-v2
Перевірка конфігурації Istio
Kiali може перевірити ваші ресурси Istio, щоб забезпечити їх відповідність належним умовам і семантиці. Будь-які проблеми, виявлені в конфігурації ваших ресурсів Istio, можуть бути позначені як помилки або попередження залежно від серйозності неправильного налаштування. Дивіться сторінку перевірок Kiali для отримання списку всіх перевірок, які виконує Kiali.
Примусово введіть неправильну конфігурацію імені порту сервісу, щоб побачити, як Kiali повідомляє про помилку перевірки.
Змініть імʼя порту сервісу
details
зhttp
наfoo
:$ kubectl patch service details -n bookinfo --type json -p '[{"op":"replace","path":"/spec/ports/0/name", "value":"foo"}]'
Перейдіть до списку Services, натиснувши Services у лівій навігаційній панелі.
Виберіть
bookinfo
з меню Namespace, якщо він ще не вибраний.Зверніть увагу на іконку помилки, що показується у стовпці Configuration рядка
details
.Список сервісів, що показує неправильну конфігурацію Натисніть на посилання details у стовпці Name, щоб перейти до перегляду деталей сервісу
details
.Наведіть курсор на іконку помилки, щоб показати підказку, що описує помилку.
Деталі сервісу, що описують неправильну конфігурацію Змініть імʼя порту назад на
http
, щоб виправити конфігурацію і повернутиbookinfo
до нормального стану.$ kubectl patch service details -n bookinfo --type json -p '[{"op":"replace","path":"/spec/ports/0/name", "value":"http"}]'
Деталі сервісу, що показують правильну конфігурацію
Перегляд і редагування YAML конфігурації Istio
Kiali надає редактор YAML для перегляду та редагування ресурсів конфігурації Istio. Редактор YAML також надає повідомлення про перевірку, коли виявляє неправильні конфігурації.
Введіть помилку в VirtualService
bookinfo
:$ kubectl patch vs bookinfo -n bookinfo --type json -p '[{"op":"replace","path":"/spec/gateways/0", "value":"bookinfo-gateway-invalid"}]'
Натисніть
Istio Config
на лівій навігаційній панелі, щоб перейти до списку конфігурацій Istio.Виберіть
bookinfo
з меню Namespace, якщо він ще не вибраний.Зверніть увагу на іконку помилки, яка сповіщає вас про проблему з конфігурацією.
Список конфігурацій Istio з некоректною конфігурацією Натисніть на іконку помилки у стовпці Configuration рядка
bookinfo
, щоб перейти до перегляду віртуального сервісуbookinfo
.Вкладка YAML попередньо вибрана. Зверніть увагу на кольорові підсвічування та іконки на рядках, які мають повʼязані повідомлення про перевірку.
Редактор YAML, що показує повідомлення про перевірку Наведіть курсор на червону іконку, щоб переглянути підказку, яка інформує вас про перевірку, що викликала помилку. Для отримання додаткових відомостей про причину помилки та способи її виправлення, перегляньте повідомлення про помилку перевірки на сторінці перевірок Kiali.
Редактор YAML, що показує підказку помилки Відновіть віртуальний сервіс
bookinfo
до його первісного стану.$ kubectl patch vs bookinfo -n bookinfo --type json -p '[{"op":"replace","path":"/spec/gateways/0", "value":"bookinfo-gateway"}]'
Додаткові функції
Kiali має багато інших функцій, ніж ті, що були розглянуті в цьому завданні, таких як інтеграція з Jaeger tracing.
Для отримання більш детальної інформації про ці додаткові функції, дивіться документацію Kiali.
Для глибшого вивчення Kiali рекомендується пройти Tutorial Kiali.
Очищення
Якщо ви не плануєте подальші завдання, видаліть демонстраційний застосунок Bookinfo та Kiali з вашого кластера.
Щоб видалити застосунок Bookinfo, дотримуйтесь інструкцій очищення Bookinfo.
Щоб видалити Kiali з середовища Kubernetes:
$ kubectl delete -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/addons/kiali.yaml