Ingress-nginx#
Ingress-nginx - часть DropApp, которая отвечает за управление сетевым трафиком в кластере. Осуществляет доступ к сервисам и приложениям, используя правила маршрутизации с помощью HTTP, HTTPS, DNS и других протоколов.
Ingress-nginx-controller предоставляет гибкие механизмы для управления конфигурацией маршрутизации сетевых запросов. Позволяет администраторам настраивать и конфигурировать сервисы и приложения, обеспечивая прозрачное балансирование нагрузки и управление трафиком. Это способствует повышению отказоустойчивости и эффективности работы приложений.
Ingress-nginx обеспечивает безопасность и надежность сетевых взаимодействий в кластере, снижая нагрузку на инфраструктуру и повышая стабильность работы сервисов и приложений.
Контроль доступа на основе ролей (RBAC)#
Примечание
Применяется к Ingress-nginx-controller, развернутым в среде с включенным RBAC.
Ролевый контроль доступа состоит из четырех уровней:
ClusterRole- это разрешения, назначенные роли, которые применяются ко всему кластеру.ClusterRoleBinding- это привязкаClusterRoleк определенной учетной записи.Role- это разрешения, назначенные роли, которые применяются к определенному namespace.RoleBinding- это привязка роли к определенной учетной записи.
Для применения RBAC к Ingress-nginx-controller, этот контроллер должен быть назначен ServiceAccount. 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-nginx-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>.