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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow