Os resolvedores do Haproxy não atualizam o dns na verificação de falha da integridade

3

Usando o haproxy 1.6.1 (software magnífico!) com o arquivo conf (parcial) abaixo. O problema ocorre quando um servidor de back-end é encerrado pelo AWS (instância spot) e substituído. Depois que a nova instância estiver em funcionamento, a página de estatísticas ainda mostrará uma falha na verificação de integridade. O tcpdump mostra consultas de saída bem-sucedidas para 172.16.0.23 para zos-e-e01.mycompany.com. Parece que haproxy está consultando o endereço IP, obtendo a resposta correta, mas não atualizando a configuração em execução. O recarregamento do haproxy resolve o problema.

resolvers aws
    nameserver aws1 172.16.0.23:53
    resolve_retries 3
    timeout retry   1s
    hold valid      30s

backend zos
    cookie ZOS insert indirect nocache
    option  httpchk GET /robots.txt HTTP/1.1\r\nHost:\ zos.mycompany.com
    balance leastconn
    no log
    option tcp-smart-connect

    server  zos-e-c01 zos-e-c01.mycompany.com:80 cookie balancer.zos-e-c01 check port 80 inter 2000 rise 2 fall 3 maxconn 60 check resolvers aws
    server  zos-e-d01 zos-e-d01.mycompany.com:80 cookie balancer.zos-e-d01 check port 80 inter 2000 rise 2 fall 3 maxconn 60 check resolvers aws
    server  zos-e-e01 zos-e-e01.mycompany.com:80 cookie balancer.zos-e-e01 check port 80 inter 2000 rise 2 fall 3 maxconn 60 check resolvers aws
    
por mdkerman 05.05.2016 / 20:57

1 resposta

2

Existem inúmeras correções de DNS assíncronas no HAProxy após o 1.6.1, mas antes do lançamento da versão 1.6.5, que é a versão atual até o momento desta publicação.

Eu não consegui identificar uma única correção no changelog que obviamente explica exatamente a condição que você encontrou, mas se bem me lembro, a resolução de nomes na inicialização é feita de forma síncrona, enquanto no tempo de execução é assíncrona, seguindo dois caminhos de código diferentes - portanto, um problema com o código assíncrono muito mais recente não afetaria a resolução na inicialização.

O HAProxy 1.6 ainda estava no processo de se tornar genuinamente estável até o 1.6.5. Um monte de novos recursos entrou na série 1.6 e, a partir da leitura da lista de discussão, houve vários problemas encontrados no campo que nunca surgiram durante o desenvolvimento e o teste. Agora que o 1.6 é lançado, nenhum novo recurso está sendo adicionado - os únicos lançamentos devem ser correções de bugs e correções de segurança - então é aconselhável atualizar para a versão mais recente dentro da série.

    
por 16.05.2016 / 22:40

Tags