Анонс Istio 1.30.1
Патч-реліз Istio 1.30.1.
Цей реліз містить виправлення помилок для покращення надійності. Ця примітка до релізу описує, що змінилося між Istio 1.30.0 та 1.30.1.
ПЕРШ НІЖ ОНОВИТИСЬ
Що потрібно знати та підготувати перед оновленням.
ЗАВАНТАЖИТИ
Завантажити та встановити цей випуск.
ДОКУМЕНТАЦІЯ
Відвідайте документацію до цього випуску.
ЗМІНИ СИРЦІВ
Ознайомтеся з повним набором змін у вихідному коді.
Оновлення безпеки
- CVE-2026-47774 (оцінка CVSS 7.5, Високий): Неавтентифікований віддалений зловмисник може спричинити відмову в обслуговуванні, вичерпуючи памʼять у процесі Envoy. Байти заголовка Cookie не повністю враховуються під час перевірки розміру заголовка запиту, а ліміти HPACK блоку заголовків застосовуються до закодованих байтів без відповідного ліміту на загальний розмір декодованих заголовків, що дозволяє зловмисникам спричиняти надмірне споживання памʼяті через спеціально сформовані HTTP/2 запити.
Зміни
Оновлено надбудову Kiali до версії
v2.26.0.Додано підтримку виключення конфігурації політики з Istio, коли анотація
istio.io/ignore-policy-attachmentвстановлена у"true"на обʼєктіBackendTLSPolicyабоXBackendTrafficPolicy. Це дозволяє користувачам запобігати перекладанню конкретних політик у конфігурацію Istio, коли політика призначена для іншого контролера шлюзу, ніж Istio. (Тікет #60122)Додано перевірку ініціалізації, яка верифікує, що вбудований бінарний файл
nftпідтримує вивід JSON. Нативний бекенд nftables вимагає JSON для читання конфігурації під час видалення пода. На хостах, чий бінарний файлnftне підтримує JSON, ці виклики завершуються помилкоюError: JSON support not compiled-inпри кожному видаленні, і агент CNI безкінечно повторює спроби. Нова перевірка виявляє цю помилку при запуску та перемикається на бекенд iptables. (Тікет #60328)Додано перевірку
istioctl analyzeIST0176, яка позначає CRD Gateway API, встановлені в кластері у версії нижчій за мінімально необхідну поточну версію Istio. Ресурси, що базуються на таких CRD, беззвучно фільтруються istiod, що раніше ускладнювало виявлення зламу TLS passthrough після оновлення до Istio 1.30 зі застарілими CRD Gateway API.Виправлено вирішення конфліктів
BackendTLSPolicyу Gateway API. (Тікет #57817)Виправлено проблему, через яку HTTPS слухачі, визначені через
ListenerSet, не доставляли TLS сертифікати, коли батьківськийGatewayвикористовував ручне розгортання. (Тікет #59535)Виправлено проблему, через яку фільтри
HTTPRouteтаGRPCRouteз невалідними значеннями заголовків беззвучно відкидалися з конфігурації Envoy замість повідомлення про статус невалідного фільтра. (Тікет #59933)Виправлено проблему, через яку мультимережний ambient не маршрутизував до waypoint, коли вхід на одній мережі викликав сервіс у іншій мережі, навіть коли
Serviceбув налаштований зistio.io/ingress-use-waypoint.Виправлено проблему, через яку балансування навантаження
consistentHashуDestinationRuleне відправляло трафік до нових точок доступу після масштабування, через регресію Envoy (envoyproxy/envoy#45212), де кільцеRING_HASHне перебудовувалося при зміні точок доступу під час пакетних оновлень. (Тікет #60312)Виправлено фатальну паніку
concurrent map writesу агенті istio-cni, коли два пода додавалися до ambient mesh на одному вузлі одночасно. (Тікет #60328)Виправлено помилку ambient режиму, через яку окремий
Service, що поєднувавpublishNotReadyAddresses: trueз пресетом розподілу трафікуPreferSameZoneабоPreferSameNode, спричиняв, щоб ztunnel отримувавhealthPolicy: AllowAllдля кожного іншогоService, що використовує той самий пресет розподілу трафіку, що призводило до маршрутизації трафіку до неготових точок доступу у всьому кластері. (Тікет #60422)Виправлено проблему, через яку pilot генерував конфігурацію для agentgateway, ігноруючи ресурси
ListenerSetта маршрути, прикріплені до них. Pilot тепер коректно включає ресурсиListenerSetу конфігурацію agentgateway, вмикаючи agentgateway у Istio для правильної обробки ресурсівListenerSet.Виправлено звітування статусу
ListenerSet, колиListenerSetне дозволено батьківським ресурсомGatewayдля agentgateway. КолиListenerSetне дозволено батьківськимGateway, статус умовиAcceptedтепер коректно повідомляється якFalse. Крім того, оскільки функціяListenerSetне є експериментальною з Gateway APIv1.5.0, вона більше не охороняється прапорцем функціїPILOT_ENABLE_ALPHA_GATEWAY_API.Виправлено зовнішнього провайдера SDS для шлюзів для використання імені облікових даних (після видалення префікса
sds://) як імені ресурсу SDS замість імені провайдера. Це дозволяє кільком шлюзам, що використовують один SDS провайдер, запитувати різні сертифікати. Для mutual TLS імʼя ресурсу CA сертифіката коректно виводиться як<credential-name>-cacert. Коли не налаштовано ні UDS сокет, ні розширення SDS провайдера, шлюз тепер відкатується до отримання сертифікатів через ADS (KubernetesSecrets) замість беззвучного збою. (Тікет #57080)Виправлено ситуацію взаємного блокування в багатокластерному
ClusterStore, колиAllReadyміг рекурсивно блокуватиRWMutexсховища для читання черезtriggerRecomputeOnSync→GetByID, поки писач перебував у стані очікування, що блокувало подальші операції читання та запису у сховищі.