Архітектура
Сервісна мережа Istio логічно поділена на панель даних та панель управління.
Панель даних складається з набору інтелектуальних проксі (Envoy), розгорнутих як sidecar. Ці проксі контролюють і управляють всією мережею комунікацій між мікросервісами. Вони також збирають і повідомляють телеметрію про весь трафік мережі.
Панель управління управляє і конфігурує проксі для маршрутизації трафіку.
Нижченаведена діаграма показує різні компоненти, які складають кожну панель:
Компоненти
Наступні розділи надають короткий огляд кожного з основних компонентів Istio.
Envoy
Istio використовує розширену версію проксі Envoy. Envoy — це високопродуктивний проксі, розроблений з використаннями C++, який обробляє весь вхідний і вихідний трафік для всіх сервісів у сервісній мережі. Проксі Envoy є єдиними компонентами Istio, які взаємодіють з трафіком панелі даних.
Проксі Envoy розгортаються як sidecar до сервісів, логічно доповнюючи їх багатьма вбудованими можливостями Envoy, такими як:
- Динамічне виявлення сервісів
- Балансування навантаження
- Термінація TLS
- Проксі HTTP/2 та gRPC
- Запобіжники (circuit breakers)
- Перевірки стану
- Поетапні впровадження з розподілом трафіку за відсотками
- Інʼєкція збоїв
- Розширені метрики
Модель sidecar дозволяє Istio застосовувати політику і витягувати насичені телеметричні дані, які можна надіслати до систем моніторингу для отримання інформації про поведінку всієї мережі.
Модель проксі sidecar також дозволяє додавати можливості Istio до наявного розгортання без потреби перепроєктувати чи переписувати код.
Деякі функції та завдання Istio, які активуються проксі Envoy, включають:
Функції контролю трафіку: забезпечення тонкого контролю трафіку з розширеними правилами маршрутизації для HTTP, gRPC, WebSocket та TCP трафіку.
Функції стійкості мережі: налаштування повторних спроб, відмов, розривів ланцюга та інʼєкції збоїв.
Функції безпеки та автентифікації: застосування політик безпеки та контролю доступу та обмеження швидкості, визначених через API конфігурації.
Модель розширень на основі WebAssembly, яка дозволяє реалізувати власні політики та генерувати телеметрію для трафіку мережі.
Istiod
Istiod забезпечує виявлення сервісів, конфігурацію та управління сертифікатами.
Istiod перетворює високорівневі правила маршрутизації, які контролюють поведінку трафіку, в конфігурації специфічні для Envoy і розповсюджує їх на sidecar в режимі реального часу. Він абстрагує механізми виявлення сервісів, специфічні для платформи, і синтезує їх у стандартний формат, який будь-який sidecar, сумісний з Envoy API, може споживати.
Istio може підтримувати виявлення сервісів для кількох середовищ, таких як Kubernetes або VMs.
Ви можете використовувати API управління трафіком Istio, щоб вказати Istiod уточнити конфігурацію Envoy для більш тонкого контролю трафіку в вашій сервісній мережі.
Безпека Istiod забезпечує надійну автентифікацію між сервісами та кінцевими користувачами з вбудованим управлінням ідентичністю та обліковими даними. Ви можете використовувати Istio для оновлення незашифрованого трафіку в сервісній мережі. Використовуючи Istio, адміністратори можуть застосовувати політики на основі ідентичності сервісу, а не на відносно нестабільних ідентифікаторах мережі рівня 3 або рівня 4. Крім того, ви можете використовувати функцію авторизації Istio для контролю доступу до ваших сервісів.
Istiod виступає в ролі Центру сертифікації (CA) і генерує сертифікати для забезпечення безпечного mTLS зв’язку в панелі даних.