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?
Идеи важнее выводов.