Load balancing with HAPROXY & CONFD
Имеем:
$ fleetctl list-units
UNIT MACHINE ACTIVE SUB
[email protected] 3408f7ab.../172.17.8.103 active running
[email protected] b2ca4512.../172.17.8.101 active running
[email protected] 3408f7ab.../172.17.8.103 active running
[email protected] b2ca4512.../172.17.8.101 active running
[email protected] 3408f7ab.../172.17.8.103 active running
[email protected] db577263.../172.17.8.102 active running
[email protected] b2ca4512.../172.17.8.101 active running
[email protected] 3408f7ab.../172.17.8.103 active running
[email protected] db577263.../172.17.8.102 active running
[email protected] b2ca4512.../172.17.8.101 active running
Я заменил оригинальные image, своими. Они отличаются только IP адресом. С оригинальным у меня не заработало.
$ vi haproxy.service
[Unit]
Description=haproxy Proxy
Requires=docker.service
After=docker.service
After=etcd2.service
Requires=etcd2.service
[Service]
EnvironmentFile=/etc/environment
User=core
Restart=always
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill %p-%i
ExecStartPre=-/usr/bin/docker rm %p-%i
ExecStartPre=-/usr/bin/etcdctl mkdir /services/todo
ExecStartPre=-/usr/bin/docker pull marley/coreos-haproxy
ExecStart=/usr/bin/docker run --name %p-%i \
-h %H \
-p \${COREOS_PUBLIC_IP}:80:80 \
marley/coreos-haproxy
ExecStop=-/usr/bin/docker kill %p-%i
ExecStop=-/usr/bin/docker rm %p-%i
[X-Fleet]
Global=true
$ fleetctl submit haproxy.service
$ fleetctl start haproxy.service
$ fleetctl list-units
UNIT MACHINE ACTIVE SUB
haproxy.service 3408f7ab.../172.17.8.103 active running
haproxy.service b2ca4512.../172.17.8.101 active running
haproxy.service db577263.../172.17.8.102 active running
[email protected] 3408f7ab.../172.17.8.103 active running
[email protected] b2ca4512.../172.17.8.101 active running
[email protected] 3408f7ab.../172.17.8.103 active running
[email protected] b2ca4512.../172.17.8.101 active running
[email protected] 3408f7ab.../172.17.8.103 active running
[email protected] db577263.../172.17.8.102 active running
[email protected] b2ca4512.../172.17.8.101 active running
[email protected] 3408f7ab.../172.17.8.103 active running
[email protected] db577263.../172.17.8.102 active running
[email protected] b2ca4512.../172.17.8.101 active running
$ journalctl -f --lines=50 -u haproxy
http://172.17.8.101/
http://172.17.8.102/
http://172.17.8.103/
Все работает!
Если нужно остановить и выгрузить все, что касается сервиса:
$ fleetctl stop haproxy.service
$ fleetctl unload haproxy.service
$ fleetctl destroy haproxy.service