我有以下问题:
我有一个docker服务,其中有2个副本和4个工作人员,分别分布在2个不同的数据中心中。
我知道当群组产生新副本时,每次都会在不同的主机中进行。如果我以某种方式标记它们,是否可以将其配置为在不同的节点组中生成它?
答案 0 :(得分:1)
是的。
您可以将标签附加到节点,如下所示:
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