Встановлення компонентів ambient

Цей крок оновлює ваше встановлення Istio для включення компонентів даних ambient (ztunnel та оновлений CNI), залишаючи всі наявні робочі навантаження sidecar без змін. Ваші sidecars продовжуватимуть обробляти трафік нормально протягом цього кроку.

Оновлення до профілю ambient

Використання istioctl

Оновіть ваше поточне встановлення Istio для використання профілю ambient. Це додає DaemonSet ztunnel та оновлює втулок CNI для підтримки режиму ambient:

$ istioctl upgrade --set profile=ambient

Використання Helm

Якщо ви встановлювали Istio з Helm, оновіть кожен компонент для додавання підтримки ambient:

$ helm upgrade istio-base istio/base -n istio-system $ helm upgrade istiod istio/istiod -n istio-system --set profile=ambient $ helm upgrade istio-cni istio/cni -n istio-system --set profile=ambient $ helm install ztunnel istio/ztunnel -n istio-system  # новий компонент, раніше не встановлювався

Перевірка компонентів ambient

Після завершення оновлення перевірте, що ztunnel та оновлений CNI запущені:

$ kubectl get pods -n istio-system

Ви повинні бачити podʼи DaemonSet ztunnel, що запущені на кожному вузлі, крім ваших наявних podʼів Istiod та CNI:

NAME                                   READY   STATUS    RESTARTS   AGE
istio-cni-node-...                     1/1     Running   0          2m
istiod-...                             1/1     Running   0          2m
ztunnel-...                            1/1     Running   0          2m

Підтвердьте, що ztunnel запущений як DaemonSet на всіх вузлах:

$ kubectl get daemonset ztunnel -n istio-system

Увімкнення підтримки HBONE в наявних sidecars

Sidecar проксі мають бути перезапущені, щоб підхопити нову конфігурацію ISTIO_META_ENABLE_HBONE=true, яку профіль ambient встановлює в MeshConfig. Це дозволяє sidecars спілкуватися з робочими навантаженнями режиму ambient за допомогою протоколу HBONE.

Перезапустіть кожен простір імен, що має увімкнену інʼєкцію sidecar, або перезапустіть ваші окремі робочі навантаження на основі вашої стратегії розгортання. Наприклад, для перезапуску простору імен:

$ kubectl rollout restart deployment -n <namespace>
$ kubectl rollout status deployment -n <namespace>

Повторіть для кожного простору імен, що містить робочі навантаження, інʼєкція яких була виконана за допомогою sidecar.

Для перевірки, що підтримка HBONE активна на перезапущеному podʼі:

$ kubectl get pod <pod-name> -n <namespace> -o json | \
    jq '.spec.initContainers[] | select(.name=="istio-proxy") | .env[] | select(.name=="ISTIO_META_ENABLE_HBONE")'

Вивід має показати:

{
  "name": "ISTIO_META_ENABLE_HBONE",
  "value": "true"
}

Співпраця sidecar та ambient під час міграції

Коли pod з інʼєкцією sidecar спілкується з робочим навантаженням, яке вже переміщене в режим ambient, sidecar використовує протокол HBONE для тунелювання трафіку безпосередньо до ztunnel podʼа призначення.

Практичним наслідком є те, що L7 політики на waypoint (такі як правила HTTPRoute або AuthorizationPolicy з targetRefs) не застосовуються для трафіку, що надходить від робочих навантажень режиму sidecar під час періоду міграції. Sidecar застосовує власну L7 логіку перед надсиланням, але waypoint ніколи не маршрутизує цей трафік. Це означає, що L7 політики не будуть застосовані двічі, оскільки sidecar обробляє власні рішення щодо маршрутизації, а HBONE тунель доставляє трафік безпосередньо до призначення без повторної обробки на waypoint.

Розгортання waypoint проксі (опціонально)

Для просторів імен, що вимагають функцій L7, розгорніть waypoint проксі зараз. Waypoint буде налаштований, але ще не активований, трафік продовжуватиме йти через sidecars.

Розгорніть waypoint на рівні простору імен за допомогою istioctl:

$ istioctl waypoint apply -n <namespace>

Перевірте, що pod waypoint запущений:

$ kubectl get gateway waypoint -n <namespace>
$ kubectl get pods -n <namespace> -l gateway.istio.io/managed=istio.io-mesh-controller

Для отримання додаткових деталей щодо опцій конфігурації waypoint (на рівні сервісу, робочого навантаження або cross-namespace waypoints), див. Використання waypoint проксі.

Наступні кроки

Перейдіть до Міграція політик для оновлення ваших політик трафіку та авторизації для режиму ambient.

Якщо у вас немає ресурсів VirtualService або DestinationRule, а ваші ресурси AuthorizationPolicy використовують лише правила L4 (без відповідності HTTP метод/шлях/заголовок), пропустіть ту сторінку і перейдіть безпосередньо до Увімкнення режиму ambient.

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

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