Многоуровневая архитектура Istio? 80% имеют непонимание

задняя часть Архитектура Service Mesh Istio

ServiceMesh(3)

Приквел:

"Какую проблему решает ServiceMesh?

"Что такое Istio, ServiceMesh — самый популярный лендинг

Istio — это продуктовый лендинг ServiceMesh:

  • Это помогает между микросервисамиустановить соединение, чтобы помочь команде R&D лучшеуправление и мониторингмикросервисы и сделать системную архитектуру болееБезопасность
  • ЭтоПомогает отделить микросервисы, уровень отделенного прокси может больше сосредоточиться на предоставлении возможностей инфраструктуры, таких как:

(1) Обнаружение службы (обнаружение)

(2) Балансировка нагрузки

(3) Восстановление после сбоя

(4) Сервисные метрики (метрики)

(5) Сервисный мониторинг (мониторинг)

(6) A/B-тестирование

(7) Canary развертывания

(8) Ограничение скорости

(9) контроль доступа (контроль доступа)

(10) Сквозная аутентификация

и другие функции.

  • Это позволяет как командам бизнес-инженеров, так и группам по инфраструктуре работать более эффективно,фокусВ своей работе лучше расширять возможности друг друга

Сегодня поговорим об IstioПроект базовой архитектуры.

Что касается архитектурного дизайна Istio, официальный сайт использует это предложение:

Логически Istio делится на:

  • плоскость данных(data plane)
  • плоскость управления(control plane)

Эти два слова составляют основу архитектуры Istio, но они больше всего вводят в заблуждение.

Плоскость данных и плоскость управления — не первый раз, когда ServiceMesh и Istio предлагают это очень зрелые концепции в компьютерных сетях, маршрутизации и пересылке пакетов:

  • плоскость данных(плоскость данных): обычно используется для быстрой перемотки вперед
  • плоскость управления(плоскость управления): Предоставляет необходимую информацию для быстрой перемотки вперед

Голос за кадром: На двух рисунках выше показана архитектура маршрутизатора.

этоПринципы дизайнаДа:

  • В устройстве маршрутизации переадресация — самая важная работа, она имеет наивысший приоритет,плоскость данныхВ основе конструкции (плоскости данных) лежит эффективная пересылка. Способы обработки большинства пакетов за кратчайшее время часто реализуются аппаратно с использованием таких технологий, как эффективное управление памятью, управление очередями и управление тайм-аутом.
  • плоскость управления(плоскость управления) не тот случай. Он должен реализовывать протоколы маршрутизации, управления устройствами, протоколы IGMP и ARP. Он больше склонен к управлению и применению и часто реализуется программно.

Голос за кадром:

IGMP (Internet Group Management Protocol), многоадресный протокол;

Привычный всем ARP (протокол разрешения адресов) получает MAC-адрес по IP-адресу;

Ядро архитектуры Istio очень похоже на маршрутизатор:

  • Служить(верхнее красное поле), взаимодействуйте с прокси через локальную связь
  • плоскость данных, состоящий из ряда прокси (два маленьких красных прямоугольника в среднем слое), основными обязанностями являются:

(1) Эффективная переадресация;

(2) получать и реализовывать политики от микшеров;

  • плоскость управления(большой красный квадрат внизу), ядром является контроль и приложение, а основные обязанности таковы:

(1) Управление и настройка дополнительных агентов;

(2) Внедрение политик и сбор данных от дополнительных агентов через микшер;

Голос за кадром:

(1) sidecar proxy, в исходном тексте используется envoy, а envoy означает прокси позже;

(2) микшер, не знаю, как это перевести, некоторые статьи называются «микшер», а следующий текст прямо называется микшер;

(3) лоцман, камбуз, цитадель, не смейте переводить как лоцман, кухня, крепость, а следующий текст прямо на английском языке;

Как показано на диаграмме архитектуры, двухуровневая архитектура состоит из пяти основных компонентов.

Плоскость данных имеет основной компонент:

Envoy (proxy)

Основная обязанность Envoy — эффективная переадресация, в частности, он имеет следующие возможности:

(1) Обнаружение службы

(2) Балансировка нагрузки

(3) Безопасная передача

(4) Поддержка нескольких протоколов, таких как HTTP/2, gRPC.

(5) Автоматические выключатели

(6) Проверка здоровья

(7) Процентная маршрутизация отклонения

(8) Инъекция неисправности

(9) Системные показатели

Большинство возможностей реализовано в среде RPC или хорошо изучено.Здесь мы сосредоточимся на автоматических выключателях и внедрении отказов.

конструкция автоматического выключателя

Это дизайнерская идея самозащиты сервиса или деградации архитектуры программного обеспечения.

Например: когда система обнаруживает, что определенный интерфейс имеет большое количество тайм-аутов, политика прерывателя цепи может прервать вызов на этот интерфейс (выключатель разомкнут). интерфейс больше не отключается, медленно возобновляйте вызов (автоматический выключатель замкнут).

схема впрыска неисправности

Это метод преднамеренного внесения ошибок в структуру архитектуры программного обеспечения для расширения охвата тестами и обеспечения надежности системы, и в основном используется для тестирования.

Большинство отечественных интернет-компаний не учитывают внедрение ошибок при проектировании архитектуры.Они часто используются при разработке и отладке ядра операционной системы, разработке и отладке маршрутизатора и могут использоваться для имитации некоторых очень сложных исключений, таких как сбои выделения памяти и ошибки дискового ввода-вывода. ., чтобы обеспечить тестовое покрытие.

Плоскость управления состоит из четырех основных компонентов:

Mixer

Вот некоторые из основных возможностей Mixer:

(1) Кроссплатформенность в качестве адаптера для других компонентов для реализации кроссплатформенности Istio;

(2) Общение с посланником, различные стратегии в режиме реального времени

(3) Общайтесь с посланником для сбора различных данных

В основе дизайна Mixer лежит «подключаемый модуль», модель, которая позволяет Istio адаптироваться к множеству сложных хост-сред и серверной инфраструктуры.

Pilot

Как очень важный компонент плоскости управления, Pilot обладает следующими основными возможностями:

(1) Обеспечить возможности обнаружения сервисов для Envoy;

(2) предоставить Envoy различные возможности интеллектуального управления маршрутизацией, такие как A/B-тестирование, публикация в оттенках серого;

(3) Обеспечьте различные возможности гибкого управления для Envoy, такие как тайм-аут, повторная попытка и стратегия отключения цепи;

В основе дизайна Pilot лежит «стандартизация», которая преобразует различные команды управления потоком в конфигурации, которые могут быть распознаны Envoy, и распространяет эти команды на все Envoy во время выполнения. Преимущество Pilot, абстрагирующего эти возможности в общую конфигурацию, заключается в том, что все Envoy, соответствующие этому стандарту, могут получить доступ к Pilot.

Подтекст заключается в том, что любая третья сторона может реализовать свой собственный прокси и интегрироваться с Pilot, если он соответствует соответствующим стандартам API.

Citadel

Компонент Citadel, обеспечивающий аутентификацию конечных пользователей и управление доступом между службами. В общем, это компонент, связанный с безопасностью.

Galley

Компонент Gally — это компонент для сбора, проверки, обработки и распространения конфигурации.Основная его конструкция заключается в «развязке», которая отделяет «получение пользовательской конфигурации от базовой платформы (например, K8S)» и Istio.

Lace: Почему 80% китайских пользователей неправильно понимают двухуровневую архитектуру Istio?

Многие друзья спрашивали меня, как получить новейшие технические знания, и я всегда отвечал:английский официальный сайт.

Голос за кадром: Вся информация в этой статье взята с англоязычного официального сайта Istio1.1.

Я искал Istio на Baidu, 80% информации, и перевел двухуровневую архитектуру на:

  • панель данных
  • панель управления

Голос за кадром: Вы можете выполнить поиск «панель управления istio» на Baidu.

Сначала я был крайне сбит с толку, потому что «плоскость данных» и «плоскость управления» — это очень зрелые переводы.Маршрутизаторы используют эту двухуровневую архитектуру, а ServiceMesh использует тот же архитектурный дизайн для развязки, поэтому творческие переводы не нужны.

Позже я понял:

  • плоскость управления
  • панель управления

Половинчатые английские программисты, бывшие в употреблении технические документы, увы, очень обидно.

Суммировать

Istio использует двухуровневую архитектуру и пять модулей для отделения микросервисов ServiceMesh:

  • плоскость данных, в основном отвечающий за эффективную пересылку

(1) модуль посланника: а именно прокси;

  • плоскость управления, в основном отвечает за контроль и применение

(2) модуль микшера: адаптер, поддерживающий кроссплатформенный и стандартизированный API;

(3) пилотный модуль: контроль и настройка большинства политик посланника;

(4) модуль цитадели: связанный с безопасностью;

(5) модуль галереи: отделен от конфигурации базовой платформы (например, K8S);

Разделение реализации и контроля, классический метод проектирования архитектуры, GOT?

Идеи важнее выводов.