Ingress-nginx#

Ingress-nginx - часть DropApp, которая отвечает за управление сетевым трафиком в кластере. Осуществляет доступ к сервисам и приложениям, используя правила маршрутизации с помощью HTTP, HTTPS, DNS и других протоколов.

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

Ingress-nginx обеспечивает безопасность и надежность сетевых взаимодействий в кластере, снижая нагрузку на инфраструктуру и повышая стабильность работы сервисов и приложений.

Контроль доступа на основе ролей (RBAC)#

Примечание

Применяется к Ingress NGINX Controller, развернутым в среде с включенным RBAC.

Ролевой контроль доступа состоит из четырех уровней:

  1. ClusterRole - это разрешения, назначенные роли, которые применяются ко всему кластеру.

  2. ClusterRoleBinding - это привязка ClusterRole к определенной учетной записи.

  3. Role - это разрешения, назначенные роли, которые применяются к определенному namespace.

  4. RoleBinding- это привязка роли к определенной учетной записи.

Ingress NGINX Controller необходимо назначить ServiceAccount для применения RBAC. ServiceAccount должен быть привязанным к ролям и ClusterRoles, определенным для Ingress NGINX Controller

Разрешения кластера#

Предоставляются для того, чтобы Ingress NGINX Controller мог функционировать как входной порт в кластере. Разрешения предоставляются ClusterRole с именем ingress-nginx:

  • configmaps, endpoints, nodes, pods, secrets: list, watch - разрешения позволяют получать список объектов и наблюдать за изменениями;

  • nodes: get - разрешение позволяет получать информацию о nodes в кластере;

  • services, ingresses, ingressclasses, endpointslices: get, list, watch - разрешения позволяют получать информацию, а также наблюдать за изменениями в этих ресурсах;

  • events: create, patch - разрешения позволяют создавать и изменять события в кластере;

  • ingresses/status: update - разрешение позволяет обновлять статус внешних ресурсов;

  • leases: list, watch - разрешения позволяют получать список и наблюдать за изменениями в лицензиях.

Разрешения namespace#

Предоставляются для namespace Ingress-nginx. Разрешения выдаются Role с именем ingress-nginx:

  • configmaps, pods, secrets: get - разрешения позволяют получать информацию;

  • endpoints: get - разрешения позволяют получать информацию о конечных точках.

Ingress Controller должен иметь доступ к leases с использованием resourceName ingress-nginx-leader:

  • leases: get, update - разрешения на получение и обновление (с использованием resourceName ingress-controller-leader);

  • leases: create - разрешение на создание.

Важно

ResourceName не могут быть использованы для ограничения запросов с использованием «create», потому что модули авторизации имеют доступ только к информации, которую можно получить из URL-адреса запроса, метода и заголовков (resourceName в запросе на «create» являются частью тела запроса).

ResourceName это election-id определенный ingress-controller, который по умолчанию:

  • election-id: ingress-controller-leader;

  • resourceName : <election-id>.