Балансировать сервис докеров в группах докеров вместо узлов - PullRequest
0 голосов
/ 20 мая 2019

У меня следующая проблема:

У меня есть докер-служба с 2 репликами и 4 рабочими, разделенными на 2 разных центра обработки данных.

Я знаю, когда рой порождает новые реплики, каждый раз это будет происходить на разных хостах. Можно ли настроить его так, чтобы он порождался в разных группах узлов, если я их как-то маркирую?

1 Ответ

1 голос
/ 20 мая 2019

Да, вы можете.

Вы можете прикрепить метки к узлам следующим образом:

docker node update --label-add region=east worker-1
docker node update --label-add region=east worker-2
docker node update --label-add region=west worker-3
docker node update --label-add region=west worker-4

Затем вы можете запустить службу с ограничениями или префиксами размещения:

# This will force your service to only run on nodes in your 'east' region
docker service create \
    --name myservice-east \
    --replicas 2 \
    --constraint node.labels.region==east \
    yourimage

# This will spread the replicas across the regions:
docker service create \
  --replicas 2 \
  --name spread-service \
  --placement-pref 'spread=node.labels.region' \
  myotherimage
...