Управление конфигурацией Sidecar

Содержание

Введение

Конфигурация Sidecar позволяет точно контролировать поведение прокси Envoy в сервисных сетях Istio. Эта функциональность:

  • Определяет область применения политики трафика
  • Оптимизирует использование ресурсов прокси
  • Реализует контроль доступа на уровне namespace
  • Поддерживает иерархические стратегии конфигурации

Основная ценность: балансировка производительности и безопасности сервисной сети через детальное управление трафиком

Особенности

  • Конфигурация по умолчанию для всего кластера
  • Пользовательские правила для отдельных namespace
  • Поддержка шаблонов с подстановочными знаками
  • Механизм приоритетного переопределения

Управление конфигурацией по умолчанию

Параметры конфигурации

ПараметрФорматПример
Egress Hostsnamespace/dnsNameistio-system/*

Процесс обновления

  1. Перейдите: Service Mesh > Meshes
  2. Выберите целевой mesh > вкладка Sidecar Config
  3. Найдите кластер > нажмите иконку редактирования
  4. Настройте egress hosts:
    • Выберите namespace из выпадающего списка
    • Выберите шаблон:
      • */* для всего кластера
      • ./* для текущего namespace
      • Пользовательский namespace
  5. Нажмите Confirm

Ограничения:

  • Должна находиться в namespace istio-system
  • Влияет на все namespace без пользовательской конфигурации

Настройка пользовательской конфигурации

Шаблон конфигурации

apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
  name: ns-custom
  namespace: target-ns
spec:
  egress:
  - hosts:
    - "dev/*"
    - "prod/db-service"

Шаги реализации

  1. Откройте страницу с деталями mesh
  2. Перейдите на вкладку Sidecar Config
  3. Нажмите Create Sidecar Configuration
  4. Выберите целевой namespace
  5. Настройте шаблоны egress hosts:
    • Используйте подстановочный знак * для широкого совпадения
    • . обозначает текущий namespace
  6. Проверьте приоритет переопределения

Примеры конфигураций

Пример 1: Изоляция namespace

apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
  name: ns-prod
  namespace: prod
spec:
  egress:
  - hosts:
    - "prod/*"  # Текущий namespace
    - "monitoring/*"  # Конкретный namespace

Пример 2: Полный доступ к кластеру

apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
  name: default
  namespace: istio-system
spec:
  egress:
  - hosts:
    - "*/*"  # Все namespace

Спецификации параметров

ПараметрОбязательныйТипОписание
namespaceДаStringДолжен быть istio-system для конфигурации по умолчанию
egressДаArrayСодержит массив шаблонов hosts
hostsДаArrayФормат namespace/dnsName с поддержкой подстановок

Операционные ограничения

  1. Привязка к namespace:

    • Пользовательские конфигурации влияют только на назначенный namespace
    • Конфигурация по умолчанию требует namespace istio-system
  2. Правила шаблонов:

    • Подстановочный знак (*) разрешён только в самом левом компоненте DNS
    • prod/*.svc.cluster.local соответствует сервисам prod
  3. Задержка обновления:

    • Изменения конфигурации вступают в силу в течение 60 секунд
    • Требуется control plane Istio версии 1.9 и выше