Docker
exécuter consul dans docker 1.12 essaim
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