Como configurar o Traefik para HA? Precisa de um proxy reverso na frente do Traefik?

1

Estou tentando configurar o Traefik em um site de produção e estou com problemas de alta disponibilidade. Acho que ainda precisamos de um proxy reverso na frente do cluster do Traefik. Aqui estão as possíveis configurações que consideramos e por que o proxy reverso parece ser necessário:

  1. Configurar o DNS Registros para apontar para cada um dos nós do Traefik para balanceamento de carga e failover.

  2. Aponte um registro DNS para um dos nós executando o Traefik.

    • Esse nó se torna um SPOF. Meus nós estão sendo executados no CoreOS, que é reiniciado após cada atualização, portanto, teríamos a garantia de ter alguns minutos de inatividade semanalmente.

    • Poderíamos mover o registro DNS para um nó alternativo sempre que o tempo de inatividade for esperado. Isso seria uma dor para gerenciar manualmente. Eu posso imaginar uma solução emparelhada com o locksmithd que lida com isso automaticamente, mas eu realmente não quero construí-lo e ele não iria lidar com o tempo de inatividade inesperado.

    • Parte do raciocínio para usar o Docker Swarm (ou Kubernetes) é fazer com que os nós sejam intercambiáveis.

  3. Coloque um balanceador de carga / proxy reverso na frente do cluster do Traefik. O proxy reverso pode fornecer failover entre todos os nós do Traefik, e o DNS apontaria para o proxy reverso.

    • Sim, isso é um SPOF, mas na minha experiência, é muito fácil obter um bom tempo de atividade com essa configuração. Se houver necessidade de manutenção ocasional, o registro DNS pode ser apontado para um novo proxy.

Estou faltando alguma coisa ou pensando nisso?

    
por Mark Grimes 03.07.2018 / 19:32

1 resposta

0

existem diferentes tipos de soluções.

1) Crie seu próprio Loadbalancer de HA na frente de seu cluster do Swarm / Kubernetes para distribuir o tráfego e executar o failover.

Existem muitos aparelhos diferentes por aí:

  1. Netscaler
  2. Kemp
  3. F5

Embora esta abordagem seja HA, geralmente não é barato.

Uma alternativa mais barata para isso pode ser uma configuração Nginx / Haproxy + Keepalived .

No entanto, você precisa, é claro, de um IP flutuante e ter que cuidar dos caches arp.

2) Use um "Cloud Loadbalancer". A Digital Ocean, a AWS, a GKE e a Openstack fornecem todos esses recursos. É mais fácil de configurar (na maioria das vezes), mas se é mais barato você tem que calcular.

No DigitalOcean, o LB é de apenas 20 $ e há um Beta com um Kubernetes Cluster gerenciado. Você pode querer dar uma olhada nisso. Todos os componentes se encaixam bem juntos link

3) Se seus aplicativos não são 100% críticos, posso sugerir uma solução especial que usei até agora:

Cloudflare + baixo TTL + link

Funciona tão simples: link Como: Ele gira o WordPress e todos os seus requisitos, incluindo o DNS Container. O contêiner de DNS está atualizando o registro de DNS do domínio no Cloudflare (depende do host que o contêiner inicia, o IP é diferente). Bom, se um host for reinicializado ou o check-in de integridade do contêiner falhar, o contêiner será reprogramado. Ao ser remarcado e o Host inicialmente tirado estiver offline, o contêiner iniciará em outro host e, em seguida, enviará o novo IP para o Cloudflare. Tudo isso acontece automaticamente sem fazer nada. :)

Os TTLs do Cloudflare são realmente baixos, então pode haver apenas alguns segundos de inatividade.

    
por 14.09.2018 / 17:43