Перемикання трафіку

Це завдання показує, як перенести трафік з одної версії мікросервісу на іншу.

Звичайний випадок використання – це поступове перенесення трафіку зі старої версії мікросервісу на нову. В Istio ви досягаєте цієї мети, конфігуруючи послідовність правил маршрутизації, які перенаправляють відсоток трафіку з одного призначення на інше.

У цьому завданні ви направите 50% трафіку до reviews:v1 і 50% до reviews:v3. Потім ви завершите міграцію, направивши 100% трафіку до reviews:v3.

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

Застосування маршрутизації на основі коефіцієнтів

  1. Щоб почати, виконайте цю команду, щоб направити весь трафік до версії v1:
Zip
$ kubectl apply -f @samples/bookinfo/networking/virtual-service-all-v1.yaml@
  1. Відкрийте сайт Bookinfo у вашому оглядачі. URL-адреса: http://$GATEWAY_URL/productpage, де $GATEWAY_URL — це зовнішня IP-адреса ingress, як пояснено в документації Bookinfo.

    Зверніть увагу, що частина сторінки з відгуками показується без зірок рейтингу, незалежно від того, скільки разів ви оновлюєте сторінку. Це відбувається тому, що ви налаштували Istio для маршрутизації всього трафіку для сервісу відгуків до версії reviews:v1, і ця версія сервісу не використовує сервіс оцінок з зірками.

  2. Перенаправте 50% трафіку з reviews:v1 на reviews:v3 за допомогою такої команди:

Zip
$ kubectl apply -f @samples/bookinfo/networking/virtual-service-reviews-50-v3.yaml@
  1. Зачекайте кілька секунд, поки нові правила поширяться, а потім підтвердіть заміну правила:
$ kubectl get virtualservice reviews -o yaml
apiVersion: networking.istio.io/v1
kind: VirtualService
...
spec:
  hosts:
  - reviews
  http:
  - route:
    - destination:
        host: reviews
        subset: v1
      weight: 50
    - destination:
        host: reviews
        subset: v3
      weight: 50
  1. Оновіть сторінку /productpage у вашому оглядачі, і тепер ви будете бачити червоні зірки рейтингів приблизно 50% часу. Це відбувається тому, що версія v3 сервісу reviews використовує сервіс рейтингів з зірками, а версія v1 — ні.

  2. Якщо ви вирішите, що мікросервіс reviews:v3 стабільний, ви можете направити 100% трафіку до reviews:v3, застосувавши цей віртуальний сервіс:

Zip
$ kubectl apply -f @samples/bookinfo/networking/virtual-service-reviews-v3.yaml@
  1. Оновіть сторінку /productpage кілька разів. Тепер ви завжди будете бачити рецензії на книги з червоними зірками для кожної рецензії.

Розуміння того, що відбулося

У цьому завданні ви мігрували трафік зі старої версії на нову версію сервісу reviews, використовуючи функцію маршрутизації за коефіцієнтами в Istio. Зверніть увагу, що це дуже відрізняється від міграції версій за допомогою функцій розгортання платформ оркестрування контейнерів, які використовують масштабування екземплярів для управління трафіком.

За допомогою Istio ви можете дозволити двом версіям сервісу reviews масштабуватися вгору та вниз незалежно одна від одної, не впливаючи на розподіл трафіку між ними.

Для отримання додаткової інформації про маршрутизацію версій з автомасштабуванням, ознайомтеся зі статтею в блозі Canary Deployment з використанням Istio.

Очищення

  1. Видаліть правила маршрутизації застосунку:
Zip
$ kubectl delete -f @samples/bookinfo/networking/virtual-service-all-v1.yaml@
  1. Якщо ви не плануєте виконувати подальші завдання, зверніться до інструкції вилучення Bookinfo, щоб завершити роботу застосунку.
Чи була ця інформація корисною?
Чи є у вас пропозиції щодо покращення?

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