Estou tentando configurar o Traefik em um site de produção e estou enfrentando alguns problemas de alta disponibilidade. Acho que ainda precisamos de um proxy reverso na frente do cluster Traefik. Aqui estão as configurações potenciais que considerei e por que o proxy reverso parece ser necessário:
Configure os registros DNS A para apontar para cada um dos nós do Traefik para balanceamento de carga e failover.
Esta prática é desencorajada de acordo com vários sites, incluindo esta pergunta SO e esta pergunta SF .
Mesmo o uso de um serviço como DNSMadeEasy parece ser desencorajado devido a problemas de cache de DNS e TTL.
Aponte um registro DNS para um dos nós que executam o Traefik.
Esse nó se torna um SPOF. Meus nós estão sendo executados no CoreOS, que reinicia após cada atualização, então teríamos alguns minutos de inatividade por semana.
Poderíamos mover o registro DNS para um nó alternativo sempre que o tempo de inatividade for esperado. Isso seria uma dor de gerenciar manualmente. Eu posso imaginar uma solução emparelhada com o serralheiro que lide com isso automaticamente, mas eu realmente não quero construí-la e ela não lidaria com o tempo de inatividade inesperado.
Parte do raciocínio para usar o Docker Swarm (ou Kubernetes) é tornar os nós intercambiáveis.
Coloque um balanceador de carga/proxy reverso na frente do cluster Traefik. O proxy reverso pode fornecer failover entre todos os nós do Traefik e o DNS apontaria para o proxy reverso.
- Sim, este é um SPOF, mas na minha experiência, é muito fácil obter um bom tempo de atividade com essa configuração. Se for necessária manutenção ocasional, o registro DNS pode ser apontado para um novo proxy.
Estou faltando alguma coisa ou pensando demais nisso?