Ingress

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

Какую проблему решает

Нативные облачные веб-приложения состоят из множества сервисов. Часто эти сервисы должны быть доступны через интернет, чтобы пользователи могли обратиться к ним через браузер. Чтобы сервисы приложения, запущенного в Kubernetes, стали доступными для внешнего мира, необходимо выполнить специальные действия. Проще всего было бы использовать балансировщик нагрузки Kubernetes. Но создание такого сервиса означает появление нового компонента в базовой инфраструктуре. Возникнут дополнительные затраты и накладные расходы на управление. Кроме того, у каждого вновь созданного балансировщика нагрузки будет свой собственный внешний IP-адрес. Из-за этого пострадают и сами пользователи, поскольку придётся каждый раз вводить новый URL-адрес для доступа к приложению.

Как именно решает проблему

Ресурс Ingress позволяет настроить балансировку и маршрутизацию трафика к сервисам приложения. Ingress-контроллер открывает единую точку входа через URL (www.example-url.com) и выполняет фактическую маршрутизацию и балансировку, руководствуясь различными URL-путями (www.example-url.com/path). Ingress-контроллер работает в кластере и интерпретирует правила, определенные в ресурсе Ingress. Выбор конкретного Ingress-контроллера из существующих технологий (Nginx, Traefik, HAProxy и т. д.) осуществляют сами администраторы кластера, в котором работает веб-приложение. Подход на базе Ingress обеспечивает доступ к приложению по единому URL, даже если оно состоит из большого числа сервисов. Это устраняет необходимость запускать множество отдельных балансировщиков нагрузки на уровне инфраструктуры и упрощает настройку правил брандмауэра и балансировщика нагрузки для каждого сервиса. Централизуя маршрутизацию трафика и управление конфигурацией, Ingress упрощает масштабирование, оптимизирует использование ресурсов, снижает затраты и повышает общую управляемость приложений, работающих в кластере.


Последнее изменение August 18, 2024: [ru] Localize `Ingress` (#3230) (b6af100)