Примітки до змін Istio 1.24.0
Примітки до змін в Istio 1.24.0.
Режим ambient
Додано підтримку прикріплення політик до
ServiceEntryдля waypointʼів.Додано нову анотацію,
ambient.istio.io/bypass-inbound-capture, яку можна застосувати, щоб змусити ztunnel захоплювати лише вихідний трафік. Це може бути корисним для уникнення зайвого переходу для робочих навантажень, які приймають трафік тільки від клієнтів за межами mesh (наприклад, podʼи з доступом до Інтернету).Додано нову анотацію,
networking.istio.io/traffic-distribution, яка дозволяє ztunnel надавати перевагу локальним подам при передачі трафіку. Це працює так само як полеspec.trafficDistributionуService, але дозволяє використання на старіших версіях Kubernetes (оскільки поле було додано як бета у Kubernetes 1.31). Зазначимо, що waypointʼи автоматично налаштовують цю анотацію.Виправлено проблему, яка заважала працювати протоколам з ініціативою від сервера з waypoint’ами.
Покращено журнали Envoy, що містять деталі про збої зʼєднання в ambient mode.
Додано підтримку налаштування
Telemetryу waypoint proxy.Додано записування статусу для привʼязки AuthorizationPolicy до waypoint proxy. Форматування статусів наразі експериментальне і може змінитися. Політика з кількома
targetRefsнаразі отримує єдиний статус. Як тільки патерн для статусів із кількома посиланнями буде прийнятий у Kubernetes Gateway API, Istio прийме цей стандарт для більш детальної інформації при використанні кількохtargetRefs. (Issue #52699)Виправлено проблему, через яку podʼи з
hostNetworkфункціонували неправильно в ambient mode.Покращено спосіб, яким ztunnel визначає, від імені якого podʼа він діє. Раніше це залежало від IP-адрес, що було ненадійним у деяких сценаріях.
Виправлено проблему, через яку ігнорувалися будь-які
portLevelSettingsуDestinationRuleу waypoint’ах. (Issue #52532)Виправлено проблему з використанням політик дзеркалювання з waypointʼами. (Issue #52713)
Додано підтримку правила
connection.sniуAuthorizationPolicy, застосованого до waypoint’а. (Issue #52752)Оновлено метод перенаправлення, що використовується в Ambient, з
TPROXYнаREDIRECT. Для більшості користувачів це не повинно вплинути на роботу, але вирішує деякі проблеми сумісності зTPROXY. (Issue #52260),(Issue #52576)
Управління трафіком
Підвищено підтримку Istio dual-stack до Альфа-версії. (Issue #47998)
Додано параметри
warmup.aggression,warmup.duration,warmup.minimumPercentдоDestinationRuleдля більш гнучкого контролю поведінки під час розігріву. (Issue #3215)Додано політику повторних спроб для вхідних запитів, яка автоматично скидає запити, які сервіс не обробив. Це можна скасувати, встановивши
ENABLE_INBOUND_RETRY_POLICYна false. (Issue #51704)Виправлено стандартну політику повторних спроб, щоб виключити повтори для 503, що потенційно небезпечно для ідемпотентних запитів. Цю поведінку можна тимчасово скасувати, встановивши
EXCLUDE_UNSAFE_503_FROM_DEFAULT_RETRY=false. (Issue #50506)Оновлено поведінку XDS-генерації для узгодженості у випадках, коли
Sidecarконфігуровано, та коли ні. Дивіться примітки до оновлення для отримання додаткової інформації.Покращено вебхук для валідації Istiod, щоб приймати версії, про які він не знає. Це забезпечує можливість старішим версіям Istio валідувати ресурси, створені новішими CRD.
Покращено підтримку dual-stack сервісів, об’єднуючи кілька IP-адрес в одну єдину точку доступу, замість їх обробки як двох окремих. (Issue #40394)
Додано підтримку відповідності декількох IP-адрес (для dual-stack сервісів) у HTTP-маршруті.
Додано у
VirtualServiceпідтримкуsourceNamespaces, які тепер враховуються при фільтрації непотрібної конфігурації.Додано підтримку обходу менеджера перевантаження для статичних слухачів. Це можна скасувати, встановивши
BYPASS_OVERLOAD_MANAGER_FOR_STATIC_LISTENERSна false у Deployment агента. (Issue #41859),(Issue #52663)Додано нову змінну середовища
ENVOY_DNS_JITTER_DURATIONдля istiod зі стандартним значенням100ms, яка встановлює джиттер для періодичного DNS-розвʼязування. Дивітьсяdns_jitterуhttps://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto. Це може допомогти зменшити навантаження на DNS-сервер кластера. (Issue #52877)Додано підтримку налаштування параметрів сертифікатів під час заповнення XFCC заголовка через нове поле
ProxyConfig,proxyHeaders.setCurrentClientCertDetails.Додано можливість для користувачів вставляти додаткові пробіли між просторами імен в анотації
networking.istio.io/exportTo. (Issue #53429)Додано експериментальну функцію для лінивого створення підмножини статистик Envoy. Це дозволить економити памʼять та обчислювальні ресурси при створенні обʼєктів, що зберігають ці статистики, якщо ці статистики не будуть використані протягом усього часу виконання процесу. Це можна вимкнути, встановивши
ENABLE_DEFERRED_STATS_CREATIONна false у Deployment агента.Виправлено відповідність кількох IP-сервісів у ServiceEntry. Дивіться примітки до оновлення для отримання додаткової інформації. (Issue #51747),(Issue #30282)
Виправлено
MeshConfigserviceSettings.settings.clusterLocalдля надання переваги більш точним іменам хостів, дозволяючи виключення хостів.Виправлено
DestinationRulesна одному хості, щоб вони не обʼєднувалися, якщо мають різні значенняexportTo. Стару поведінку можна тимчасово відновити, встановившиENABLE_ENHANCED_DESTINATIONRULE_MERGE=false. (Issue #52519)Виправлено проблему, коли IP-адреси, призначені контролером, не відповідали перехопленню DNS для проксі так само, як тимчасові автоматично призначені IP-адреси. (Issue #52609)
Виправлено проблему, через яку waypointʼи ігнорували автоматично призначені IP-адреси для
ServiceEntryу деяких випадках. (Issue #52746)Виправлено проблему, коли ланцюг
ISTIO_OUTPUTуiptablesне видалявся за допомогою командиpilot-agent istio-clean-iptables. (Issue #52835)Виправлено проблему, коли використання HTTPS у повільних сценаріях запитів, таких як мережі з великими втратами пакетів, могло потенційно призвести до витоку памʼяті в Envoy. (Issue #52850)
Виправлено помилку, коли DNS-проксі містив непідготовлені точки доступу для headless сервісів.
Видалено застарілу мітку
istio.io/gateway-name, будь ласка, використовуйте натомістьgateway.networking.k8s.io/gateway-name.Видалено записування
kubeconfigу теку CNI net. (Issue #52315)Видалено
CNI_NET_DIRз configmapistio-cni, оскільки він більше не виконує ніяких функцій. (Issue #52315)
Телеметрія
Оновлено словник CEL, що використовується в API телеметрії та розширеннях. Дивіться примітки до оновлення для детальнішої інформації.
Додано нову змінну шаблону (
%SERVICE_NAME%) для префіксу статистики (Issue #52177)Додано значення
logAsJsonдо Helm-чарту ztunnel (Issue #52631)Додано конфігурацію теґів статистики для метрик спостереження. (Issue #52731)
Додано підтримку заголовків та конфігурацій тайм-ауту для gRPC-запитів під час експорту трейсів до OpenTelemetry Collector. (Issue #52873)
Додано підтримку налаштованої точки доступу Zipkin collector через
meshConfig.extensionProviders.zipkin.path. (Issue #53086)Виправлено Додано порт метрик до podʼів, створених автоматизованими розгортаннями
Gateway.Виправлено Оновлення
citadel_server_root_cert_expiry_timestamp,citadel_server_root_cert_expiry_seconds,citadel_server_cert_chain_expiry_timestampтаcitadel_server_cert_chain_expiry_secondsпри завантаженні нових сертифікатів.Додано параметр
SECRET_GRACE_PERIOD_RATIO_JITTERзі стандартним значенням0.01для введення випадкового зсуву вSECRET_GRACE_PERIOD_RATIO. Без цієї конфігурації проксі, розгорнуті одночасно, запитуватимуть оновлення сертифікатів одночасно, що може призвести до надмірного навантаження на сервер CA. Нова типова поведінка передбачає оновлення сертифікатів кожні 12 годин, що коригується на +/- приблизно 15 хвилин завдяки цьому значенню. (Issue #52102)
Встановлення
Оновлено значення
securityContext.privilegedдля istio-cni на false на користь специфічних для функцій дозволів. istio-cni залишається “привілейованим” контейнером відповідно до стандартів безпеки Kubernetes для Podʼів, оскільки навіть без цього прапорця він має привілейовані можливості, зокремаCAP_SYS_ADMIN. (Issue #52558)Покращено ресурс Waypoint тепер можна налаштувати за допомогою
global.waypoint.resources. (Issue #51496)Покращено
affinityдля podʼів Waypoint тепер налаштовується черезwaypoint.affinity. (Issue #52883)Покращено параметри
topologySpreadConstraintsдля podʼів Waypoint тепер налаштовуються черезglobal.waypoint.topologySpreadConstraints. (Issue #52901)Покращено параметри
tolerationsдля podʼів Waypoint тепер налаштовуються черезglobal.waypoint.tolerations. (Issue #52901)Покращено параметри
nodeSelectorдля podʼів Waypoint тепер налаштовуються черезglobal.waypoint.nodeSelector. (Issue #52901)Покращено обсяг памʼяті DaemonSet
istio-cni-node. У багатьох випадках це дозволяє зменшити споживання памʼяті до 80%. (Issue #53493)Оновлено зразок застосунку Kiali до версії v2.0.
Оновлено всі компоненти Istio для читання
v1CRD, де це можливо. Це не має впливати на роботу, якщо кластер не використовує CRD версії Istio 1.21 або старішої (яка не підтримується).Додано мітки
app.kubernetes.io/name,app.kubernetes.io/instance,app.kubernetes.io/part-of,app.kubernetes.io/version,app.kubernetes.io/managed-by, таhelm.sh/chartдо майже всіх ресурсів. (Issue #52034)Додано конфігурації для встановлення Helm для конкретних платформ. Приклад:
helm install istio-cni --set profile=ambient --set global.platform=k3shelm install istiod --set profile=ambient --set global.platform=k3sДля списку наразі підтримуваних перевизначень для платформ перегляньте файли
manifests/charts/platform-xxx.yaml.Видалено варіанти профілю
openshift, замінені на перевизначенняglobal.platform. Приклад:helm install istio-cni --set profile=ambient-openshiftтеперhelm install istio-cni --set profile=ambient --set global.platform=openshiftДодано можливість налаштовувати
initContainersдля Istiod. (Issue #53120)Додано налаштування (
strategy,minReadySeconds, іterminationGracePeriodSeconds) для стабілізації шлюзів при великому навантаженні. (Issue #53121)Додано значення
seLinuxOptionsдо Helm-чартуistio-cni. На деяких платформах (наприклад, OpenShift) необхідно встановитиseLinuxOptions.typeякspc_t, щоб обійти деякі обмеження SELinux, повʼязані з томамиhostPath. Без цього налаштування podʼиistio-cni-nodeможуть не запускатися. (Issue #53558)Додано підтримку додавання довільних змінних середовища в Helm-чарт
istio-cni.Додано нову анотацію
sidecar.istio.io/nativeSidecarдля керування інʼєкцією вбудованого sidecar на рівні podʼів. Ця анотація може бути встановлена якtrueабоfalse, щоб увімкнути або вимкнути вбудовану інʼєкцію для podʼа. Вона має вищий пріоритет над глобальною змінною середовищаENABLE_NATIVE_SIDECARS. (Issue #53452)Додано можливість додавати налаштовану анотацію до
MutatingWebhookConfigurationдля теґів ревізій через Helm-чарт.Виправлено правила
kube-virt-interfaces, які не видалялися інструментомistio-clean-iptables. (Issue #48368)Виправлено можливість повторного виконання istio-iptables, пропускаючи крок застосування, якщо існуючі правила сумісні.
Виправлено проблему, де деякі рядки статусу втсановлення не завершувалися коректно, що могло спричиняти некоректне відображення при зміні розміру вікон терміналу. (Issue #52525)
Виправлено значення
allowPrivilegeEscalationнаtrueу ztunnel — насправді воно завжди було примусовоtrue, але K8S не перевіряє це належним чином: https://github.com/kubernetes/kubernetes/issues/119568.Виправлено видалено некритичні компоненти з
base-чарту та видаленоpilot.enabledз чартівistiod-remoteтаistio-discovery.Виправлено стандартне встановлення шаблонних CRD у
base-чарті. Раніше це працювало лише за певних умов, і при використанні певних прапорців інсталяції могло призводити до CRD, які можна було оновити лише вручну черезkubectl. Дивіться примітки до оновлення для детальнішої інформації.Застаріло
Values.base.enableCRDTemplates. Ця опція тепер стандартно має значенняtrueі буде видалена в майбутньому релізі. До того часу, щоб увімкнути попередню поведінку, можна встановити значенняfalse. (Issue #43204)Видалено деякі поля з API значень helm, які не мали ефекту, а в деяких випадках були давно застарілими. Видалені поля:
pilot.configNamespace,pilot.configSource,pilot.enableProtocolSniffingForOutbound,pilot.enableProtocolSniffingForInbound,pilot.useMCP,global.autoscalingV2API,global.configRootNamespace,global.defaultConfigVisibilitySettings,global.useMCP,sidecarInjectorWebhook.objectSelector, таsidecarInjectorWebhook.useLegacySelectors. (Issue #51987)Видалено невикористовувані значення
istio_cniз чартуistiod, які були позначені як застарілі два релізи тому (#49290). (Issue #52645)Видалено чарт
istiod-remoteна користьhelm install istio-discovery --set profile=remote.Видалено підтримку профілю сумісності
1.20. Цей профіль налаштовував такі параметри:ENABLE_EXTERNAL_NAME_ALIAS,PERSIST_OLDEST_FIRST_HEURISTIC_FOR_VIRTUAL_SERVICE_HOST_MATCHING,VERIFY_CERTIFICATE_AT_CLIENTтаENABLE_AUTO_SNI. Всі ці прапорці, крімENABLE_AUTO_SNI, також були повністю видалені з Istio.Видалено анотацію
sidecar.istio.io/enableCoreDump. Зразок налаштування для увімкнення дампів памʼяті тепер доступний у файліsamples/proxy-coredump.Видалено застарілі параметри прапорця
--log_rotate_*. Користувачам, які бажають використовувати обертання логів, рекомендовано застосовувати зовнішні інструменти для цього.
istioctl
Додано автоматичне виявлення різних платформо-залежних несумісностей під час встановлення.
Додано нову команду
istioctl manifest translateдля допомоги у переході зistioctl installнаhelm.Додано новий прапорець
remote-contextsдо командиistioctl analyzeдля вказання контекстів віддалених кластерів під час багатокластерного аналізу. (Issue #51934)Додано підтримку фільтрації Pod за селектором міток у
istioctl x envoy-stats.Додано підтримку фільтрації ресурсів за простором назв у
istioctl experimental injector list.Додано підтримку прапорців
--impersonateу istioctl. (Issue #52285)Виправлено помилку IST0145 у звіті
istioctl analyzeз підстановочним ім’ям хосту та певним субдоменом. (Issue #52413)Виправлено
istioctl experimental injector listтепер не відображає вебхуки, які не стосуються Istio.Видалено команди
istioctl manifest diffтаistioctl manifest profile diff. Користувачі, які хочуть порівняти маніфести, можуть скористатися загальними інструментами порівняння YAML.Видалено команду
istioctl profile. Така інформація доступна у документації Istio.
Зміни в документації
- Покращено читабельність документації Istio, перейменувавши зразковий застосунок
sleepнаcurl. (Issue #15725)