Примітки до оновлення Istio 1.29
Важливі зміни, на які слід звернути увагу при оновленні до Istio 1.29.0.
При оновленні з Istio 1.28.x до Istio 1.29.0 вам необхідно врахувати зміни на цій сторінці. У цих примітках детально описано зміни, які цілеспрямовано порушують зворотну сумісність з Istio 1.28.x. У примітках також згадуються зміни, які зберігають зворотну сумісність, але запроваджують нову поведінку. Зміни включено лише у тому випадку, якщо нова поведінка буде неочікуваною для користувача Istio 1.28.x.
HTTP-стиснення метрик Envoy (prometheus_stats) стандартно увімкнено
Анотацію sidecar.istio.io/statsCompression було позначено застарілою та видалено.
Тепер у proxyConfig існує опція statsCompression для глобального контролю підтримки стиснення точки доступу метрик (prometheus_stats) Envoy. Стандартне значення — true, що пропонує brotli, gzip та zstd залежно від Accept-Header, надісланого клієнтом.
Більшість збирачів метрик дозволяють індивідуальне налаштування стиснення. Якщо вам все ще потрібно перевизначити це для окремого podʼа, ви можете встановити statsCompression: false через анотацію proxy.istio.io/config.
Захоплення DNS в ambient стандартно увімкнено
Проксіювання DNS стандартно увімкнено для ambient-робочих навантажень у цьому випуску. Зауважте, що лише нові podʼи матимуть увімкнений DNS; наявні podʼи не матимуть захопленого DNS-трафіку. Щоб увімкнути цю функцію для наявних podʼів, ці podʼи необхідно або перезапустити вручну, або можна увімкнути функцію узгодження iptables при оновленні istio-cni через --set cni.ambient.reconcileIptablesOnStartup=true, яка автоматично узгодить наявні podʼи під час оновлення.
Оновлення в режимі ambient з dry-run AuthorizationPolicy
Якщо ви використовуєте dry-run AuthorizationPolicy і бажаєте увімкнути цю нову функцію, оновлення до 1.29 включає деякі важливі міркування. До Istio 1.29 ztunnel не мав жодної можливості обробляти dry-run AuthorizationPolicy. В результаті istiod не надсилав жодної dry-run політики до ztunnel. Istio 1.29 представляє експериментальну підтримку dry-run AuthorizationPolicy в ztunnel. Встановлення AMBIENT_ENABLE_DRY_RUN_AUTHORIZATION_POLICY=true змусить istiod почати надсилати dry-run політики до ztunnel, використовуючи нове поле в xDS. Ztunnel нижче версії 1.29 не підтримуватиме це поле. В результаті старіші ztunnel повністю застосовуватимуть ці політики, що, ймовірно, призведе до неочікуваного результату. Щоб забезпечити належне оновлення, важливо переконатися, що всі проксі ztunnel, які підключаються до istiod з увімкненою цією функцією, достатньо нові, щоб правильно обробляти ці політики.
Авторизація налагоджувальних точок доступу стандартно увімкнена
Інструменти, які отримують доступ до налагоджувальних точок доступу з несистемних просторів імен (такі як Kiali або власні інструменти моніторингу), можуть бути порушені. Несистемні простори імен тепер обмежені точками доступу config_dump, ndsz та edsz лише для проксі з того ж простору імен. Щоб відновити попередню поведінку, встановіть ENABLE_DEBUG_ENDPOINT_AUTH=false.
Зміна поведінки відстеження метрик автоматичного вимикача
Стандартна поведінка відстеження метрик залишку автоматичного вимикача змінилася. Раніше ці метрики зазвичай відстежувалися. Тепер відстеження типово вимкнено для кращого використання памʼяті проксі.
Щоб зберегти попередню поведінку, коли метрики залишку відстежувалися, ви можете:
- Встановити змінну оточення
DISABLE_TRACK_REMAINING_CB_METRICS=falseу вашому розгортанні istiod - Використати функцію версії сумісності, щоб отримати застарілу поведінку
Ця зміна впливає на поле TrackRemaining у конфігурації автоматичного вимикача Envoy.
Видалення з базового чарту Helm
Ряд конфігурацій, які раніше були присутні у чарті base Helm, були скопійовані до чарту istiod у попередніх випусках.
У цьому випуску дубльовані конфігурації повністю видалені з чарту base.
У таблиці нижче показано відповідність старої конфігурації новій:
| Стара | Нова |
|---|---|
ClusterRole istiod | ClusterRole istiod-clusterrole |
ClusterRole istiod-reader | ClusterRole istio-reader-clusterrole |
ClusterRoleBinding istiod | ClusterRoleBinding istiod-clusterrole |
Role istiod | Role istiod |
RoleBinding istiod | RoleBinding istiod |
ServiceAccount istiod-service-account | ServiceAccount istiod |
Примітка: більшість ресурсів додатково мають автоматично доданий суфікс. У старому чарті це було -{{ .Values.global.istioNamespace }}. У новому чарті це {{- if not (eq .Values.revision "") }}-{{ .Values.revision }}{{- end }} для ресурсів, обмежених простором імен, та {{- if not (eq .Values.revision "")}}-{{ .Values.revision }}{{- end }}-{{ .Release.Namespace }} для ресурсів, обмежених кластером.
Узгодження iptables в ambient стандартно увімкнено
Узгодження iptables стандартно увімкнено для ambient-робочих навантажень у випуску 1.29.0. Коли новий pod DaemonSet istio-cni запускається, він автоматично перевірятиме podʼи, які раніше були залучені до ambient mesh, та оновлюватиме їх внутрішньоподові правила iptables/nftables до поточного стану, якщо є будь-які відмінності. Цю функцію можна явно вимкнути за допомогою --set cni.ambient.reconcileIptablesOnStartup=false.