Editor : Esta publicación es parte de una serie de 10 partes:
- Reduzca la complejidad con Kubernetes de nivel de producción
- Cómo mejorar la resiliencia en Kubernetes con la gestión avanzada del tráfico
- Cómo mejorar la visibilidad en Kubernetes
- Seis formas de proteger Kubernetes mediante herramientas de gestión del tráfico
- Guía para elegir un controlador de entrada, parte 1: Identifique sus requisitos
- Guía para elegir un controlador de entrada, parte 2: Riesgos y preparación para el futuro
- Guía para elegir un controlador de entrada, parte 3: Código abierto vs. Predeterminado vs. Comercial
- Guía para elegir un controlador de entrada, parte 4: Opciones del controlador de ingreso NGINX (esta publicación)
- Cómo elegir una malla de servicios
- Pruebas de rendimiento de controladores de ingreso NGINX en un entorno dinámico de nube de Kubernetes
También puede descargar el conjunto completo de blogs como un libro electrónico gratuito: Cómo llevar Kubernetes de la prueba a la producción .
Según la encuesta 2020 de la Cloud Native Computing Foundation (CNCF), NGINX es el plano de datos más utilizado en los controladores de ingreso para Kubernetes, pero ¿sabías que hay más de un “controlador de ingreso NGINX”?
Una versión anterior de este blog, publicada en 2018 bajo el título Espere, ¿qué controlador de ingreso NGINX para Kubernetes estoy usando?, surgió de una conversación con un miembro de la comunidad sobre la existencia de dos controladores de ingreso populares que usan NGINX.

Es fácil ver por qué hubo (y todavía hay) confusión. Ambos controladores de Ingress son:
- Llamado “Controlador de ingreso NGINX”
- Código abierto
- Alojado en GitHub con nombres de repositorio muy similares
- El resultado de proyectos que comenzaron casi al mismo tiempo.
Y por supuesto, lo que tienen en común es que implementan la misma función.
NGINX frente a. Controlador de ingreso de la comunidad de Kubernetes
Para mayor claridad, diferenciamos las dos versiones de la siguiente manera:
- Versión de la comunidad : se encuentra en el repositorio kubernetes/ingress-nginx en GitHub; el controlador de Ingress de la comunidad se basa en NGINX de código abierto con documentación en Kubernetes.io . Lo mantiene la comunidad Kubernetes.
- Versión NGINX : se encuentra en el repositorio nginxinc/kubernetes-ingress en GitHub. NGINX Ingress Controller es desarrollado y mantenido por F5 NGINX con documentación en docs.nginx.com . Está disponible en dos ediciones:
- NGINX basado en código abierto (opción gratuita y de código abierto)
- Basado en NGINX Plus (opción comercial)
También hay otros controladores Ingress basados en NGINX, como Kong, pero afortunadamente sus nombres se distinguen fácilmente. Si no está seguro de qué controlador de ingreso NGINX está usando, verifique la imagen del contenedor del controlador de ingreso en ejecución y luego compare el nombre de la imagen de Docker con los repositorios enumerados anteriormente.
Objetivos y prioridades del controlador de ingreso NGINX
Una diferencia principal entre el controlador de Ingress NGINX y el controlador de Ingress comunitario (junto con otros controladores de Ingress basados en NGINX de código abierto) son sus modelos de desarrollo e implementación, que a su vez se basan en diferentes objetivos y prioridades.
- Filosofía de desarrollo : nuestra principal prioridad para todos los proyectos y productos NGINX es ofrecer una herramienta rápida y liviana con estabilidad y consistencia a largo plazo. Hacemos todos los esfuerzos posibles para evitar cambios de comportamiento entre versiones, particularmente aquellos que rompan la compatibilidad con versiones anteriores. Le prometemos que no verá ninguna sorpresa inesperada cuando realice la actualización. También creemos en la elección, por lo que todas nuestras soluciones se pueden implementar en cualquier plataforma, incluidos servidores físicos, contenedores, máquinas virtuales y nubes públicas, privadas e híbridas.
- Base de código integrada : el controlador de ingreso NGINX utiliza una instancia NGINX Open Source o NGINX Plus 100 % pura para equilibrar la carga y aplica la configuración de mejores prácticas utilizando únicamente las capacidades nativas de NGINX. No depende de ningún módulo de terceros ni de código Lua que no se haya beneficiado de nuestras pruebas de interoperabilidad. No ensamblamos nuestro controlador Ingress a partir de muchos repositorios de terceros; desarrollamos y mantenemos el balanceador de carga (NGINX y NGINX Plus) y el software del controlador Ingress (una aplicação Go) nosotros mismos. Somos la única autoridad para todos los componentes de nuestro controlador Ingress.
- Gestión avanzada del tráfico : una de las limitaciones del recurso estándar de Ingress de Kubernetes es que debe usar funciones auxiliares como anotaciones, ConfigMaps y plantillas de clientes para personalizarlo con funciones avanzadas. Los recursos de Ingress de NGINX proporcionan un estilo de configuración nativo, seguro para tipos y sangrado que simplifica la implementación de las capacidades de equilibrio de carga de Ingress, incluidos TCP/UDP, interrupción de circuitos, pruebas A/B, implementaciones azul-verde, manipulación de encabezados, autenticación TLS mutua (mTLS) y firewall de aplicação web (WAF).
- Disponibilidad de producción continua : cada versión se crea y se mantiene según un estándar de producción sostenible. Usted se beneficia de este enfoque de “nivel empresarial” por igual ya sea que utilice la edición basada en NGINX Open Source o en NGINX Plus . Los usuarios de NGINX Open Source pueden obtener respuestas a sus preguntas en GitHub por parte de nuestro equipo de ingeniería, mientras que los suscriptores de NGINX Plus obtienen el mejor soporte de su clase . De cualquier manera, ¡es como tener un desarrollador NGINX en tu equipo de DevOps!
NGINX de código abierto frente a... NGINX Plus – ¿Por qué actualizar a nuestra edición comercial?
Y mientras estamos aquí, repasemos algunos de los beneficios clave que obtendrá del controlador de ingreso NGINX basado en NGINX Plus . Como comentamos en Cómo elegir un controlador de ingreso de Kubernetes, parte 3: Código abierto vs. Predeterminado vs. Comercialmente , existen diferencias sustanciales entre los controladores Ingress de código abierto y los comerciales. Si está planeando grandes implementaciones de Kubernetes y aplicaciones complejas en producción, descubrirá que nuestro controlador Ingress comercial le ahorra tiempo y dinero en algunas áreas clave.
Seguridad y cumplimiento
Una de las principales razones por las que muchas organizaciones no logran entregar aplicaciones Kubernetes en producción es la dificultad de mantenerlas seguras y compatibles. El controlador de ingreso NGINX basado en NGINX Plus desbloquea cinco casos de uso que son fundamentales para mantener sus aplicaciones y clientes seguros.

- Proteja el borde : en una implementación de Kubernetes bien diseñada, el controlador de ingreso es el único punto de entrada para el tráfico del plano de datos que fluye hacia los servicios que se ejecutan dentro de Kubernetes, lo que lo convierte en una ubicación ideal para un firewall de aplicação web (WAF). NGINX App Protect se integra con NGINX Ingress Controller<.htmla> para proteger sus aplicaciones de Kubernetes contra OWASP Top 10 y muchas otras vulnerabilidades, garantiza el cumplimiento de PCI DSS y supera a ModSecurity .
- Centralice la autenticación y la autorización : puede implementar una capa de autenticación e inicio de sesión único (SSO) en el punto de ingreso con OpenID Connect (OIDC), construido sobre el marco OAuth 2.0, y la autenticación JSON Web Token (JWT).
- Implemente el cifrado de extremo a extremo : cuando necesite proteger el tráfico entre servicios, probablemente buscará una malla de servicios. NGINX Service Mesh, siempre gratuito, se integra perfectamente con NGINX Ingress Controller, lo que le permite controlar el tráfico mTLS de entrada y salida de manera eficiente y con una latencia mínima en comparación con otras mallas.
- Reciba notificaciones de parches oportunas y proactivas : cuando se informan CVE, los suscriptores reciben información proactiva y obtienen parches rápidamente. Pueden aplicar los parches de inmediato para reducir el riesgo de explotación, en lugar de tener que estar buscando actualizaciones en GitHub o esperar semanas (incluso meses) hasta que se publique un parche.
- Sea compatible con FIPS : puede habilitar el modo FIPS para garantizar que los clientes que hablan con NGINX Plus utilicen un cifrado sólido con una implementación confiable.
Descubra cómo el gigante automotriz alemán Audi protegió sus aplicaciones Red Hat OpenShift en Audi Future-Proofs Tech Vision y App Innovation con NGINX .
Rendimiento y resiliencia de las aplicação
El tiempo de actividad y la velocidad de la aplicación suelen ser indicadores clave de rendimiento (KPI) para los desarrolladores y los equipos de operaciones de plataforma. El controlador de ingreso NGINX basado en NGINX Plus desbloquea cinco casos de uso que lo ayudan a cumplir las promesas de Kubernetes.

- Obtenga monitoreo en vivo : el panel de NGINX Plus muestra cientos de métricas clave de carga y rendimiento para que pueda solucionar rápidamente la causa de las aplicaciones lentas (¡o inactivas!).
- Detecte y resuelva fallas más rápido : implemente un disyuntor con controles de estado activos que monitoree de manera proactiva el estado de sus servidores ascendentes TCP y UDP.
- Reconfiguración sin reinicios : una reconfiguración más rápida y sin interrupciones garantiza que pueda entregar aplicações con un rendimiento y un uso de recursos constantes y una latencia menor que las alternativas de código abierto.
- Pruebe exhaustivamente nuevas funciones e implementaciones : haga que las pruebas A/B y las implementaciones azul-verde sean más fáciles de ejecutar aprovechando el almacén de valores clave para cambiar los porcentajes sin necesidad de recargas.
- Resuelva las necesidades de soporte rápidamente : el soporte comercial confidencial es esencial para las organizaciones que no pueden esperar a que la comunidad responda sus preguntas o no pueden correr el riesgo de exponer datos confidenciales. El soporte de NGINX está disponible en múltiples niveles para adaptarse a sus necesidades y cubre asistencia con la instalación, implementación, depuración y corrección de errores. Incluso puedes obtener ayuda cuando algo simplemente no parece estar “bien”.
Descubra cómo la empresa de mensajería de texto comercial Zipwhip logró un tiempo de actividad del 99,99 % para sus aplicaciones SaaS en Fortalecer la seguridad y la visibilidad del tráfico en Amazon EKS con NGINX .
Próximo paso: Pruebe NGINX Ingress Controller
Si ha decidido que un controlador Ingress de código abierto es la opción correcta para sus aplicaciones, puede comenzar rápidamente en nuestro repositorio de GitHub .
Para implementaciones de producción a gran escala, esperamos que pruebe nuestro controlador Ingress comercial basado en NGINX Plus. Está disponible para una prueba gratuita de 30 días que incluye NGINX App Protect.