Ingress-nginx#
Ingress-nginx - часть DropApp, которая отвечает за управление сетевым трафиком в кластере. Осуществляет доступ к сервисам и приложениям, используя правила маршрутизации с помощью HTTP, HTTPS, DNS и других протоколов.
Ingress NGINX Controller предоставляет гибкие механизмы для управления конфигурацией маршрутизации сетевых запросов. Позволяет администраторам настраивать и конфигурировать сервисы и приложения, обеспечивая прозрачное балансирование нагрузки и управление трафиком. Это способствует повышению отказоустойчивости и эффективности работы приложений.
Ingress-nginx обеспечивает безопасность и надежность сетевых взаимодействий в кластере, снижая нагрузку на инфраструктуру и повышая стабильность работы сервисов и приложений.
Контроль доступа на основе ролей (RBAC)#
Примечание
Применяется к Ingress NGINX Controller, развернутым в среде с включенным RBAC.
Ролевой контроль доступа состоит из четырех уровней:
ClusterRole- это разрешения, назначенные роли, которые применяются ко всему кластеру.ClusterRoleBinding- это привязкаClusterRoleк определенной учетной записи.Role- это разрешения, назначенные роли, которые применяются к определенному namespace.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 - разрешения на получение и обновление (с использованиемresourceNameingress-controller-leader);leases: create - разрешение на создание.
Важно
ResourceName не могут быть использованы для ограничения запросов с использованием «create», потому что модули авторизации имеют доступ только к информации, которую можно получить из URL-адреса запроса, метода и заголовков (resourceName в запросе на «create» являются частью тела запроса).
ResourceName это election-id определенный ingress-controller, который по умолчанию:
election-id:ingress-controller-leader;resourceName:<election-id>.