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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow