Editor – Este post faz parte de uma série de 10 partes:
- Reduza a complexidade com o Kubernetes de nível de produção
- Como melhorar a resiliência no Kubernetes com gerenciamento avançado de tráfego
- Como melhorar a visibilidade no Kubernetes
- Seis maneiras de proteger o Kubernetes usando ferramentas de gerenciamento de tráfego
- Um guia para escolher um controlador Ingress, parte 1: Identifique seus requisitos
- Um guia para escolher um controlador Ingress, parte 2: Riscos e preparação para o futuro
- Um guia para escolher um controlador Ingress, parte 3: Código aberto vs. Padrão vs. Comercial
- Um guia para escolher um controlador Ingress, parte 4: Opções do controlador de entrada NGINX (esta postagem)
- Como escolher uma malha de serviço
- Teste de desempenho de controladores de entrada NGINX em um ambiente de nuvem Kubernetes dinâmico
Você também pode baixar o conjunto completo de blogs como um e-book gratuito – Levando o Kubernetes do teste à produção .
De acordo com a Pesquisa de 2020 da Cloud Native Computing Foundation (CNCF), o NGINX é o plano de dados mais comumente usado em controladores Ingress para Kubernetes. Mas você sabia que existe mais de um “Controlador Ingress NGINX”?
Uma versão anterior deste blog, publicada em 2018 sob o título Wait, Which NGINX Ingress Controller for Kubernetes Am I Using?, foi motivada por uma conversa com um membro da comunidade sobre a existência de dois controladores Ingress populares que usam NGINX.

É fácil perceber por que houve (e ainda há) confusão. Ambos os controladores Ingress são:
- Chamado de “Controlador de entrada NGINX”
- Código aberto
- Hospedado no GitHub com nomes de repositórios muito semelhantes
- O resultado de projetos que começaram na mesma época
E, claro, o maior ponto em comum é que eles implementam a mesma função.
Comparação NGINX Controlador de entrada da comunidade Kubernetes
Para maior clareza, diferenciamos as duas versões assim:
- Versão da comunidade – Encontrado no repositório kubernetes/ingress-nginx no GitHub, o controlador Ingress da comunidade é baseado no NGINX Open Source com documentos no Kubernetes.io . Ele é mantido pela comunidade Kubernetes.
- Versão NGINX – Encontrado no repositório nginxinc/kubernetes-ingress no GitHub, o NGINX Ingress Controller é desenvolvido e mantido pela F5 NGINX com documentos em docs.nginx.com . Está disponível em duas edições:
Há também vários outros controladores Ingress baseados no NGINX, como o Kong, mas felizmente seus nomes são facilmente distinguidos. Se você não tiver certeza de qual NGINX Ingress Controller está usando, verifique a imagem do contêiner do Ingress Controller em execução e compare o nome da imagem do Docker com os repositórios listados acima.
Objetivos e prioridades do controlador de entrada NGINX
A principal diferença entre o NGINX Ingress Controller e o Community Ingress Controller (junto com outros controladores Ingress baseados no NGINX Open Source) são seus modelos de desenvolvimento e implantação, que por sua vez são baseados em diferentes objetivos e prioridades.
- Filosofia de desenvolvimento – Nossa principal prioridade para todos os projetos e produtos NGINX é entregar uma ferramenta rápida e leve com estabilidade e consistência de longo prazo. Fazemos todos os esforços possíveis para evitar alterações de comportamento entre os lançamentos, especialmente aquelas que violam a compatibilidade com versões anteriores. Prometemos que você não verá nenhuma surpresa inesperada ao fazer o upgrade. Também acreditamos na escolha, por isso todas as nossas soluções podem ser implantadas em qualquer plataforma, incluindo bare metal, contêineres, VMs e nuvens públicas, privadas e híbridas.
- Base de código integrada – O NGINX Ingress Controller usa uma instância 100% pura do NGINX Open Source ou NGINX Plus para balanceamento de carga, aplicando a configuração de práticas recomendadas usando apenas recursos nativos do NGINX. Ele não depende de nenhum módulo de terceiros ou código Lua que não tenha se beneficiado de nossos testes de interoperabilidade. Não montamos nosso controlador Ingress a partir de vários repositórios de terceiros; nós mesmos desenvolvemos e mantemos o balanceador de carga (NGINX e NGINX Plus) e o software do controlador Ingress (um aplicativo Go). Somos a única autoridade para todos os componentes do nosso controlador Ingress.
- Gerenciamento avançado de tráfego – Uma das limitações do recurso padrão do Kubernetes Ingress é que você deve usar recursos auxiliares como anotação, ConfigMaps e modelos de clientes para personalizá-lo com recursos avançados. Os recursos do NGINX Ingress fornecem um estilo de configuração nativo, de tipo seguro e recuado que simplifica a implementação de recursos de balanceamento de carga do Ingress, incluindo TCP/UDP, quebra de circuito, testes A/B, implantações azul-verde, manipulação de cabeçalho, autenticação TLS mútua (mTLS) e firewall de aplicativo da Web (WAF).
- Prontidão de produção contínua – Cada versão é construída e mantida em um padrão de produção suportável. Você se beneficia desse foco de “nível empresarial” igualmente, quer esteja usando a edição baseada no NGINX Open Source ou no NGINX Plus . Os usuários do NGINX Open Source podem obter respostas para suas perguntas no GitHub por nossa equipe de engenharia, enquanto os assinantes do NGINX Plus recebem o melhor suporte da categoria . De qualquer forma, é como ter um desenvolvedor NGINX na sua equipe de DevOps!
NGINX de código aberto vs. NGINX Plus – Por que atualizar para nossa edição comercial?
E já que estamos aqui, vamos rever alguns dos principais benefícios que você obtém do NGINX Ingress Controller baseado no NGINX Plus . Conforme discutimos em Como escolher um controlador de entrada do Kubernetes, parte 3: Código aberto vs. Padrão vs. Comercial , há diferenças substanciais entre controladores Ingress comerciais e de código aberto. Se você estiver planejando grandes implantações do Kubernetes e aplicativos complexos em produção, verá que nosso controlador comercial Ingress economiza tempo e dinheiro em algumas áreas importantes.
Segurança e conformidade
Um dos principais motivos pelos quais muitas organizações não conseguem entregar aplicativos Kubernetes em produção é a dificuldade de mantê-los seguros e em conformidade. O NGINX Ingress Controller baseado no NGINX Plus desbloqueia cinco casos de uso que são essenciais para manter seus aplicativos e clientes seguros.

- Proteja a borda – Em uma implantação bem arquitetada do Kubernetes, o controlador Ingress é o único ponto de entrada para o tráfego do plano de dados que flui para serviços em execução no Kubernetes, tornando-o um local ideal para um firewall de aplicativo da web (WAF). O NGINX App Protect integra-se ao NGINX Ingress Controller<.htmla> para proteger seus aplicativos Kubernetes contra o OWASP Top 10 e muitas outras vulnerabilidades, garante a conformidade com o PCI DSS e supera o ModSecurity .
- Centralize a autenticação e a autorização – Você pode implementar uma camada de autenticação e logon único (SSO) no ponto de entrada com o OpenID Connect (OIDC) – construído sobre a estrutura OAuth 2.0 – e a autenticação JSON Web Token (JWT).
- Implemente criptografia de ponta a ponta – Quando você precisa proteger o tráfego entre serviços, provavelmente vai procurar uma malha de serviços. O NGINX Service Mesh, sempre gratuito, integra-se perfeitamente ao NGINX Ingress Controller, permitindo que você controle o tráfego mTLS de entrada e saída de forma eficiente, com latência mínima em comparação a outros meshes.
- Receba notificações de patches oportunas e proativas – Quando CVEs são relatados, os assinantes são informados proativamente e recebem patches rapidamente. Eles podem aplicar os patches imediatamente para reduzir o risco de exploração, em vez de ter que ficar procurando atualizações no GitHub ou esperar semanas (até meses) para que um patch seja lançado.
- Esteja em conformidade com o FIPS – Você pode habilitar o modo FIPS para garantir que os clientes que falam com o NGINX Plus estejam usando uma cifra forte com uma implementação confiável.
Saiba como a gigante automotiva alemã Audi protegeu seus aplicativos Red Hat OpenShift no Audi Future‑Proofs Tech Vision and App Innovation com NGINX .
Desempenho e resiliência do aplicativo
O tempo de atividade e a velocidade do aplicativo geralmente são indicadores-chave de desempenho (KPIs) para desenvolvedores e equipes de operações de plataforma. O NGINX Ingress Controller baseado no NGINX Plus desbloqueia cinco casos de uso que ajudam você a cumprir as promessas do Kubernetes.

- Obtenha monitoramento ao vivo – O painel do NGINX Plus exibe centenas de métricas importantes de carga e desempenho para que você possa solucionar rapidamente a causa de aplicativos lentos (ou inativos!).
- Detecte e resolva falhas mais rapidamente – Implemente um disjuntor com verificações de integridade ativas que monitoram proativamente a integridade dos seus servidores upstream TCP e UDP.
- Reconfigure sem reinicializações – A reconfiguração mais rápida e sem interrupções garante que você possa entregar aplicativos com desempenho e uso de recursos consistentes e menor latência do que as alternativas de código aberto.
- Teste completamente novos recursos e implantações – Facilite a execução de testes A/B e implantações blue-green aproveitando o armazenamento de chave-valor para alterar as porcentagens sem a necessidade de recargas.
- Resolva as necessidades de suporte rapidamente – O suporte comercial confidencial é essencial para organizações que não podem esperar que a comunidade responda às perguntas ou não podem correr o risco de expor dados confidenciais. O suporte NGINX está disponível em vários níveis para atender às suas necessidades e abrange assistência com instalação, implantação, depuração e correção de erros. Você pode até obter ajuda quando algo simplesmente não parece “certo”.
Saiba como a empresa de mensagens de texto empresariais Zipwhip atingiu 99,99% de tempo de atividade para seus aplicativos SaaS em Fortalecer a segurança e a visibilidade do tráfego no Amazon EKS com NGINX .
Próximo passo: Experimente o NGINX Ingress Controller
Se você decidiu que um controlador Ingress de código aberto é a escolha certa para seus aplicativos, você pode começar rapidamente em nosso repositório GitHub .
Para grandes implantações de produção, esperamos que você experimente nosso controlador comercial Ingress baseado no NGINX Plus. Está disponível para um teste gratuito de 30 dias que inclui o NGINX App Protect.