Поделиться через


Сведения о сетках служб

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

Сценарии

При использовании сетки служб можно включить такие сценарии, как:

  • Шифрование всего трафика в кластере: включение взаимного TLS между указанными службами в кластере. Это может быть расширено до входящего трафика и исходящего трафика по периметру сети и предоставляет безопасный по умолчанию параметр без изменений, необходимых для кода приложения и инфраструктуры.

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

  • Управление трафиком и манипуляция: создайте политику в службе, которая ограничивает весь трафик версией службы из определенного источника или политику, которая применяет стратегию повторных попыток к классам сбоев между указанными службами. Зеркально отобразите динамический трафик в новые версии служб во время миграции или для отладки в случае проблем. Вставьте отказы между службами в тестовой среде для тестирования устойчивости.

  • Наблюдаемость. Получите представление о подключении служб и трафике, который проходит между ними. Соберите метрики, журналы и трассировки для всего трафика в кластере, включая входящий и исходящий трафик. Добавьте возможности распределенной трассировки в приложения.

Условия выбора

Прежде чем выбрать сетку служб, убедитесь, что вы понимаете требования и причины установки сетки службы. Ответьте на следующие вопросы:

  • Достаточно ли контроллера входящего трафика для моих потребностей?: иногда для поддержки требуемого сценария достаточно иметь возможность, например A/B-тестирование или разделение трафика на входящего трафика. Не усложняйте свою среду без причины.

  • Могут ли мои рабочие нагрузки и среда терпеть дополнительные затраты?: все компоненты, необходимые для поддержки сетки служб, требуют ресурсов, таких как ЦП и память. Все прокси-серверы и связанные с ними проверки политики добавляют задержку в трафик. Если у вас есть рабочие нагрузки, которые очень чувствительны к задержке или не могут предоставлять дополнительные ресурсы для покрытия компонентов сетки служб, следует пересмотреть использование сетки службы.

  • Это добавление ненужной сложности?: Если вы хотите установить сетку служб, чтобы использовать возможность, которая не важна для бизнеса или операционных групп, рассмотрите, стоит ли добавить сложность установки, обслуживания и конфигурации.

  • Можно ли использовать это в добавочном подходе? Некоторые сетки служб, которые предоставляют множество возможностей, могут быть приняты в более добавочном подходе. Чтобы гарантировать успех, установите только необходимые компоненты. Если позже вы обнаружите, что требуются дополнительные возможности, изучите их позже. Не поддавайтесь желанию установить все с самого начала.

Следующие шаги

Служба Azure Kubernetes (AKS) предлагает официально поддерживаемые надстройки для Istio и Open Service Mesh:

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

Дополнительные сведения о других сетках служб см. на странице Layer 5's Service Mesh Landscape (Ландшафт сеток служб от Layer5).

Дополнительные сведения о усилиях по стандартизации сетки служб см. в следующем разделе: