Cilium-haegress-operator#
Cilium-haegress-operator – это оператор, предназначенный для обеспечения высокой доступности исходящего трафика (Egress) в кластерах, использующих сетевое решение Cilium. В стандартной конфигурации ресурс CiliumEgressGatewayPolicy не поддерживает автоматическое перемещение Egress IP между узлами в случае сбоя, что создает единую точку отказа. Данный оператор решает эту проблему, создавая виртуальный IP-адрес, который автоматически мигрирует между узлами, обеспечивая бесперебойный исходящий трафик для выбранных подов.
Основные задачи и возможности
Обеспечение высокой доступности исходящего трафика: Cilium-haegress-operator позволяет реализовать отказоустойчивый
Egress Gateway, автоматически перемещая виртуальный IP-адрес на другой узел в случае падения текущего.Интеграция с Kube-vip: оператор использует
kube-vipв качестве менеджера плавающих IP-адресов, что гарантирует быстрое и надежное переключение при сбоях узлов без ручного вмешательства.Автоматическое управление политиками: оператор динамически обновляет
CiliumEgressGatewayPolicy, привязывая его к узлу, на котором в данный момент активен виртуальный IP-адрес, и поддерживает постоянную синхронизацию состояния всех связанных объектов (при удалении одного из них оператор воссоздаст его).
Основные компоненты Cilium-haegress-operator:
Operator Controller: разворачивается какDeploymentи отслеживает аннотации сервисов, создаваемыхkube-vip(например,kube-vip.io/vipHost), и синхронизирует состояниеCiliumEgressGatewayPolicyиService.**Kube-vip**: внешний компонент, который управляет назначением и перемещением виртуального IP-адреса между узлами кластера, помечая активный узел соответствующими аннотациями.
Конфигурация values#
Значения можно переопределить через редактирование инструмента с именем cilium-haegress-operator и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».
volumeMounts – дополнительные точки монтирования томов (VolumeMounts)
affinity – правила привязки (affinity и anti-affinity) pod к узлам
replicaCount – количество реплик#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Количество реплик pod инструмента |
|
image – параметры контейнерного образа#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Путь к Docker-образу |
|
|
Политика загрузки образа. |
|
|
Тег образа контейнера |
|
logLevel – уровень журналирования#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Уровень журналирования. |
|
logFormat – формат журналирования#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Формат вывода логов. |
|
imagePullSecrets – Secret для загрузки образов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список |
|
nameOverride – переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение базового имени ресурсов чарта для генерации имен |
|
fullnameOverride – полное переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Полное переопределение имени для всех создаваемых ресурсов чарта |
|
serviceAccount – настройки сервисного аккаунта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение создания |
|
|
Автоматическое монтирование учетных данных API |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Имя |
|
rbac – настройки RBAC (управление доступом на основе ролей)#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Активация автоматического создания ресурсов RBAC |
|
autoscaling – настройки автомасштабирования#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение автомасштабирования |
|
|
Минимальное количество реплик при автоматическом масштабировании |
|
|
Максимальное количество реплик при автоматическом масштабировании |
|
|
Целевая загрузка CPU в процентах |
|
|
Целевая загрузка памяти в процентах |
|
podAnnotations – аннотации pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для pod. |
|
podLabels – метки pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки для pod |
|
podSecurityContext – параметры контекста безопасности pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Параметры контекста безопасности pod. |
|
securityContext – контекст безопасности контейнера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Контекст безопасности на уровне контейнера. |
|
resources – запросы и ограничения ресурсов контейнера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Ограничение ресурсов CPU для контейнера |
|
|
Ограничение ресурсов памяти для контейнера |
|
|
Запрашиваемые ресурсы CPU для контейнера |
|
|
Запрашиваемые ресурсы памяти для контейнера |
|
volumes – дополнительные тома (Volume)#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные тома ( |
|
volumeMounts – дополнительные точки монтирования томов (VolumeMounts)#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные точки монтирования томов ( |
|
nodeSelector – селектор узлов для планирования pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Селектор узлов для планирования pod |
|
tolerations – параметры Toleration для pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
|
|
affinity – правила привязки (affinity и anti-affinity) pod к узлам#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Правила для привязки pod к узлам, обладающим определенными метками |
|