Управление конфигурацией Sidecar
Содержание
Введение
Конфигурация Sidecar позволяет точно контролировать поведение прокси Envoy в сервисных сетях Istio. Эта функциональность:
- Определяет область применения политики трафика
- Оптимизирует использование ресурсов прокси
- Реализует контроль доступа на уровне namespace
- Поддерживает иерархические стратегии конфигурации
Основная ценность: балансировка производительности и безопасности сервисной сети через детальное управление трафиком
Особенности
- Конфигурация по умолчанию для всего кластера
- Пользовательские правила для отдельных namespace
- Поддержка шаблонов с подстановочными знаками
- Механизм приоритетного переопределения
Управление конфигурацией по умолчанию
Параметры конфигурации
Параметр | Формат | Пример |
---|
Egress Hosts | namespace/dnsName | istio-system/* |
Процесс обновления
- Перейдите: Service Mesh > Meshes
- Выберите целевой mesh > вкладка Sidecar Config
- Найдите кластер > нажмите иконку редактирования

- Настройте egress hosts:
- Выберите namespace из выпадающего списка
- Выберите шаблон:
*/*
для всего кластера
./*
для текущего namespace
- Пользовательский namespace
- Нажмите 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"
Шаги реализации
- Откройте страницу с деталями mesh
- Перейдите на вкладку Sidecar Config
- Нажмите Create Sidecar Configuration
- Выберите целевой namespace
- Настройте шаблоны egress hosts:
- Используйте подстановочный знак
*
для широкого совпадения
.
обозначает текущий namespace
- Проверьте приоритет переопределения
Примеры конфигураций
Пример 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 с поддержкой подстановок |
Операционные ограничения
-
Привязка к namespace:
- Пользовательские конфигурации влияют только на назначенный namespace
- Конфигурация по умолчанию требует namespace
istio-system
-
Правила шаблонов:
- Подстановочный знак (*) разрешён только в самом левом компоненте DNS
prod/*.svc.cluster.local
соответствует сервисам prod
-
Задержка обновления:
- Изменения конфигурации вступают в силу в течение 60 секунд
- Требуется control plane Istio версии 1.9 и выше