Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Istio

Сайт проекта.

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

  • Безопасная связь между сервисами в кластере с взаимным TLS-шифрованием, надёжной аутентификацией и авторизацией на основе идентификационных данных.
  • Автоматическая балансировка нагрузки для трафика HTTP, gRPC, WebSocket и TCP.
  • Точное управление поведением трафика с помощью расширенных правил маршрутизации, повторных попыток, аварийного переключения и имитации сбоев.
  • Подключаемый уровень политик и API конфигурации, поддерживающие контроль доступа, ограничения скорости и квоты.
  • Автоматические показатели, журналы и трассировки для всего трафика внутри кластера, включая входящий и исходящий трафик кластера.

В своей работе istio использует прокси сервера для перехвата всего трафика приложений.

Существуют два режима работы istio:

  • Sidecar - когда в под приложения добавляются один (входящий трафик) или два (плюс исходящий трафик) контейнера с прокси серверами Envoy.
  • Ambient - устанавливается один прокси сервер на каждую ноду кластера для проксирования трафика на 4-м уровне. И иногда дополнительные прокси сервера для работы на 7-м уровне для определенных namespaces.

Первый вариант является классическим для istio. Но потребляет больше ресурсов кластера и вносит большие задержки в трафик. Второй вариант более современный. Но из-за своей новизны менее распространен.

Различия между режимами хорошо описаны в документации.

В дальнейшем мы будем рассматривать только Ambient режим.

Как это работает

Istio разделяет свои функции на два отдельных уровня. На базовом уровне ztunnel обеспечивает безопасную маршрутизацию и защиту трафика с нулевым доверием. При необходимости пользователи могут включить прокси-серверы L7 для доступа ко всему набору функций Istio. Прокси-серверы L7, хотя и более ресурсоёмкие, чем только ztunnel, по-прежнему работают как фоновый компонент инфраструктуры, не требуя внесения изменений в код приложений пользователей.

Термин «безопасное наложение» используется для обозначения набора сетевых функций уровня L4, реализованных в mesh сети с помощью прокси-сервера ztunnel. На транспортном уровне это реализовано с помощью протокола туннелирования трафика на основе HTTP CONNECT под названием HBONE.

Основным компонентом istio data plane является istiod. Считается компонентом с высокими привилегиями, как и сам сервер API Kubernetes.

  • У него есть высокие привилегии Kubernetes RBAC, обычно включающие доступ к Secret для чтения и доступ для записи в webhook.
  • Действуя в качестве центра сертификации, он может предоставлять произвольные сертификаты.
  • Выступая в качестве плоскости управления XDS, он может программировать прокси-серверы для выполнения произвольных действий.

Таким образом, безопасность кластера тесно связана с безопасностью Istiod. Соблюдение рекомендаций по обеспечению безопасности Kubernetes при доступе к Istiod имеет первостепенное значение.

Более глубокую информацию по работе компонент Istio мы рассмотрим по мере изучения конкретных возможностей.

Install Istio

Install Istio.

Install Kiali

Install Kiali.

Примеры использования Istio

Примеры использования