Docker
kör konsul i docker 1.12 svärm
Sök…
Kör konsul i en docker 1.12-svärm
Detta förlitar sig på den officiella konsul-dockningsbilden för att köra konsul i klusterläge i en dockningsvärm med nytt svärmläge i Docker 1.12. Detta exempel är baserat på http://qnib.org/2016/08/11/consul-service/ . I korthet är tanken att använda två docker-svärmtjänster som pratar med varandra. Detta löser problemet att du inte kan känna till ips för enskilda konsulcontainrar framåt och låter dig lita på dockningsvärms dns.
Detta förutsätter att du redan har en löpande docker 1.12-svärmkluster med minst tre noder.
Du kanske vill konfigurera en loggdrivrutin på dina docker-demoner så att du kan se vad som händer. Jag använde syslog-drivrutinen för detta: ställ in --log-driver=syslog
alternativet på dockerd.
Skapa först ett överläggsnätverk för konsul:
docker network create consul-net -d overlay
Starta nu klusteret med bara en nod (standard - replik är 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
Du bör nu ha ett 1-nodkluster. Ta nu upp den andra tjänsten:
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
Du borde nu ha ett fyra nodkonsulskluster. Du kan verifiera detta genom att köra på någon av dockarkontainrarna:
docker exec <containerid> consul members