Поиск…


Запуск консула в докер 1.12 рой

Это зависит от официального изображения докеры-консула для запуска консула в кластерном режиме в докеровском рое с новым режимом роя в Docker 1.12. Этот пример основан на http://qnib.org/2016/08/11/consul-service/ . Вкратце идея состоит в том, чтобы использовать две службы докеров, которые говорят друг с другом. Это решает проблему, из-за которой вы не можете знать ips отдельных контейнеров консула спереди и позволяет вам полагаться на dns docker swarm.

Это предполагает, что у вас уже есть рабочий кластер 1.12 с кластерами с минимум тремя узлами.

Вы можете настроить драйвер журнала на своих демонах докеров, чтобы вы могли видеть, что происходит. Я использовал драйвер syslog для этого: установите параметр --log-driver=syslog на dockerd.

Сначала создайте оверлейную сеть для консула:

docker network create consul-net -d overlay

Теперь загрузите кластер только с одним узлом (по умолчанию --replicas равно 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

Теперь у вас должен быть кластер из 1 узла. Теперь поднимите вторую службу:

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 

Теперь у вас должен быть кластер с четырьмя узлами. Вы можете проверить это, запустив любой из контейнеров докеров:

docker exec <containerid> consul members


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow