Docker
voer consul uit in docker 1.12 zwerm
Zoeken…
Voer consul uit in een docker 1.12 zwerm
Dit is afhankelijk van de officiële consul docker-afbeelding om consul in geclusterde modus in een docker-zwerm uit te voeren met nieuwe zwermmodus in Docker 1.12. Dit voorbeeld is gebaseerd op http://qnib.org/2016/08/11/consul-service/ . In het kort is het idee om twee docker-zwermservices te gebruiken die met elkaar praten. Dit lost het probleem op dat u de ips van individuele consulcontainers niet van tevoren kunt kennen en kunt u vertrouwen op dns van dockerzwermen.
Dit veronderstelt dat u al een zwerm cluster van docking 1.12 met ten minste drie knooppunten hebt.
Misschien wilt u een log-stuurprogramma op uw docker-daemons configureren, zodat u kunt zien wat er gebeurt. Ik gebruikte hiervoor het syslog-stuurprogramma: stel de optie --log-driver=syslog
in op dockerd.
Maak eerst een overlay-netwerk voor consul:
docker network create consul-net -d overlay
Bootstrap nu het cluster met slechts 1 knooppunt (standaard --replicas is 1):
docker service create --name consul-seed \
-p 8301:8300 \
--network consul-net \
-e 'CONSUL_BIND_INTERFACE=eth0' \
consul agent -server -bootstrap-expect=3 -retry-join=consul-seed:8301 -retry-join=consul-cluster:8300
U zou nu een cluster met 1 knooppunt moeten hebben. Open nu de tweede service:
docker service create --name consul-cluster \
-p 8300:8300 \
--network consul-net \
--replicas 3 \
-e 'CONSUL_BIND_INTERFACE=eth0' \
consul agent -server -retry-join=consul-seed:8301 -retry-join=consul-cluster:8300
U zou nu een consul-cluster met vier knooppunten moeten hebben. U kunt dit verifiëren door op elk van de docker-containers te draaien:
docker exec <containerid> consul members