Docker
uruchomić konsul w dokerze 1.12 roju
Szukaj…
Uruchom konsul w roju dokerów 1.12
Opiera się to na oficjalnym obrazie dokera konsula, aby uruchomić konsula w trybie klastrowym w roju dokerów z nowym trybem roju w Docker 1.12. Ten przykład jest oparty na http://qnib.org/2016/08/11/consul-service/ . W skrócie chodzi o to, aby skorzystać z dwóch usług roju dokerów, które ze sobą rozmawiają. Rozwiązuje to problem polegający na tym, że nie możesz poznać IP poszczególnych kontenerów konsulowych z przodu i pozwala ci polegać na dns roju dokerów.
Zakłada się, że masz już uruchomiony klaster roju dokerów 1.12 z co najmniej trzema węzłami.
Możesz skonfigurować sterownik dziennika w demonach dokerów, aby zobaczyć, co się dzieje. Użyłem do tego sterownika syslog: ustaw --log-driver=syslog
na dockerd.
Najpierw utwórz sieć nakładek dla konsula:
docker network create consul-net -d overlay
Teraz uruchom boot klaster za pomocą tylko 1 węzła (domyślnie --replicas to 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
Powinieneś teraz mieć 1 węzeł. Teraz przywołaj drugą usługę:
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
Powinieneś teraz mieć czterowęzłowy klaster konsulowy. Możesz to sprawdzić, uruchamiając na dowolnym kontenerze dokera:
docker exec <containerid> consul members