Recherche…


Courir consul dans un docker 1.12 essaim

Cela repose sur l'image officielle du docker consul à exécuter consul en mode cluster dans un essaim de docker avec un nouveau mode essaim dans Docker 1.12. Cet exemple est basé sur http://qnib.org/2016/08/11/consul-service/ . En bref, l'idée est d'utiliser deux services d'essaims de dockers qui se parlent. Cela résout le problème que vous ne pouvez pas connaître les ips des conteneurs de consul individuels à l’avant et que vous pouvez vous fier aux dns de Docker Swarm.

Cela suppose que vous avez déjà un cluster docker 1.12 avec au moins trois nœuds.

Vous souhaiterez peut-être configurer un pilote de journal sur vos démons de docker pour pouvoir voir ce qui se passe. J'ai utilisé le pilote syslog pour cela: définissez l' --log-driver=syslog sur dockerd.

Créez d'abord un réseau de recouvrement pour le consul:

docker network create consul-net -d overlay

Maintenant, démarrez le cluster avec un seul nœud (par défaut --replicas est 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

Vous devriez maintenant avoir un cluster à 1 nœud. Maintenant, ouvrez le deuxième 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 

Vous devriez maintenant avoir un cluster de consul à quatre nœuds. Vous pouvez le vérifier en exécutant l'un des conteneurs Docker:

docker exec <containerid> consul members


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow