O documento descreve como usar HAProxy e Consul para fornecer balanceamento de carga transparente para containers Docker. Consul é usado para descoberta de serviços e armazenamento de dados, enquanto HAProxy é configurado dinamicamente usando Consul Template para direcionar tráfego para containers registrados no Consul. O documento inclui exemplos de comandos Docker para executar containers do Consul, Registrator e HAProxy/Consul Template para implementar esta solução.
3. Docker
O que vemos no site...
"An open platform for
distributed applications..."
"... ability to deploy scalable
services..."
Muito associado a
microserviços
9. Consul
Descoberta de Serviços simples
Armazenamento Chave/Valor
Acesso via UI ou REST Api
Multi Datacenter
Roda facilmente em um Container ;)
Comando:
$ docker run -dit -v /vagrant/provision/consul:/etc/consul -p 8500:8500
gliderlabs/consul-server -config-dir=/etc/consul
10. Registrator (Dedo duro)
Adiciona e remove automaticamente containers;
Suporta diferentes produtos: Consul, etcd and SkyDNS 2.
Comando:
$ docker run -dit -v /var/run/docker.sock:/tmp/docker.sock
gliderlabs/registrator -resync 120 -retry-attempts -1 -retry-interval 2000 -ip
172.17.0.1 --cleanup consul://172.17.0.1:8500
11. HAProxy com Consul Template
HAProxy: Balanceador de Carga muito utilizado (segundo pesquisas ;)
Consul Template: Responsável por reescrever automaticamente o arquivo de
configuração do HAProxy quando alguma informação do Consul mudar.
Arquivo: haproxy.json
13. HAProxy com Consul Template
Imagem: sirile/haproxy
Já possui ambos o/
Comando:
$ docker run -dit -v /vagrant/provision/haproxy:/tmp:rw --net=host
sirile/haproxy -consul=localhost:8500