Модуль управления внешними подключениями
В этом разделе можно настроить маршрутизацию внешних подключений к кластеру. Он обеспечивает управление и маршрутизацию входящего трафика извне к различным сервисам и приложениям, развернутым в контейнерах.
Полный перечень доступных для конфигурации параметров:
№ | Наименование параметра | Описание параметра | Значение параметра |
---|---|---|---|
1 | containerPort | Конфигурирует порты, на которых слушает nginx-controller. Здесь задаются два параметра: http: 80 — порт для прослушивания HTTP-трафика; https: 443 — порт для прослушивания HTTPS-трафика. | http: 80, https: 443 |
2 | config | Добавляет пользовательские параметры конфигурации для Nginx. Подробнее по ссылке. | По умолчанию пустой |
3 | configAnnotations | Аннотации, которые будут добавлены в конфигурационный configmap контроллера. | По умолчанию пустой |
4 | proxySetHeaders | Добавляет пользовательские заголовки перед отправкой трафика на бэкенды согласно инструкции по ссылкеcustom-headers. | По умолчанию пустой |
5 | addHeaders | Добавляет пользовательские заголовки перед отправкой ответного трафика клиенту согласно инструкции по ссылке#add-headers. | По умолчанию пустой |
6 | dnsConfig | Опционально настраивает конфигурацию DNS для пода. | По умолчанию пустой |
7 | hostname | Опционально настраивает имя хоста для пода. | По умолчанию пустой |
8 | dnsPolicy | Определяет политику DNS для пода; по умолчанию “ClusterFirst”. | ClusterFirst |
9 | reportNodeInternalIp | Указывает, следует ли отображать внутренний IP-адрес узла в Ingress status. | false |
10 | watchIngressWithoutClass | Обрабатывает объекты Ingress без аннотации ingressClass/поля ingressClassName. Переопределяет значение флага --watch-ingress-without-class контроллера . |
false |
11 | ingressClassByName | Обрабатывает IngressClass по имени (дополнительно к spec.controller). | true |
12 | allowSnippetAnnotations | Определяет, следует ли разрешать пользователям устанавливать свои аннотации *-snippet, иначе это запрещено/отбрасывается при добавлении таких аннотаций пользователями. Глобальные фрагменты в ConfigMap по-прежнему уважаются. | true |
13 | hostNetwork | Используется для работы с инсталляторами Kubernetes на основе CNI, такими как kubeadm | false |
14 | hostPort | Настройки для использования host-портов 80 и 443 | N/A |
15 | hostPort.enabled | Включить использование ‘hostPort’ или нет | false |
16 | hostPort.ports.http | HTTP порт для ‘hostPort’ | 80 |
17 | hostPort.ports.https | HTTPS порт для ‘hostPort’ | 443 |
18 | electionID | ID выборов для обновления статуса, по умолчанию использует имя контроллера с суффиксом ’leader’ | "" |
19 | ingressClassResource | Настройки для создания ресурса IngressClass, поддерживается в Kubernetes >= 1.18 и обязательно >= 1.19 | N/A |
20 | ingressClassResource.name | Название ресурса ingressClass | nginx |
21 | ingressClassResource.enabled | Включен ли данный ingressClass или нет | true |
22 | ingressClassResource.default | Является ли данный ingressClass значением по умолчанию для кластера | false |
23 | ingressClassResource.controllerValue | Значение контроллера, обрабатывающего данный ingressClass | “k8s.io/ingress-nginx” |
24 | ingressClassResource.parameters | Параметры для дополнительной настройки контроллера. Опционально, если контроллер не требует дополнительных параметров. | {} |
25 | ingressClass | Совместимость с аннотацией ingress.class. Учитываются ingressClassName и контроллер для работы с аннотацией ingress.class. | nginx |
26 | podLabels | Метки для добавления к метаданным контейнеров pod | {} |
27 | podSecurityContext | Политики контекста безопасности для контроллеров pod | {} |
28 | sysctls | Настройка системных параметров ядра (sysctl). Подробнее по ссылке | {} |
29 | publishService | Настройки для источника IP-адреса или FQDN в поле статуса ingress. По умолчанию используются данные, предоставляемые службами | N/A |
30 | publishService.enabled | Включить ‘publishService’ или нет | true |
31 | publishService.pathOverride | Позволяет переопределить путь связывания с опубликованной службой. Должен быть <namespace>/<service_name> |
"" |
32 | scope.enabled | Включить ‘scope’ или нет | false |
33 | scope.namespace | Namespace, где ограничить контроллер; по умолчанию использует $(POD_NAMESPACE) | "" |
34 | scope.namespaceSelector | При scope.enabled == false, вместо просмотра всех namespaces, будут просматриваться только те, чьи метки совпадают с namespaceSelector. Формат foo=bar. По умолчанию пустой, что означает просмотр всех namespaces | "" |
35 | configMapNamespace | Позволяет настроить configmap / nginx-configmap namespace; по умолчанию использует $(POD_NAMESPACE) | "" |
36 | tcp.configMapNamespace | Позволяет настроить tcp-services-configmap; по умолчанию использует $(POD_NAMESPACE) | "" |
37 | tcp.annotations | Аннотации, добавляемые к tcp config configmap | {} |
38 | udp.configMapNamespace | Позволяет настроить udp-services-configmap; по умолчанию использует $(POD_NAMESPACE) | "" |
39 | udp.annotations | Аннотации, добавляемые к udp config configmap | {} |
40 | maxmindLicenseKey | Лицензионный ключ Maxmind для скачивания баз данных GeoLite2 | "" |
41 | extraArgs | Дополнительные аргументы командной строки для передачи в nginx-ingress-controller. Например, для указания сертификата SSL по умолчанию, можно использовать | {} |
42 | extraEnvs | Дополнительные переменные окружения для установки | [] |
43 | kind | Использовать DaemonSet или Deployment | Deployment |
44 | annotations | Аннотации, добавляемые к контроллеру Deployment или DaemonSet | {} |
45 | labels | Метки, добавляемые к контроллеру Deployment или DaemonSet и другим ресурсам, которые не имеют опции указания меток (по умолчанию пусто, что означает добавление меток к Deployment или DaemonSet) | {} |
46 | updateStrategy | Стратегия обновления для Deployment или DaemonSet | {} |
47 | minReadySeconds | Минимальное количество секунд, через которое можно убить поды, чтобы все были готовы | 0 |
48 | tolerations | Настройки толерантности узлов для планирования сервера к узлам с проблемами | [] |
49 | affinity | Правила аффинности и анти-аффинности для планирования сервера на узлах | {} |
50 | topologySpreadConstraints | Ограничения распределения топологии, основанные на метках узлов для определения топологических доменов, на которых находится каждый узел | [] |
51 | terminationGracePeriodSeconds | Время ожидания перед принудительным завершением работы пода | 300 |
52 | nodeSelector | Метки узлов для назначения контроллера пода | kubernetes.io/os: linux |
53 | livenessProbe | Параметры пробы состояния контейнеров | path: “/healthz”, port: 10254, scheme: HTTP, initialDelaySeconds: 10, periodSeconds: 10, timeoutSeconds: 1, successThreshold: 1, failureThreshold: 5 |
54 | readinessProbe | Параметры пробы готовности контейнеров к работе | path: “/healthz”, port: 10254, scheme: HTTP, initialDelaySeconds: 10, periodSeconds: 10, timeoutSeconds: 1, successThreshold: 1, failureThreshold: 3 |
55 | healthCheckPath | Путь для проверки состояния работы | “/healthz” |
56 | healthCheckHost | Адрес привязки проверки состояния работы | (пусто) |
57 | podAnnotations | Аннотации для контроллера пода | (пусто) |
58 | replicaCount | Количество реплик контроллера | 1 |
59 | minAvailable | Минимальное количество доступных реплик | 1 |
60 | resources.requests.cpu | Запросы на использование CPU | 100m |
61 | resources.requests.memory | Запросы на использование памяти | 90Mi |
62 | autoscaling.enabled | Включение автомасштабирования на основе KEDA | false |
63 | autoscaling.minReplicas | Минимальное число реплик | 1 |
64 | autoscaling.maxReplicas | Максимальное число реплик | 11 |
65 | autoscaling.targetCPUUtilizationPercentage | Желаемый процент использования CPU | 50 |
66 | autoscaling.targetMemoryUtilizationPercentage | Желаемый процент использования памяти | 50 |
67 | autoscaling.behavior | Поведение автомасштабирования (набор правил) | {} |
68 | keda.apiVersion | Версия API KEDA | “keda.sh/v1alpha1” |
69 | keda.enabled | Включение автомасштабирования на основе KEDA | false |
70 | keda.minReplicas | Минимальное число реплик для KEDA | 1 |
71 | keda.maxReplicas | Максимальное число реплик для KEDA | 11 |
72 | keda.pollingInterval | Интервал опроса для KEDA | 30 |
73 | keda.cooldownPeriod | Период охлаждения для KEDA | 300 |
74 | keda.restoreToOriginalReplicaCount | Возвращение к исходному количеству реплик после масштабирования | false |
75 | keda.scaledObject.annotations | Аннотации для ресурса ScaledObject | {} |
76 | keda.triggers | Триггеры для масштабирования KEDA | [] |