Примітки до змін Istio 1.28.0
Примітки до змін Istio 1.28.0.
Керування трафіком
Просування підтримки Istio dual-stack до бета-версії. (Тікет #54127)
Оновлено стандартне значення максимальної кількості прийнятих зʼєднань на подію сокета. Тепер стандартне значення — 1 для вхідних та вихідних слухачів sidecar, які привʼязуються до портів явно. Слухачі без перехоплення iptables отримають кращу продуктивність при високій інтенсивності зʼєднань. Щоб повернутися до старої поведінки, можна задати
MAX_CONNECTIONS_PER_SOCKET_EVENT_LOOPу нуль.Додано підтримку атрибутів файлів cookie у механізмі розподілу навантаження з використанням алгоритму «послідовного хешування». Тепер можна вказувати додаткові атрибути, такі як
SameSite,SecureтаHttpOnly. Це забезпечує більш безпечну та відповідну вимогам обробку файлів cookie у сценаріях розподілу навантаження. (Тікет #56468), (Тікет #49870)Додано змінну середовища
DISABLE_SHADOW_HOST_SUFFIXдля керування поведінкою суфіксів тіньових хостів у політиках дзеркалювання. Якщо встановлено значенняtrue(стандартно), суфікси тіньових хостів додаються до імен хостів дзеркальних запитів. Якщо встановлено значенняfalse, суфікси тіньових хостів не додаються. Це забезпечує зворотну сумісність для користувачів, які оновлюють систему зі старих версій Istio, де суфікси тіньових хостів додавалися за замовчуванням через профілі сумісності. (Тікет #57530)Додано підтримку параметра
sectionNameуBackendTLSPolicyAPI Gateway для налаштування TLS для конкретних портів. Це дозволяє вказувати конкретні порти сервісу за назвою, застосовуючи різні налаштування TLS для кожного порту. Наприклад, тепер можна налаштувати параметри TLS лише для портуhttpsсервісу, не змінюючи налаштування інших портів.Додано підтримку
ServiceEntryякtargetRefуBackendTLSPolicy. Це дозволяє застосовувати налаштування TLS до зовнішніх сервісів, визначених ресурсамиServiceEntry. (Тікет #57521)Додано підтримку native nftables при використанні режиму ambient Istio. Тепер можливо використовувати nftables замість iptables для управління мережевими правилами. Увімкнено задачею
--set values.global.nativeNftables=trueпри встановленні Istio. (Тікет #57324)Додано підтримку wildcard hosts у
ServiceEntryресурсах зDYNAMIC_DNSрозвʼязанням. Підтримується тільки HTTP трафік наразі. Потребує режим ambient та waypoint, налаштований як egress gateway. (Тікет #54540)Додано підтримку заголовків
X-ForwardedуProxyConfig.ProxyHeaders.Увімкнено waypoints для маршрутизації трафіку до віддалених мереж у багатокластерному середовищі ambient. (Тікет #57537)
Виправлено помилку, коли ztunnel неправильно використовував мапу портів
Serviceпри посиланні на імʼя портуService. (Тікет #56251)Виправлено проблему, через яку модуль спостереження за тегами не розцінював стандартну версію як стандартний тег. Це призводило до того, що шлюзи Kubernetes не налаштовувалися. (Тікет #56767)
Виправлено помилку, через яку номер порту
ServiceдляInferencePoolпочинався з 543210 замість 54321. (Тікет #57472)Виправлено проблему, через яку панель даних ambient не правильно обробляла
ServiceEntriesіз параметром resolution, встановленим наNONE. Раніше така конфігурація містила VIP, але не мала точок доступу, що призводило до помилки «no healthy upstream». Тепер цей сценарій налаштовується як сервіс типуPASSTHROUGH, що означає, що адреси, на які звертається клієнт, будуть використовуватися як бекенд. (Тікет #57656)Виправлено проблему, через яку налаштування пулу з’єднань HTTP/2 не застосовувалися під час увімкнення оновлень HTTP/2. (Тікет #57583)
Виправлено розгортання waypoint так, щоб вони використовували стандартне значення Kubernetes
terminationGracePeriodSeconds(30 секунд) замість жорстко заданого значення 2 секунди.Додано підтримку
InferencePoolv1. (Тікет #57219)Видалено підтримку alpha та release candidate версій
InferencePool.
Безпека
Покращено обробку кореневих сертифікатів коли деякі сертифікати були невалідними. Тепер Istio відкидає невалідні сертифікати, замість відхилення всього пакунку.
Додано поле
caCertCredentialNameуServerTLSSettingsдля посилання наSecret/ConfigMap, що містить CA сертифікати для mTLS. Див. використання або reference для додаткової інформації. (Тікет #43966)Додано опціональне розгортання
NetworkPolicyдля istiod. Ви можете встановитиglobal.networkPolicy.enabled=true, щоб розгорнути стандартнуNetworkPolicyдля istiod та шлюзів. Ми плануємо розширити цю функцію, щоб згодом включити такожNetworkPolicyдля istio-cni та ztunnel. (Тікет #56877)Додано підтримку налаштування параметра
seccompProfileу контейнерахistio-validationтаistio-proxyу рамках шаблону інʼєкції sidecar. Тепер користувачі можуть встановити для параметраseccompProfile.typeзначенняRuntimeDefaultдля забезпечення кращої відповідності вимогам безпеки. (Тікет #57004)Додано підтримку
FrontendTLSValidation(GEP-91) у Gateway API. Див. використання та reference для додаткової інформації. (Тікет #43966)Виправлено конфігурацію фільтра JWT для підтримки заявок користувача, розділених пробілами. Тепер конфігурація фільтра JWT, окрім стандартних заявок («scope» та «permission»), правильно включає визначені користувачем заявки, розділені пробілами. Це гарантує, що фільтр Envoy JWT обробляє ці заявки як рядки, розділені пробілами, що дозволяє правильно перевіряти токени JWT, які містять ці заявки. Щоб налаштувати власні заявки, розділені пробілами, скористайтеся полем
spaceDelimitedClaimsу конфігурації правила JWT у ресурсіRequestAuthentication. (Тікет #56873)Видалено використання MD5 для оптимізації порівнянь. Istio не використовував і не використовує MD5 для криптографічних цілей. Зміна лише для того, щоб код був легким для аудиту та працював у FIPS 140-3 mode.
Телеметрія
Оновлено стандартне значення змінної середовища
PILOT_SPAWN_UPSTREAM_SPAN_FOR_GATEWAYдоtrue, що вмикає створення вхідних відрізків для запитів шлюзу.Додано підтримку аннотацій
sidecar.istio.io/statsFlushIntervalтаsidecar.istio.io/statsEvictionInterval.Додано підтримку конфігурації
TraceContextOptionвід Zipkin для забезпечення подвійного поширення заголовків B3/W3C. Налаштуйте параметрtrace_context_option: USE_B3_WITH_W3C_PROPAGATIONу розділіextensionProvidersфайлу MeshConfig, щоб переважно витягувати заголовки B3, у разі необхідності використовувати заголовки W3Ctraceparentта вставляти обидва типи заголовків у висхідний потік для кращої сумісності трасування. Див. документацію Envoy, а також довідку щодоMeshConfigта інструкції з використання.Видалено підтримку терміну дії метрик. Замість цього використовуйте
StatsEvictionу конфігурації завантаження.
Розширюваність
- Виправлено проблему, через яку
EnvoyFilter, що використовувавtargetRefз типомGatewayClassта групоюgateway.networking.k8s.ioу кореневому просторі імен, не поширювався належним чином.
Встановлення
Оновлено чарт Istiod Helm для створення ресурсів
EndpointSliceзамістьEndpointsу разі віддалених інсталяцій Istiod, оскількиEndpointsстали застарілими, починаючи з версії Kubernetes 1.33. (Тікет #57037)Оновлено надбудову Kiali до версії v2.17.0.
Додано можливість повністю очистити resource limits або requests у чартах Helm.
Додано підтримку “persona-based” інсталяцій у чартах Helm на основі scope згенерованого/застосованого ресурсу.
- Якщо не встановлено
resourceScope, встановляться всі ресурси. Це та сама поведінка, яку користувач очікує від чартів Istio 1.27. - Якщо
resourceScopeвстановлено уnamespace, встановляться тільки namespace-scoped ресурси. - Якщо для параметра
resourceScopeвстановлено значенняcluster, будуть встановлені лише ресурси на рівні кластера. Це дозволяє адміністратору Kubernetes керувати ресурсами в кластері, а адміністратору мережі — керувати ресурсами в мережі. Для чартів ztunnel,resourceScopeє полем верхнього рівня. Для всіх інших чартів, це поле знаходиться підglobal. (Тікет #57530)
- Якщо не встановлено
Додано підтримку змінної середовища
FORCE_IPTABLES_BINARYдля того, щоб замінити автоматичне визначення бекенду iptables та використовувати конкретний бінарний файл. (Тікет #57827)Додано
.Values.podLabelsта.Values.daemonSetLabelsдо Helm чарту istio-cni.Додано параметр конфігурації
service.clusterIPдо чарту Gateway, щоб забезпечити можливість перезапису параметраspec.clusterIPресурсуService. Це може бути корисно у випадках, коли користувач бажає встановити конкретну IP-адресу кластера для сервісу Gateway, замість того щоб покладатися на автоматичне присвоєння.Додано нове представлення тегів ревізій із використанням сервісів кластерних IP-адрес, що має на меті припинити використання веб-хуків типу «mutating» у режимі ambient. Команда
istioctl tag set <tag> --revision <rev>та значення HelmrevisionTagsстворюватимуть якMutatingWebhookз використанням поточних специфікацій, так іService, подібний доServiceistiod, але з міткоюistio.io/tagдля зберігання відповідності.Додано параметр
internalTrafficPolicyдля сервісу шлюзу (необхідний, наприклад, під час встановлення ArgoCD із шлюзом, який є внутрішнім застосунком)Виправлено проблему, через яку PDB, створений під час стандартної інсталяції, блокував звільнення ресурсів вузлів Kubernetes. (Тікет #12602)
Оновлено підтримку Gateway API до v1.4. Це вводить підтримку
BackendTLSPolicyv1.
istioctl
Додано автоматичне визначення базової версії в командах
istioctl. Якщо параметр--revisionявно не вказано, автоматично використовуватиметься базова версія (налаштована за допомогою командиistioctl tag set default). (Тікет #54518)Додано підтримку вказівки як
--levelта--stack-trace-levelдляistioctl admin log. (Тікет #57007)Додано підтримку вказівки адміністративного порту проксі для команд
istioctl experimental authz,istioctl proxystatus,istioctl bug-reportтаistioctl experimental describeза допомогою прапорця--proxy-admin-port.Додано прапорці для підтримки типів налагодження списку для команди
istioctl experimental internal-debug. (Тікет #57372)Додано підтримку відображення інформації про зʼєднання для
istioctl ztunnel-config all.Виправлено: аналізатор IST0173 (
DestinationRuleSubsetNotSelectPods) помилково позначав підмножиниDestinationRuleяк такі, що не вибирають жодних подів, коли ці підмножини використовували мітки топології.