Примітки до змін Istio 1.27.0
Примітки до випуску Istio 1.27.0.
Керування трафіком
Оновлено розподіл трафіку, щоб ігнорувати підзону, коли поле Kubernetes Service
trafficDistributionвстановлено наPreferClose. (Issue #55848)Додано підтримку декількох сертифікатів сервера в шлюзі (istio & Gateway API). (Issue #36181)
Додано альфа-підтримку для визначення
ServiceScopeв MeshConfig в конфігураціях мультикластерного середовища.ServiceScopeдозволяє вибрати окремі сервіси або сервіси в просторі імен як глобальні або локальні. Локальний сервіс може бути виявлений тільки панеллю даних у тому ж кластері, що і сервіс. Локальний сервіс не може бути виявлений панелями даних в інших кластерах. Глобальний сервіс може бути виявлений панелями даних у всіх кластерах. Визначення селекторів дляserviceScopeConfigsвизначає, які сервіси і робочі навантаження будуть спільними з панеллю даних, а також які кластери і слухачі будуть налаштовані для waypoints (включаючи схід-захід шлюзи) в мережі.Додано прапорець функції
EnableGatewayAPICopyLabelsAnnotations, щоб дозволити користувачам вибирати, чи будуть ресурси розгортання успадковувати атрибути від батьківського ресурсу Gateway API. Ця функція стандартно ввімкнена .Додано підтримку
PreferSameNodeтаPreferSameZoneу поліtrafficDistributionслужби Kubernetes. (Issue #55848)Додано пілотні змінні середовища
PILOT_IP_AUTOALLOCATE_IPV4_PREFIXтаPILOT_IP_AUTOALLOCATE_IPV6_PREFIXдля налаштування префіксів IP CIDR для автоматично розподілених IP-адрес. Це дозволяє користувачам встановлювати конкретний діапазон IP-адрес для автоматичного розподілу, забезпечуючи більший контроль над простором IP-адрес, що використовується для VIP-адрес контролером ipallocate.Додано ведення журналу простору імен та імені секрету, коли сертифікат недійсний. (Issue #56651)
Додано підтримку Gateway API Inference Extension. Ця функція стандартно вимкнена і може бути увімкнена за допомогою змінної середовища
SUPPORT_GATEWAY_API_INFERENCE_EXTENSION. (Issue #55768)Додано підтримку операцій злиття при застосуванні до
LISTENER_FILTERв EnvoyFilter.Додано функцію
ENABLE_LAZY_SIDECAR_EVALUATION, яка дозволяє увімкнути ліниву ініціалізацію ресурсів sidecar, обчислюючи внутрішні індекси лише тоді, колиSidecarScopesфактично використовуються проксі. Ця функція замінює попереднюPILOT_CONVERT_SIDECAR_SCOPE_CONCURRENCY, яка дозволяла б паралельну конверсію з конкретною заданою паралельністю, натомістьENABLE_LAZY_SIDECAR_EVALUATIONвикористовуватиме таку ж паралельність, як іPILOT_PUSH_THROTTLE.Додано підтримку рідного
nftablesпри використанні режиму sidecar Istio. Це оновлення робить можливим використанняnftablesзамість iptables для управління мережевими правилами, пропонуючи більш ефективний підхід до перенаправлення трафіку для подів і сервісів. Щоб увімкнути режимnftables, використовуйте--set values.global.nativeNftables=trueпід час установки. (Issue #56487)Додано підтримку для вказівки режиму розподілу трафіку для сервісів. (Issue #53354)
Додано функцію
ENABLE_PROXY_FIND_POD_BY_IP, яка дозволяє ввімкнути асоціацію Podʼів з проксі-серверами за IP-адресою, якщо асоціація за іменем та простором імен не вдається.Додано підтримку бюджету повторних спроб у ресурсах
DestinationRule.Виправлено проблему, через яку вибір лідера контролера статусу шлюзу не виконувався для кожної версії, що могло призвести до проблем у налаштуваннях з кількома версіями. Вибір лідера тепер правильно обмежений кожною версією, що забезпечує незалежну роботу контролера статусу шлюзу для кожної версії. (Issue #55717)
Виправлено проблему, через яку маршрути віртуальних сервісів ігнорувалися, коли віртуальний сервіс був налаштований з хостами, що містять літери змішаного регістру. (Issue #55767)
Виправлено регресію в Istio 1.26.0, яка викликала паніку в istiod при обробці імен хостів Gateway API. (Issue #56300)
Виправлено проблему, через яку mTLS було вимкнено несподівано, коли
PILOT_ENABLE_TELEMETRY_LABELабоPILOT_ENDPOINT_TELEMETRY_LABELбули встановлені вfalse(Issue #56352)Виправлено проблему, через яку правила iptables мережі хостів в режимі ambient пропускалися через правила CNI вищого пріоритету в деяких розгортаннях. (Issue #56414)
Виправлено проблему, через яку
EnvoyFilterзtargetRefsвідповідали неправильним ресурсам. (Issue #56417)Виправлено індекс в режимі ambient для фільтрації конфігурацій за їхньою версією. (Issue #56477)
Виправлено проблему, через яку мітка
topology.istio.io/networkне пропускалася належним чином в системному просторі імен, коли використовувалисяdiscoverySelectors. (Issue #56687)Виправлено проблему, через яку втулок CNI неправильно обробляв видалення пода, коли под ще не був позначений як зареєстрований у мережі. У деяких випадках це могло призвести до того, що под, який був видалений, потрапляв до знімка ZDS і ніколи не очищався. Якщо це сталося, ztunnel не зміг би стати готовим. (Issue #56738)
Виправлено проблему, через яку конфігурація вихідного маршруту Istio не включала абсолютне доменне імʼя (повністю кваліфіковане доменне імʼя з крапкою в кінці) у список доменів для записів
VirtualHost. Ця зміна гарантує, що запити, які використовують абсолютні доменні імена (що закінчуються крапкою, наприклад,my-service.my-ns.svc.cluster.local.), будуть правильно маршрутизовані до потрібної служби, а не перенаправлятися доPassthroughCluster. (Issue #56007)
Безпека
Додано підтримку для пропуску мітки видавця в токенах JWT. Або мітка видавця, або
JWKSUriє обовʼязковими, але не обидві. Це дозволяє більш гнучкі конфігурації при використанні токенів JWT для аутентифікації, особливо в сценаріях, де мітка видавця може бути динамічною. (Issue #14400)Додано стандартну функцію при використанні istio-cni в режимі ambient, для створення конфігураційного файлу CNI, що належить Istio, який містить вміст основного конфігураційного файлу CNI та втулка Istio CNI. Ця стандартна функція є рішенням проблеми обхідного трафіку мережі при перезавантаженні вузла, коли Istio CNI
DaemonSetне готовий, втулок Istio CNI не встановлений або втулок не викликаний для налаштування перенаправлення трафіку з подів до їхніх вузлів ztunnels. Цю функцію можна активувати, встановившиcni.istioOwnedCNIConfigв true в значеннях Helm chart для istio-cni. Якщо значення дляcni.istioOwnedCNIConfigFilenameне встановлено, файл конфігурації CNI, що належить Istio, буде називатися02-istio-cni.conflist. ЗначенняistioOwnedCNIConfigFilenameповинно мати вищий лексикографічний пріоритет, ніж основний CNI. Для роботи цієї функції повинні бути активовані втулки Ambient і Chained CNI.Додано перевірку аргументу команди istioctl
--clusterAliases. Не повинно бути більше одного псевдоніма на кластер. (Issue #56022)Додано підтримку для
ClusterTrustBundleшляхом міграції зcertificates.k8s.io/v1alpha1на стабільний APIv1beta1в Kubernetes 1.33+. Це покращує сумісність і забезпечує майбутнє механізму розподілу сертифікатів Istio. (Issue #56306)Додано підтримку для зовнішніх постачальників Secret Discovery Service (SDS) в конфігурації TLS шлюзу. Istio тепер надає покращену інтеграцію з зовнішніми постачальниками SDS для управління TLS сертифікатами на шлюзі. (Issue #56522)
Додано підтримку списку відкликаних сертифікатів (CRL) для підключених CA, що дозволяє Istio спостерігати за файлами
ca-crl.pemі автоматично розподіляти CRL по всіх просторах імен у кластері. Це вдосконалення дозволяє проксі-серверам перевіряти та відхиляти відкликані сертифікати, зміцнюючи безпекову позицію розгортань сервісної мережі з використанням підключених CA. (Issue #56529)Додано опцію пост-квантової криптографії (PQC) до
COMPLIANCE_POLICY. Ця політика вимагає TLSv1.3, шифрувальні набориTLS_AES_128_GCM_SHA256іTLS_AES_256_GCM_SHA384, а також обмін ключами, що є безпечним від квантових атакX25519MLKEM768. Щоб активувати цю політику відповідності в режимі ambient, її потрібно встановити в контейнерах pilot і ztunnel. Ця політика застосовується до наступних шляхів передачі даних:- mTLS звʼязок між проксі-серверами Envoy і ztunnels;
- звичайний TLS на виході та вході проксі-серверів Envoy (наприклад, шлюз);
- Istio xDS server. (Issue #56330)
Виправлено проблему, через яку sidecars зі старим налаштуванням
CLUSTER_IDне могли підключитися до istiod з новим налаштуваннямCLUSTER_IDпри використанні аргументу команди--clusterAliases. (Issue #56022)Виправлено проблему в функції
pluginca, через якуistiodбезшумно повертався до самопідписаного CA, якщо наданий пакетcacertsбув неповним. Система тепер правильно перевіряє наявність усіх необхідних файлів CA і завершує з помилкою, якщо пакет неповний.
Телеметрія
Виправлено проблему, через яку дашборд Grafana посилався на Istio Mesh Dashboard, використовуючи посилання на основі шляху, які більше не працюють. Посилання на робочі навантаження та сервіси тепер використовують UID дашборда. (Issue #50124)
Виправлено проблему, через яку журнали доступу не оновлювалися, коли запитуваний сервіс був створений пізніше, ніж ресурс телеметрії. (Issue #56825)
Видалено підтримку постачальника трасування
Lightstep. (Issue #54002)
Розширюваність
- Додано опцію перезавантаження Wasm VM на нові запити, якщо VM зазнала збою.
Встановлення
Переведено змінну середовища
ENABLE_NATIVE_SIDECARSстандартно в станtrue. Це означає, що нативні sidecars будуть додаватись в усі відповідні под, якщо це не буде явно вимкнено. Це можна вимкнути явно або для конкретних робочих навантажень, додавши анотаціюsidecar.istio.io/native-side: "false"до окремих подів або шаблонів подів. (Issue #48794)Додано налаштування
values.global.trustBundleName, яке дозволяє налаштувати імʼя ConfigMap, яке istiod використовує для поширення свого кореневого сертифіката CA в кластері. Це дозволяє запускати кілька панелей управління з перекриттям просторів імен в одному кластері.Додано підтримку налаштування міток для увімкнення режиму ambient. (Issue #53578)
Додано підтримку налаштування
additionalContainersтаinitContainersу чарті Helm Gateway.Додано підтримку налаштування tolerations для ztunnel через значення чарту Helm. (Issue #56086)
Додано підтримку налаштування tolerations для istio-cni через значення чарту Helm. (Issue #56087)
Додано визначені стандартного значення для дільників
GOMEMLIMITтаGOMAXPROCS, щоб виправити проблему безперервної синхронізації Argo.Додано конфігурацію переваги завантаження для
gateway-injection-template. (Issue #28302)Додано значення Helm
ENABLE_NATIVE_SIDECARSв профілі сумісності Istio 1.24, 1.25 та 1.26, що дозволяє користувачам вимкнути стандартне увімкнення нативних sidecars.Додано підтримку проксі-протоколу на порт статусу. (reference) (Issue #39868)
Додано значення Helm
.Values.istiodRemote.enabledLocalInjectorIstiodдля підтримки інʼєкції sidecar в віддалених кластерах. Колиprofile=remote,.Values.istiodRemote.enabledLocalInjectorIstiod=true, і.Values.global.remotePilotAddress="${DISCOVERY_ADDRESS}", віддалений робочий кластер встановлюєistiodдля локальної інʼєкції sidecar, в той час як XDS все ще обслуговується віддаленим основним кластером. (Issue #56328)Додано мітку
istio.io/revдо віддаленого сервісу istio, коли увімкненоistiodRemote(Issue #56142)Додано підтримку
deploymentAnnotationsв чарті Helm istiod. Тепер користувачі можуть вказувати власні анотації, які будуть застосовані до обʼєкта Deployment istiod, на додачу до існуючої підтримкиpodAnnotations. Це корисно для інтеграції з інструментами моніторингу, GitOps робочими процесами та системами забезпечення політики, які працюють на рівні розгортання.Виправлено проблему, коли змінна середовища
ISTIO_KUBE_APP_PROBERSне була встановлена для переписування проб, коли веб-хук Istio був повторно викликаний. (Issue #56102)Виправлено проблему, коли посилання на секрети в середовищі чарту Helm
istio/gatewayбули неправильно перетворені на рядокове значення. (Issue #55141)Виправлено проблему, коли виникала помилка інʼєкції, коли шаблон
gatewayпоєднувався з іншим шаблоном, наприклад,spire, який перевизначаєworkload-socket, внаслідок чого Kubernetes не створював інші томи, які мають налаштуванняemptyDirіcsi.Виправлено паніку в
istioctl manifest translate, коли конфігураціяIstioOperatorмістила кілька шлюзів. (Issue #56223)Виправлено призначення неправильних UID і GID для контейнерів
istio-proxyіistio-validationна кластерах OpenShift, коли режим TPROXY був увімкнений.Виправлено проблему, коли
ClusterTrustBundleне був належним чином налаштований, коли був увімкненийENABLE_CLUSTER_TRUST_BUNDLE_API.Видалено невикористовувані значення Helm, повʼязані з мультикластером.
istioctl
Додано прапорець
--kubeclient-timeoutдо кореневих прапорцівistioctl. Може бути не встановлений або встановлений як дійсний рядокtime.Duration. Якщо вказано, це замінить стандартний час очікування15sдля всіх командistioctl, які використовують клієнт Kubernetes. Це корисно для середовищ із повільними серверами API Kubernetes, наприклад, із великою затримкою або низькою пропускною здатністю. Зверніть увагу, що цей прапорець використовується тільки для клієнта Kubernetes і не впливає на інші тайм-аути вistioctl, наприклад, тайм-аути встановлення. (Issue #54962)Додано прапорці
--revisionдляistioctl dashboard controlzтаistioctl dashboard istiod-debug.Додано підтримку в команді
istioctl proxy-statusдля динамічного відображення всіх типів xDS/CRD як стовпців у вихідній таблиці. (Issue #56005)Додано підтримку для налаштування тайм-ауту команд
istioctl waypoint statusтаistioctl waypoint apply. (Issue #56453)Додано підтримку для відображення
stack-trace-levelв командіistioctl admin log. (Issue #56465)Додано підтримку для відображення
traffic typeв командіistioctl waypoint list.Додано підтримку для параметра
--weightв командіistioctl experimental workload group create.Додано підтримку для налаштування рівня журналювання
ip-autoallocateв командіistioctl admin log. (Issue #55741)Виправлено проблему, коли під час встановлення не створювалися
istio-revision-tag-defaultтаMutatingWebhookConfiguration, коли версія не була стандартною. (Issue #55980)Виправлено проблему, коли виникали помилки IST0134 в
istioctl analyze, колиPILOT_ENABLE_IP_AUTOALLOCATEбуло встановлено вtrue. (Issue #56083)Виправлено проблему, коли аналіз включав системні простори імен Kubernetes (наприклад,
kube-system,kube-node-lease). (Issue #55022)Виправлено проблему, коли
create-remote-secretстворював надмірні ресурси RBAC. (Issue #56558)