NGINX Ingress Controller: управляющий кластером
Запуск кластера Kubernetes – задача технически сложная. И дело не только в необходимости специальных компетенций для развертывания и последующего администрирования K8. Компаниям, которые обеспечить для своих групп разработки современную DevOps-среду, предстоит выбрать для начала архитектурные решения: не только облачную платформу, но и систему, которая будет отвечать за управление трафиком, Ingress Controller.
Что такое Ingress
Те, кто использует Kubernetes, знают, что одной из важнейших задач при его настройке является балансировка трафика на приложения. Для этого в К8 имеется специальная функциональность, Ingress, необходимость в которой особенно высока, если кластер используется в виртуальной среде или в облаке (то есть – в большинстве случаев). Дело в том, что в самой Kubernetes собственного балансировщика загрузки нет, и для работы всегда приходится настраивать внешний Load Balancer.
Делается это в соответствии с набором правил внутри кластера. Он то и называется Ingress. Решает этот набор множество задач, основные из которых, – организация внешнего доступа приложений к URL, балансировка трафика, терминация SSL и виртуальный хостинг на основе имен. Но сами по себе правила, как известно бесполезны. Их необходимо выполнять. И для этого необходим контроллер входящего трафика, или – Ingress Controller. Так называется целый класс решений.
Причем здесь NGINX
Балансировщиков трафика для Ingress немало – больше десятка. Но выделяется среди них разработка компании, которая в излишних рекомендациях не нуждается. Впрочем, о ней мы уже успели рассказать. Речь идет о NGINX, российской компании, которая уже два года входит в состав холдинга F5 Networks.
Основной продукт NGINX, конечно, одноименный веб-сервер. Есть еще решение класса enterprise – NGINX Plus, способное решать огромное количество задач: обеспечивать защита веб-приложений, балансировать нагрузку, вести расширенный мониторинг и управлять веб-ресурсами. С ним связан и NGINX Ingress Controller.
Стоит лишний раз отметить заслуги NGINX. Компания сумела покорить рынок не только с веб-сервером. NGINX Ingress Controller тоже входит в число самых применяемых в своем классе продуктов. О том, что они используют именно это решение, рассказали, к примеру, более половины участников специального опроса Cloud Native Computing Foundation, который был проведен в 2018 году. На DockerHub решение загрузили более 10 миллионов раз – и это наглядно подтверждает его претензии на глобальное лидерство.
Зачем нужен NGINX Ingress Controller
Если коротко – для защиты, поддержки и масштабирования контейнерных приложений. Решает NGINX Ingress Controller три ключевые задачи, без которых нормальное развертывание K8 невозможно.
Во-первых, NGINX Ingress Controller обеспечивает управление доступом к кластеру на основе ролей: для NetOps/DevOps, ИТ-администраторов и DevSecOps. Это позволяет каждой команде, использующей кластер, управлять своими приложениями, не вмешиваясь в работу остальных.
Во-вторых, решение позволяет вести мониторинг кластера, выявлять аномальные события и определять узкие места, которые сдерживают производительность.
А в-третьих, в NGINX Ingress Controller есть богатые ресурсы для того, чтобы сконфигурировать К8, обеспечить сложную маршрутизацию, аутентификацию по протоколам mTLS и WAF, наладить управления заголовками. Кстати, интеграция с другими решениями NGINX (в первую очередь – с базовым для Ingress Controller NGINX Plus) тоже присутствует.
Развернуть NGINX Ingress Controller можно на любой платформе Kubernetes. Решение поддерживает RedHat OpenShift, Amazon EKS, Azure Kubernetes Service, Diamanti, платформы Google и IBM Private Cloud.
Как Ingress Controller управляет трафиком
Основное назначение NGINX Ingress Controller – управление трафиком. Для этого решение формирует унифицированную среду на основе другого решения компании – NGINX Service Mesh, в которой учитываются потребности и в масштабировании, и в производительности, и в безопасности. Стоит отметить, что управляет NGINX Ingress Controller как входящим, так и исходящим трафиком.
А что с безопасностью?
Безопасность на периферии – «узкое место» Kubernetes. Поэтому NGINX Ingress Controller разворачивает WAF в непосредственной близости к приложениям, которые он защищает. Тем самым сокращается число возможных отказов. Кроме того, Ingress Controller интегрируется с NGINX AppProtect – специальным приложением компании, которое отвечает за обеспечение безопасности приложений в средах DevOps.
Как распространяется NGINX Ingress Controller
NGINX верна себе: ее продукты всегда доступны в бесплатных версиях. Но возможности их, как известно, существенно ограничены. Ingress Controller – не исключение. Решение можно скачать отдельно на GitHub и …потратить множество сил и времени на его установку и настройку. Для компаний, которые развивают собственные среды, куда удобнее будет полнофункциональная версия, которую можно приобрести как отдельно, так и в составе NGINX Plus.
Хотите познакомиться с работой NGINX Ingress Controller в деталях? Нет ничего проще: мы уже рассказали об этом решении во время специального вебинара.
ПОЛУЧИТЕ КОНСУЛЬТАЦИЮ ЭКСПЕРТА!
Вебинары эксперта