Clusters Kubernetes exigem um gateway de entrada para rotear tráfego externo aos serviços de backend. A escolha incorreta do gateway pode causar gargalos de desempenho, sobrecarga operacional ou falhas de segurança. Em clusters gerenciados do Container Service for Kubernetes (ACK), clusters ACK Serverless e clusters Container Compute Service (ACS), é possível usar gateways NGINX Ingress ou gateways Microservices Engine (MSE) Ingress. Esta comparação aborda arquitetura, desempenho, roteamento, segurança, observabilidade e outras dimensões para ajudar na seleção do gateway mais adequado.
Guia rápido de decisão
Escolha o NGINX Ingress se:
O volume de tráfego for baixo e os requisitos de segurança, escalabilidade e estabilidade forem reduzidos.
Você precisar de um gateway altamente personalizável e autogerenciado.
Escolha o MSE Ingress se:
O volume de tráfego for alto e houver necessidade de garantias robustas de segurança, escalabilidade e estabilidade.
Você preferir operações totalmente gerenciadas, sem sobrecarga com a manutenção do gateway.
For necessário utilizar múltiplos métodos de descoberta de serviços (Kubernetes, Nacos, Eureka, DNS, endereços IP fixos).
For necessária proteção integrada com Web Application Firewall (WAF) e autenticação avançada (JWT, OIDC, IDaaS, autenticação personalizada).
For essencial ter observabilidade ponta a ponta com logs de acesso, rastreamento distribuído, métricas e alertas.
Arquitetura
|
Aspecto |
NGINX Ingress |
MSE Ingress |
|
Motor |
NGINX com plug-in Lua |
Istiod + Envoy |
|
Multilocação |
Componentes autogerenciados |
Instâncias dedicadas por usuário |
|
Gerenciamento de recursos |
Configuração manual da contagem de réplicas e dos limites de recursos |
Totalmente gerenciado |
|
Encaminhamento de tráfego |
-- |
Conexão direta a endereços IP de pods para encaminhamento de requisições |
Desempenho
|
Métrica |
NGINX Ingress |
MSE Ingress |
|
Otimização |
Requer ajuste manual |
Otimizado no nível do sistema operacional com melhorias internas |
|
Aceleração HTTPS |
Não disponível |
Melhoria de ~80% no desempenho HTTPS com aceleração via hardware |
|
Throughput comparado ao NGINX open source |
Linha de base |
~40% superior devido a otimizações no sistema operacional e melhorias internas |
|
TPS com 30%--40% de utilização de CPU |
Linha de base |
~90% superior ao NGINX Ingress open source |
|
Impacto de plug-ins |
Uso intenso de scripts Lua degrada significativamente o desempenho |
-- |
Roteamento e balanceamento de carga
|
Capacidade |
NGINX Ingress |
MSE Ingress |
|
Roteamento baseado em conteúdo |
Sim |
Sim |
|
Reescrita de cabeçalhos HTTP |
Sim |
Sim |
|
Redirecionamentos e reescrita de URL |
Sim |
Sim |
|
Limitação de taxa |
Sim |
Sim |
|
Compartilhamento de recursos de origem cruzada (CORS) |
-- |
Sim |
|
Timeouts e novas tentativas |
-- |
Sim |
|
Algoritmos de balanceamento de carga |
-- |
Round-robin, aleatório, menor número de requisições, hash consistente |
|
Aquecimento de tráfego (prefetching) |
Não |
Sim. O tráfego para novos pods de backend aumenta gradualmente durante uma janela de tempo configurável. |
Atualizações de configuração
|
Comportamento |
NGINX Ingress |
MSE Ingress |
|
Alterações de configuração |
Atualizações contínuas via plug-in Lua (exceto certificados) |
Suporta atualizações contínuas |
|
Atualizações de certificados |
Exige recarregamento, o que interrompe conexões persistentes |
Suporta atualizações contínuas |
|
Atualizações de plug-ins |
Exige recarregamento |
Atualizações contínuas para plug-ins WebAssembly |
|
Mecanismo de atualização |
Baseado em recarregamento |
List-Watch para propagação de configuração quase em tempo real |
Descoberta de serviços e governança
|
Capacidade |
NGINX Ingress |
MSE Ingress |
|
Descoberta de serviços |
Apenas Kubernetes |
Kubernetes, Nacos, Eureka, DNS, endereços IP fixos |
|
Lançamentos canário |
Sim |
Sim |
|
Roteamento baseado em tags |
Não |
Sim |
|
Distribuição de tráfego por porcentagem |
Não |
Sim (lançamento canário, teste A/B, implantação blue-green) |
|
Limitação de taxa |
Sim |
Sim |
|
Circuit breaking e degradação |
Não |
Sim, integrado ao Application High Availability Service (AHAS) |
|
Simulação de serviços (mocking) |
Não |
Sim |
Segurança
| Capacidade | NGINX Ingress | MSE Ingress |
|---|---|---|
| HTTPS | Sim | Sim, integrado ao Certificate Management Service |
| Proteção WAF | Não | Sim, integrado ao Alibaba Cloud WAF |
| Controle de acesso baseado em IP (listas de bloqueios e listas de permissões) | Sim | Sim |
Autenticação
| Método | NGINX Ingress | MSE Ingress |
|---|---|---|
| BasicAuth | Sim | Sim |
| OAuth | Sim | Sim |
| JWT | Não | Sim |
| OIDC | Não | Sim |
| IDaaS | Não | Sim |
| Autenticação personalizada | Não | Sim |
Operações e manutenção
|
Aspecto |
NGINX Ingress |
MSE Ingress |
|
Modelo de gerenciamento |
Autogerenciado |
Totalmente gerenciado |
|
Dimensionamento |
Horizontal Pod Autoscaler (HPA) |
HPA (em desenvolvimento) |
|
Ajuste de especificações |
Requer configuração manual |
-- |
Protocolos e conversão
|
Capacidade |
NGINX Ingress |
MSE Ingress |
|
HTTP |
Sim |
Sim |
|
HTTPS |
Sim |
Sim |
|
Conversão de HTTP para Dubbo |
Não |
Sim |
|
Conversão de HTTPS para Dubbo |
Não |
Sim |
Integração de Ingress e cloud-native
|
Capacidade |
NGINX Ingress |
MSE Ingress |
|
Recursos Kubernetes Ingress |
Sim |
Sim |
|
Conversão de anotações do NGINX Ingress |
N/A |
Suporta conversão automática. Para mais detalhes, consulte Anotações suportadas pelos gateways MSE Ingress. |
|
Tipos de cluster suportados |
Clusters gerenciados ACK, clusters ACK Serverless, clusters ACS |
Clusters gerenciados ACK, clusters ACK Serverless, clusters ACS |
Extensibilidade
|
Abordagem |
NGINX Ingress |
MSE Ingress |
|
Linguagem de plug-in |
Lua |
WebAssembly (suporta múltiplas linguagens de programação) |
|
Plug-in Lua |
Sim |
Em desenvolvimento |
Observabilidade
| Capacidade | NGINX Ingress | MSE Ingress |
|---|---|---|
| Logs de acesso | Sim | Sim, integrado ao Simple Log Service (SLS) e ao Application Real-Time Monitoring Service (ARMS) |
| Métricas e alertas | Prometheus | Integrado ao ARMS e ao Managed Service for Prometheus |
| Rastreamento distribuído | Não | Sim, integrado ao Managed Service for OpenTelemetry |
Ecossistema
|
Integração |
NGINX Ingress |
MSE Ingress |
|
Malha de serviços |
Nginx Service Mesh |
Malha de serviços Istio (padrão de fato) |
Casos de uso típicos
Os gateways NGINX Ingress baseiam-se no NGINX open source e funcionam como o gateway Kubernetes Ingress padrão. São mais indicados para:
Cargas de trabalho que exigem configurações de gateway altamente personalizadas.
Ambientes com menor volume de tráfego onde operações autogerenciadas são aceitáveis.
Equipes com experiência prévia em NGINX que desejam controle direto sobre o gateway.
Aplicações cloud-native que utilizam lançamentos canário ou implantações blue-green.
Os gateways MSE Ingress baseiam-se nos gateways cloud-native do MSE e combinam capacidades de gateway de tráfego, gateway de microsserviços e gateway de segurança em uma única plataforma gerenciada. São recomendados quando:
Ambientes de produção com alto tráfego exigem segurança, escalabilidade e estabilidade robustas.
Arquiteturas utilizam múltiplos métodos de descoberta de serviços ou necessitam de conversão de protocolo (HTTP/HTTPS para Dubbo).
Cenários de tráfego norte-sul requerem descoberta de serviços de backend via Nacos, Kubernetes, DNS ou endereços IP fixos.
Cenários de tráfego leste-oeste demandam interoperabilidade entre nuvem híbrida, múltiplos data centers ou múltiplos domínios de serviço, com integração perfeita à malha de serviços.