Um guia para escolher um controlador de Ingress, parte 4: opções do NGINX Ingress Controller

NGINX | 27 de setembro de 2021

Editor – Este post faz parte de uma série de 10 partes:

  1. Reduza a complexidade com Kubernetes pronto para produção
  2. Como melhorar a resiliência no Kubernetes com o gerenciamento avançado de tráfego
  3. Como melhorar a visibilidade no Kubernetes
  4. Seis maneiras de proteger o Kubernetes usando ferramentas de gerenciamento de tráfego
  5. Guia para escolher um controlador de Ingress, Parte 1: identifique seus requisitos
  6. Guia para escolher um controlador de Ingress, Parte 2: riscos e preparação para o futuro
  7. Guia para escolher um controlador de Ingress, Parte 3: código aberto vs. padrão vs. comercial
  8. Um guia para escolher um controlador de Ingress, parte 4: opções de controladores de Ingress da NGINX (este artigo)
  9. Como escolher uma malha de serviços
  10. Teste de desempenho de controladores de Ingress NGINX em um ambiente de nuvem Kubernetes dinâmico

Você também pode baixar a coleção completa de artigos como um eBook 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 usado em controladores de Ingress para Kubernetes. Mas você sabia que existe mais de um “NGINX Ingress Controller”?

Uma versão anterior deste blog, publicada em 2018 com o título Espera aí, qual NGINX Ingress Controller para Kubernetes estou usando?, surgiu a partir de uma conversa com um membro da comunidade sobre a existência de dois Ingress controllers populares que usam o NGINX.

Eu meio que já sabia da existência dos dois controladores de Ingress diferentes por causa dos locais das imagens de contêiner que vi, mas acho que nunca tinha visto alguém da NGINX dizer isso de forma tão direta até agora.

É fácil entender por que houve (e ainda há) confusão. Ambos os controladores Ingress são:

  • Chamados de “NGINX Ingress Controller”
  • Código aberto
  • Hospedados no GitHub com nomes de repositórios muito semelhantes
  • O resultado de projetos que começaram mais ou menos na mesma época

E, claro, a maior semelhança é que eles implementam a mesma função.

NGINX vs. controlador de Ingress da comunidade Kubernetes

Para maior clareza, diferenciamos as duas versões da seguinte forma:

  • Versão da comunidade – Disponível no repositório kubernetes/ingress-nginx no GitHub, o controlador Ingress da comunidade é baseado no NGINX Open Source, com documentação no Kubernetes.io. Ele é mantido pela comunidade do Kubernetes.
  • Versão do NGINX – Disponível no repositório nginxinc/kubernetes-ingress no GitHub, o NGINX Ingress Controller é desenvolvido e mantido pela F5 NGINX, com documentação em docs.nginx.com. Ele está disponível em duas edições:
    • Baseado no NGINX Open Source (opção gratuita e de código aberto)
    • Baseado no NGINX Plus (opção comercial)

Há também vários outros controladores Ingress baseados no NGINX, como o Kong, mas, felizmente, seus nomes são fáceis de distinguir. Se você não tiver certeza de qual controlador Ingress do NGINX está usando, verifique a imagem do contêiner do controlador Ingress em execução e compare o nome da imagem do Docker com os repositórios listados acima.

Objetivos e prioridades do NGINX Ingress Controller

Uma diferença fundamental entre o NGINX Ingress Controller e o controlador Ingress da comunidade (assim como outros controladores Ingress baseados no NGINX Open Source) está em seus modelos de desenvolvimento e implantação, que, por sua vez, se baseiam em objetivos e prioridades distintos.

  • Filosofia de desenvolvimento – Nossa principal prioridade para todos os projetos e produtos NGINX é oferecer uma ferramenta rápida e leve, com estabilidade e consistência a longo prazo. Fazemos todo o possível para evitar mudanças de comportamento entre as versões, especialmente aquelas que comprometem a compatibilidade com versões anteriores. Garantimos que você não terá nenhuma surpresa inesperada ao fazer uma atualização. Também acreditamos na liberdade de escolha, por isso todas as nossas soluções podem ser implantadas em qualquer plataforma, incluindo servidores físicos, 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 do NGINX Plus para balanceamento de carga, aplicando uma configuração baseada em práticas recomendadas exclusivamente com os recursos nativos do NGINX. Ele não depende de módulos de terceiros nem de código Lua que não tenham sido submetidos aos nossos testes de interoperabilidade. Não montamos nosso Ingress Controller 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 Ingress Controller (uma aplicação em Go). Somos a única autoridade responsável por todos os componentes do nosso Ingress Controller.
  • Gerenciamento avançado de tráfego – Uma das limitações do recurso padrão do Kubernetes Ingress é que você precisa usar recursos auxiliares, como anotações, ConfigMaps e modelos personalizados, para adicionar funcionalidades avançadas. Os recursos do NGINX Ingress oferecem um estilo de configuração nativo, com tipagem segura e indentação, que simplifica a implementação de recursos de balanceamento de carga do Ingress, incluindo TCP/UDP, circuit breaking, testes A/B, implantações blue-green, manipulação de cabeçalhos, autenticação TLS mútua (mTLS) e firewall de aplicações web (WAF).
  • Prontidão contínua para produção – Cada versão é desenvolvida e mantida de acordo com um padrão de produção que permite oferecer suporte. Você se beneficia igualmente desse foco de “nível empresarial”, seja usando a edição baseada no NGINX Open Source ou no NGINX Plus. Os usuários do NGINX Open Source podem tirar suas dúvidas no GitHub com nossa equipe de engenharia, enquanto os assinantes do NGINX Plus recebem suporte de excelência. De qualquer forma, é como ter um desenvolvedor do NGINX em sua equipe de DevOps!

NGINX Open Source vs. NGINX Plus – Por que fazer upgrade para nossa edição comercial?

E, já que estamos aqui, vamos analisar alguns dos principais benefícios que você obtém com o NGINX Ingress Controller baseado no NGINX Plus. Como discutimos em Como escolher um Ingress Controller do Kubernetes, Parte 3: código aberto vs. padrão vs. comercial, há diferenças significativas entre os Ingress Controllers de código aberto e os comerciais. Se você está planejando grandes implantações do Kubernetes e aplicações complexas em produção, verá que nosso Ingress Controller comercial economiza tempo e dinheiro em algumas áreas importantes.

Segurança e conformidade

Um dos principais motivos pelos quais muitas organizações não conseguem disponibilizar aplicações Kubernetes em produção é a dificuldade de mantê-las seguras e em conformidade. O NGINX Ingress Controller baseado no NGINX Plus viabiliza cinco casos de uso essenciais para manter suas aplicações e seus clientes seguros.

Saiba como a gigante automotiva alemã Audi protegeu seus aplicativos Red Hat OpenShift em Audi prepara sua visão tecnológica e a inovação de aplicativos para o futuro com o NGINX.

Desempenho e resiliência de aplicações

O tempo de atividade e a velocidade dos aplicativos costumam ser indicadores-chave de desempenho (KPIs) para desenvolvedores e equipes de operações de plataforma. O NGINX Ingress Controller baseado no NGINX Plus viabiliza cinco casos de uso que ajudam você a cumprir as promessas do Kubernetes.

  • Obtenha monitoramento em tempo real – O painel do NGINX Plus exibe centenas de métricas importantes de carga e desempenho para que você possa identificar rapidamente a causa de aplicativos lentos (ou fora do ar!).
  • Detecte e resolva falhas mais rapidamente – Implemente um circuit breaker com verificações de integridade ativas que monitorem proativamente a integridade dos seus servidores upstream TCP e UDP.
  • Reconfigure sem precisar reiniciar – Uma reconfiguração mais rápida e sem interrupções permite disponibilizar aplicações com desempenho e uso de recursos consistentes e menor latência do que as alternativas de código aberto.
  • Teste minuciosamente novos recursos e implantações – Facilite a execução de testes A/B e implantações blue-green usando o armazenamento de chave-valor para alterar as porcentagens sem a necessidade de recarregamentos.
  • Resolva rapidamente as necessidades de suporte – O suporte comercial e confidencial é essencial para organizações que não podem esperar que a comunidade responda às suas dúvidas nem correr o risco de expor dados confidenciais. O suporte da NGINX está disponível em vários níveis para atender às suas necessidades e inclui 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 estar “certo”.

Saiba como a empresa de mensagens de texto empresariais Zipwhip alcançou 99,99% de disponibilidade para seus aplicativos SaaS em Reforce a segurança e a visibilidade do tráfego no Amazon EKS com o NGINX.

Próxima etapa: experimente o NGINX Ingress Controller

Se você decidiu que um controlador Ingress de código aberto é a escolha certa para seus aplicativos, comece rapidamente acessando nosso repositório no GitHub.

Para implantações de produção de grande porte, esperamos que você experimente nosso controlador Ingress comercial baseado no NGINX Plus. Ele está disponível para uma avaliação gratuita de 30 dias que inclui o NGINX App Protect.


Compartilhar

Sobre o autor

Jenn Gile
Jenn GileDiretor de Marketing de Produto, NGINX

Mais publicações de Jenn Gile

Publicações relacionadas no blog

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade
NGINX | 10/10/2024

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade

Descubra como o F5 NGINX One aprimora o gerenciamento e a observabilidade de ambientes híbridos e multicloud ao oferecer um console web centralizado baseado em SaaS, com insights em tempo real, conformidade automatizada e gerenciamento simplificado de configurações.

Do OpenAPI ao NGINX como gateway de API usando uma API declarativa
NGINX | 17/06/2024

Do OpenAPI ao NGINX como gateway de API usando uma API declarativa

Descubra como transformar uma definição de esquema OpenAPI em uma configuração NGINX totalmente funcional, operando como um API Gateway com a segurança de um Web Application Firewall e um Portal do Desenvolvedor, usando uma abordagem declarativa de API.

Como gerenciar picos repentinos de tráfego e sobrecarga do servidor
NGINX | 14/07/2021

Como gerenciar picos repentinos de tráfego e sobrecarga do servidor

Picos de tráfego e sobrecarga de servidores são preocupações sérias para varejistas online em qualquer época, mas especialmente durante a “Cyber Season” de compras de fim de ano. Detalhamos como você pode aproveitar as soluções de entrega de aplicações de nível de produção da NGINX para se preparar para aumentos repentinos de tráfego.

Distribuição segura de chaves privadas SSL com o NGINX
NGINX | 02/04/2019

Distribuição segura de chaves privadas SSL com o NGINX

Descrevemos três maneiras progressivamente mais seguras de proteger chaves privadas SSL ao configurar o NGINX para processar tráfego HTTPS: permitir acesso de leitura apenas ao usuário root, criptografar as chaves com senhas armazenadas separadamente e distribuir as senhas a partir de um repositório central.

Agrupando solicitações de API em lotes com NGINX Plus e o módulo JavaScript do NGINX
NGINX | 24/05/2018

Agrupando solicitações de API em lotes com NGINX Plus e o módulo JavaScript do NGINX

O módulo JavaScript do NGINX lançado com o NGINX Plus R15 oferece suporte a subsolicitações, possibilitando uma classe totalmente nova de casos de uso para o NGINX Plus. Este exemplo completo também usa a API do NGINX Plus e os módulos de chave-valor para converter solicitações de API dos clientes em solicitações separadas para as APIs dos microsserviços que compõem um aplicativo.

Como superar o esgotamento de portas efêmeras no NGINX e no NGINX Plus
NGINX | 19/04/2016

Como superar o esgotamento de portas efêmeras no NGINX e no NGINX Plus

Confira dicas para evitar o esgotamento de portas efêmeras com ajustes no kernel do Linux, conexões keepalive e conexões vinculadas dinamicamente a endereços IP locais.