Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Istio решает проблемы, с которыми сталкиваются разработчики и операторы с архитектурой распределенных или микрослужб. Дополнение сетевой службы на основе Istio обеспечивает официально поддерживаемую и протестированную интеграцию для Службы Azure Kubernetes (AKS).
Что такое сетка служб?
Современные приложения обычно архитекторируются как распределенные коллекции микрослужб, причем каждая коллекция микрослужб выполняет некоторую дискретную бизнес-функцию. Сетка служб — это выделенный уровень инфраструктуры, который можно добавить в приложения. Она позволяет прозрачно добавлять такие возможности, как наблюдаемость, управление трафиком и безопасность, не добавляя их в собственный код. Сетка терминов службы описывает как тип программного обеспечения, используемого для реализации этого шаблона, так и безопасность или сетевой домен, создаваемый при использовании этого программного обеспечения.
Так как развертывание распределенных служб, таких как в системе на основе Kubernetes, увеличивается размер и сложность, это может стать труднее понять и управлять ими. Может потребоваться реализовать такие возможности, как обнаружение, балансировка нагрузки, восстановление сбоев, метрики и мониторинг. Сетка служб также может решать более сложные операционные требования, такие как A/B-тестирование, канаровые развертывания, ограничение скорости, управление доступом, шифрование и сквозная проверка подлинности.
Обмен данными между службами — это то, что делает распределенное приложение возможным. Маршрутизация этой связи в кластерах приложений становится все более сложной по мере роста числа служб. Istio помогает уменьшить эту сложность при облегчении нагрузки на команды разработчиков.
Что такое Istio?
Istio — это сетка службы с открытым исходным кодом, которая прозрачно распространяется на существующие распределенные приложения. Мощные функции Istio обеспечивают универсальный и более эффективный способ защиты, подключения и мониторинга служб. Istio обеспечивает балансировку нагрузки, проверку подлинности между службами и мониторинг — с небольшими изменениями кода службы. Его мощная плоскость управления предоставляет жизненно важные функции, в том числе:
- Безопасное взаимодействие между службами в кластере с шифрованием TLS (transport Layer Security), строгой проверкой подлинности на основе удостоверений и авторизацией.
- Автоматическая балансировка нагрузки для HTTP, gRPC, WebSocket и TCP-трафика.
- Точное управление поведением трафика с расширенными правилами маршрутизации, повторными попытками, резервированием и инъекцией сбоев.
- Подключаемый уровень политики и API конфигурации, поддерживающий элементы управления доступом, ограничения скорости и квоты.
- Автоматические метрики, журналы и трассировки для всего трафика в кластере, включая входящий трафик кластера и исходящий трафик.
Чем плагин отличается от версии Istio с открытым исходным кодом?
Эта надстройка сетки служб использует и строится на основе Istio с открытым кодом. Дополнительный функционал предоставляет следующие преимущества:
- Версии Istio тестируются и проверяются на совместимость с поддерживаемыми версиями Службы Kubernetes Azure.
- Корпорация Майкрософт обрабатывает масштабирование и настройку плоскости управления Istio
- Корпорация Майкрософт настраивает масштабирование компонентов AKS, например
coredns
при включении Istio. - Корпорация Майкрософт предоставляет управляемый жизненный цикл (обновления) для компонентов Istio при активации пользователем.
- Подтвержденная настройка внешнего и внутреннего входа.
- Проверено на совместимость с управляемой службой Azure Monitor для Prometheus и управляемой Grafana Azure.
- Официальная поддержка Azure предоставлена для надстройки.
Ограничения
Надстройка сетки служб на основе Istio для AKS имеет следующие ограничения:
Надстройка не работает в кластерах AKS, использующих надстройку Open Service Mesh для AKS.
Надстройка не работает в кластерах AKS с самоуправляемыми установками Istio.
Надстройка не поддерживает добавление модулей, связанных с виртуальными узлами, в сетку.
Надстройка пока не поддерживает шлюзы исходящего трафика для управления исходящим трафиком.
Надстройка пока не поддерживает режим внешнего окружения без боковой кареты. Корпорация Майкрософт в настоящее время вносит свой вклад в рабочий поток Ambient в рамках открытого проекта Istio. Интеграция продуктов для амбентного режима включена в план развития и постоянно оценивается по мере развития амбентного направления.
Дополнение пока не поддерживает развертывания с несколькими кластерами.
Надстройка пока не поддерживает контейнеры Windows Server. Контейнеры Windows Server пока не поддерживаются в проекте с открытым исходным кодом Istio. Здесь можно найти отслеживание запросов, связанных с этой функцией.
Настройка сетки с помощью следующих пользовательских ресурсов в настоящее время заблокирована
ProxyConfig, WorkloadEntry, WorkloadGroup, IstioOperator, WasmPlugin
.Надстройка позволяет использовать следующие
EnvoyFilter
типы фильтров, блокируя использование других типов фильтров:- Луа (
type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
) - Компрессор (
type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor
) - Ограничение локальной скорости (
type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
)
Примечание.
Хотя они
EnvoyFilter
разрешены, любые проблемы, возникающие из них (например, из сценария Lua или библиотеки сжатия) не входят в область поддержки надстройки Istio. Для получения дополнительной информации о категориях поддержки, касающихся функций и параметров конфигурации надстройки Istio, см. документ политики поддержки.- Луа (
API шлюза для входного шлюза Istio или для управления сетевым трафиком (ГАММА) пока не поддерживается в дополнении Istio. Однако API шлюза для управления трафиком Istio Ingress в настоящее время находится в активной разработке для надстройки. Хотя надстройка поддерживает аннотирование и
externalTrafficPolicy
настройку шлюзов Istio ingress, настройка портов или протоколов в настоящее время не поддерживается.Надстройка поддерживает настройку подмножества полей в MeshConfig. Другие настройки могут быть разрешены, но не поддерживаются или запрещены полностью, как описано здесь.
Отзывы и вопросы о функциях
Отзывы и запросы на функции для надстройки Istio можно отправить, создавая обращения с меткой "service-mesh" в репозитории AKS на GitHub.
Следующие шаги
Azure Kubernetes Service