Pular para o conteúdo
Traefik Proxy 3.7: substituição pronta para Ingress NGINX com suporte nativo a 85+ anotações

Traefik Proxy 3.7: substituição pronta para Ingress NGINX com suporte nativo a 85+ anotações

Traefik Proxy 3.7 (codinome Langres) traz compatibilidade nativa com Ingress NGINX, dashboard de certificados TLS, middlewares em serviços e suporte completo ao Gateway API v1.5.

A equipe de desenvolvimento do Traefik Proxy lançou oficialmente a versão 3.7, codinome Langres — a atualização mais significativa do ano para o gateway de código aberto amplamente adotado em ambientes Kubernetes e cloud-native. O lançamento marca um marco estratégico: a transição definitiva do Traefik para uma alternativa pronta para produção e totalmente compatível com Ingress NGINX, sem necessidade de reescrita de manifests ou conversão manual de anotações.

Substituição imediata para quem usa Ingress NGINX

A principal novidade da versão 3.7 é a maturação completa do provedor Ingress NGINX, agora promovido de modo experimental para componente de primeira classe. Mais de 85 anotações do Ingress NGINX são suportadas nativamente — cobrindo mais de 90% dos casos de uso reais observados em centenas de clusters de produção. Isso inclui cenários críticos como autenticação, balanceamento de carga, limitação de taxa, redirecionamentos, páginas de erro personalizadas, canary deployments e políticas de controle de acesso.

O suporte foi priorizado com base em dados anônimos coletados pela ferramenta de migração ingressnginxmigration.org, parte do Ultimate Migration Kit lançado anteriormente. Não houve adivinhação: cada anotação implementada reflete padrões reais de implantação.

Segurança redefinida: snippets controlados, não copiados

Uma das maiores preocupações técnicas no ecossistema Kubernetes foi o uso de configuration-snippet, server-snippet e auth-snippet no Ingress NGINX — recursos que permitiam injeção direta de diretivas NGINX no arquivo de configuração gerado, criando riscos graves de segurança (citados explicitamente na decisão de descontinuação do projeto). Em vez de replicar esse modelo ou ignorá-lo, o Traefik adotou uma abordagem estruturada:

  • O conteúdo dos snippets é analisado sintaticamente, não colado cegamente;
  • Apenas diretivas seguras e comuns (como manipulação de cabeçalhos, reescritas e interpolação de variáveis) são permitidas via allowlist curada;
  • Não há geração de arquivo nginx.conf: tudo é traduzido internamente para o modelo de objetos do Traefik.

O resultado? 90% dos usos reais de snippets funcionam imediatamente, mas com uma camada de segurança fundamentalmente mais robusta.

A ativação é mínima — basta habilitar o provedor em poucas linhas de configuração estática:

providers:
  kubernetesIngressNginx:
    enabled: true

E o restante segue naturalmente: os recursos Ingress existentes são lidos e traduzidos automaticamente. O guia completo de migração está disponível no NGINX Migration Guide, complementado por uma série de três artigos detalhados — o primeiro, Ingress NGINX Migration: Measure Twice, Cut Once, aborda a auditoria inicial com a ferramenta de migração.

Dashboard com visibilidade real de certificados TLS

Uma contribuição externa de destaque — feita por @holomekc — trouxe ao painel administrativo do Traefik uma nova seção: Certificates. Agora é possível visualizar, em tempo real, todos os certificados TLS em uso, incluindo domínios cobertos, datas de expiração e onde estão vinculados (em roteadores HTTP ou TCP).

Essa funcionalidade resolve problemas operacionais recorrentes: renovações esquecidas, certificados expirados em produção, ou wildcards com domínios ausentes — tudo passa a ser identificável com um único clique.

Middlewares agora ligados a serviços — não só a rotas

Antes da versão 3.7, middlewares eram associados exclusivamente a routers ou entryPoints. Isso gerava duplicação desnecessária quando um mesmo serviço era exposto por múltiplos roteadores — especialmente em casos como autenticação (forwardAuth) ou limitação de taxa (rateLimit), que pertencem semanticamente ao serviço, não à rota.

Agora, é possível declarar middlewares diretamente no nível do serviço:

http:
  services:
    api:
      loadBalancer:
        servers:
          - url: "http://api-backend:8080"
      middlewares:
        - rate-limit
        - auth

Essa mudança simplifica a manutenção, reduz erros de configuração e alinha o modelo conceitual com boas práticas de arquitetura. Além disso, ela permite a aplicação de filters do Gateway API em backends HTTP — preenchendo uma lacuna antiga no suporte ao padrão.

Suporte completo ao Gateway API v1.5.1

O Traefik 3.7 oferece suporte integral à versão v1.5.1 do Gateway API, o padrão de rede Kubernetes em rápida ascensão. O projeto mantém um ritmo excepcional: novas versões menores da especificação são integradas em dias — não meses.

Destacam-se duas melhorias-chave:

  • Múltiplos certificateRefs em listeners: um Gateway pode agora referenciar vários certificados TLS, com seleção automática por SNI — eliminando workarounds como divisão lógica de gateways ou terminação TLS extra.
  • Suporte a Secrets em BackendTLSPolicy.caCertificateRefs: permite TLS fim-a-fim com autoridades certificadoras privadas usando bundles armazenados em Secrets, removendo o último obstáculo para implantações enterprise-grade.

Retries e failover guiados por códigos HTTP

Até então, os mecanismos de retry e failover do Traefik reagiam apenas a falhas de conexão ou sinais explícitos de saúde. Na prática, falhas reais em produção frequentemente se manifestam como respostas HTTP problemáticas: 502 Bad Gateway, 503 Service Unavailable ou 504 Gateway Timeout.

Agora, o middleware Retry aceita listas configuráveis de códigos de status:

http:
  middlewares:
    smart-retry:
      retry:
        attempts: 3
        initialInterval: 100ms
        retryOn:
          statusCodes:
            - 502
            - 503
            - 504
        timeout: 2s

E o serviço Failover também responde a códigos HTTP — combinado com o CRD TraefikService, possibilita setups blue-green ou active-passive nativos no Kubernetes:

apiVersion: traefik.io/v1alpha1
kind: TraefikService
metadata:
  name: api-failover
spec:
  failover:
    service: api-primary
    fallback: api-backup
  errors:
    status:
      - "500-504"

Mais melhorias de qualidade de vida

Além das principais novidades, o Traefik 3.7 inclui dezenas de aprimoramentos operacionais, como:

  • Suporte a wildcard em Host e HostSNI;
  • Configuração de precedência entre provedores;
  • Seleção de entry points por Ingress;
  • Novo middleware encodedCharacters para tratamento de caracteres especiais;
  • Melhorias em logs OTLP e atributos de trace context compatíveis com OpenTelemetry;
  • Opção global para desabilitar X-Forwarded-For;
  • Suporte a Knative v1.20.0;
  • Várias correções de segurança — detalhes completos na página de Security Advisories.

Uma versão construída pela comunidade

Mais de 80 colaboradores contribuíram para o Traefik 3.7 — desde primeiras contribuições de documentação até implementações de subsistemas críticos. Com mais de 63 mil estrelas no GitHub e bilhões de downloads, o projeto continua sendo impulsionado por quem o usa diariamente em produção.

A equipe convida novos colaboradores a se envolverem, especialmente no esforço contínuo de expansão do suporte ao Ingress NGINX: o issue traefik/traefik#12631 lista as anotações ainda pendentes e serve como ótimo ponto de entrada para iniciantes.

Recursos essenciais

Via traefik.io. Você pode conferir o post original em inglês:

Traefik Proxy 3.7 Is Available

Por · Última atualização: