Модуль управления внешними подключениями

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

Полный перечень доступных для конфигурации параметров:

Наименование параметра Описание параметра Значение параметра
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 []