Configuração do DNS do cluster CoreOS

2

Não tenho certeza de como configurar o DNS para um cluster do coreos.

Atualmente, tenho todas as instâncias de minha API por trás de um balanceador de carga haproxy e um registro DNS A que aponta para o ip (elástico) do balanceador de carga. Assim, posso enviar tráfego para api.myapp.com e ele é roteado para uma instância da API. Isso funciona bem, mas obviamente o balanceador de carga é um ponto único de falha.

Se eu passar a configurar um cluster usando coreos e o cluster estiver executando vários serviços - não apenas o serviço de API - como aponto api.myapp.com para o cluster da mesma forma que faço atualmente, mas garanto que quaisquer solicitações enviadas usando esse endereço são roteadas de alguma forma apenas para o serviço da API dentro do cluster? Isso não é claro para mim lendo muitos tutoriais sobre coreos.

    
por cjroebuck 30.12.2014 / 12:16

1 resposta

3

Você precisará executar uma camada de roteamento (o HAproxy deve funcionar bem) que esteja direcionando o tráfego com base no cabeçalho do host HTTP. Execute este contêiner de roteamento em algumas máquinas vinculadas a 80/443, conforme desejado. Adicione registros para cada um dos serviços que apontam para essas poucas máquinas. Seu LB agora está altamente disponível.

Em seguida, configure suas regras de roteamento do HAproxy para consumir a localização de seus serviços de recebimento de dados e rotear o tráfego adequadamente. Por exemplo, uma solicitação para api.example.com é roteada para 10.10.10.1, 10.10.10.2 ou 10.10.10.3. O roteador (10.10.10.1:443) vê que tem dois contêineres de backend responsáveis por api.example.com em execução em 10.10.10.99:9999 e 10.10.10.98:9898. O tráfego é roteado para um dos contêineres e a solicitação é atendida.

Um exemplo completo disso com o proxy Vulcan e o etcd está aqui: link

    
por 05.01.2015 / 19:21