Підтримка багатомережевих мультикластерів для Ambient у стані Beta
Istio 1.29 з багатомережевими мультикластерами у стані Beta, з покращеннями у телеметрії, зʼєднуваності та надійності.
Наша команда розробників активно працювала протягом усього періоду переходу до 2026 року. Було виконано значний обсяг роботи, щоб підготувати багатомережевий мультикластер для середовища Ambient до запуску в виробничому середовищі. Вдосконалення стосувалися як результатів наших внутрішніх тестів, так і найпопулярніших запитів щодо багатомережевих мультикластерів у середовищі Ambient, при цьому особлива увага приділялася телеметрії.
Прогалини в телеметрії
Переваги багатокластерної розподіленої системи не обходяться без компромісів. Деяка складність неминуча при великому масштабі, що робить хорошу телеметрію ще важливішою. Команда Istio розуміє це і була обізнана про деякі прогалини, які потрібно було закрити. На щастя, у випуску 1.29 телеметрія тепер більш надійна та повна, коли наша амбітна панель даних працює через розподілені кластери та мережі.
Якщо ви раніше розгортали альфа-можливості мультикластерів у сценаріях з кількома мережами, ви могли помітити, що деякі мітки джерела або призначення відображалися як “unknown”.
Для розуміння контексту: у локальному кластері (або кластерах, що використовують одну мережу) waypoint і ztunnel знають про всі наявні точки доступу і отримують цю інформацію через xDS. Натомість плутанина з метриками часто виникає в багатомережевих розгортаннях, де, з огляду на весь обсяг інформації, яку потрібно реплікувати між окремими мережами, виявлення сусідів xDS є недоцільним. На жаль, це призводить до втрати інформації про сусідів, коли запити перетинають межі мережі, щоб дістатися до іншого кластера Istio.
Покращення телеметрії
Подолавши цю проблему, Istio 1.29 тепер постачається з розширеними механізмами виявлення у своїй панелі даних для обміну метаданими про сусідів між точками доступу та шлюзами, що знаходяться в різних мережах. Протокол HBONE тепер збагачений заголовками багажу, що дозволяє waypoint і ztunnel прозоро обмінюватися інформацією про сусідів через східно-західні шлюзи.
На діаграмі вище, зосереджуючись на метриках L7, ми показуємо, як метадані про сусідів проходять через заголовки багажу між різними кластерами, що знаходяться в різних мережах.
- Клієнт у Кластері A ініціює запит, і ztunnel починає встановлювати зʼєднання HBONE через Waypoint. Це означає, що ztunnel надсилає запит CONNECT із заголовком багажу, що містить метадані про сусідів з нижнього рівня. Ці метадані потім зберігаються у waypoint.
- Заголовок багажу, що містить метадані, видаляється, і запит маршрутизується звичайним чином. У цьому випадку він потрапляє до іншого кластера.
- На стороні отримувача ztunnel у Кластері B отримує запит HBONE і відповідає успішним статусом, додаючи заголовок багажу, який тепер містить метадані про сусідів з верхнього рівня.
- Метадані про сусідів з верхнього рівня невидимі для східно-західного шлюзу. І коли відповідь досягає waypoint, він тепер має всю необхідну інформацію для формування метрик про обидві сторони, що беруть участь.
Зважте, що ця функціональність наразі прихована за прапорцем функції. Якщо ви хочете спробувати ці покращення телеметрії, їх потрібно явно активувати за допомогою опції функції AMBIENT_ENABLE_BAGGAGE.
Інші покращення та виправлення
Було внесено деякі бажані покращення щодо підключення. Вхідні шлюзи та проксі waypoint тепер можуть маршрутизувати запити безпосередньо до віддалених кластерів. Це створює умови для легшої стійкості та дозволяє більш гнучкі шаблони проєктування, що забезпечують користувачам Istio очікувані переваги у багатокластерних та багатомережевих розгортаннях.
І, звичайно, ми також додали кілька менших виправлень, що роблять багатомережеве багатокластерне середовище більш стабільним і надійним. Ми оновили документацію з багатокластерного розгортання, щоб відобразити деякі з цих змін, включаючи додавання керівництва щодо налаштування Kiali для багатомережевого розгортання Ambient.
Обмеження та наступні кроки
Зважаючи на все сказане, ми все ще визнаємо, що деякі прогалини не були повністю покриті. Більшість роботи тут була спрямована на підтримку багатомережевого середовища. Зверніть увагу, що багатокластерне розгортання в одній мережі все ще вважається на стадії альфа.
Також шлюз схід–захід може надавати перевагу певній точці доступу протягом певного проміжку часу. Це може вплинути на те, як навантаження від запитів, що надходять з іншої мережі, розподіляється між точками доступу. І це поведінка, яка впливає як на режим ambient, так і на режим sidecar, і ми плануємо вирішити це для обох випадків.
Ми працюємо з чудовою спільнотою Istio, щоб усунути ці обмеження. Наразі ми раді випустити цю бета-версію та з нетерпінням чекаємо ваших відгуків. Майбутнє багатомережевого багатокластерного Istio виглядає обнадійливо.
Якщо ви хочете спробувати багатомережеве багатокластерне розгортання Ambient, будь ласка, дотримуйтесь цього керівництва. Пам’ятайте, що ця функція знаходиться на стадії бета-тестування і ще не готова для використання в промисловому середовищі. Ми вітаємо ваші звіти про помилки, думки, коментарі та сценарії використання. Ви можете зв’язатися з нами на GitHub або Slack.
