lanyangkj 发表于 2017-5-10 17:09:10

docker-swarm如何实现label指定服务器?

最近在多服务器下跑swarm,牵涉到指定服务器的问题,但发现label标签怎么设置都无效过。
docker service create --replicas 3 --name helloworld --label servicetype="kafka" alpine ping docker.com






请问 --label servicetype="kafka"这种指定主机方式真的无效了吗?


还有没更加可行的方法


请高手指点。

lanyangkj 发表于 2017-5-10 17:34:27

为什么会有这种场景吧?比如说,我mysql只能指定到其中某台服务器执行,这时候就不能让自动均衡,否则有些宿主机的磁盘卷或者文件就找不到了。

w123aw 发表于 2017-5-10 18:24:21

lanyangkj 发表于 2017-5-10 17:34
为什么会有这种场景吧?比如说,我mysql只能指定到其中某台服务器执行,这时候就不能让自动均衡,否则有些 ...

首先这种方式是可以的。至于楼主为什么不生效,可以看看命令格式等。下面参考
例如
docker service create \
--name redis_2 \
--label com.example.foo="bar"
--label bar=baz \
redis:3.0.6
更多信息
https://docs.docker.com/engine/userguide/labels-custom-metadata/

除了这种方式还有其它方式
比如
docker run -d -P \
-e constraint:storage=ssd \
-e constraint:zone=external \
-t nginx
更多参考
http://www.aboutyun.com/home.php?mod=space&uid=15&do=blog&id=3343

lanyangkj 发表于 2017-5-11 09:26:22

十分感谢您的回复,我再问下,因为node节点标签与容器创建分发应该是成对出现的。
docker service create \
--name redis_2 \
--label com.example.foo="bar"
--label bar=baz \
redis:3.0.6

你这个只写了容器创建, 那节点上该如何标注呢。 反正我用 --label-add 好像匹配不到,达不到预期的效果。

比如说,

--label com.example.foo="bar"
--label bar=baz \
这个两个key=value还是一个呀。
与之对应--label-add 该如何定义才生效呢??
在线等,谢谢!!

einhep 发表于 2017-5-11 09:47:03

lanyangkj 发表于 2017-5-11 09:26
十分感谢您的回复,我再问下,因为node节点标签与容器创建分发应该是成对出现的。
docker service create...

--label com.example.foo="bar"
--label bar=baz \
这应该是两个

lanyangkj 发表于 2017-5-11 09:57:46

einhep 发表于 2017-5-11 09:47
--label com.example.foo="bar"
--label bar=baz \
这应该是两个
那node中的--label-add 该如何写? com.example.foo 这个是什么东西??



# docker node ls -f "label=foo"
IDHOSTNAMESTATUSAVAILABILITYMANAGER STATUS
#



我总感觉,这个对swarm来说 label标签不可用,你看上边的过滤器都查不到东西。 而name标签却是可以的。看下图:


# docker node ls -f "name=docker-03"
ID                         HOSTNAME   STATUSAVAILABILITYMANAGER STATUS
mfbk8anq4ozuf0mz64xrdjv9zdocker-03Ready   Active      
#

langke93 发表于 2017-5-11 14:02:53

lanyangkj 发表于 2017-5-11 09:57
那node中的--label-add 该如何写? com.example.foo 这个是什么东西??




楼主在官网其实已经查到了。node 的label起不到过滤的作用。

lanyangkj 发表于 2017-5-11 14:54:08

langke93 发表于 2017-5-11 14:02
楼主在官网其实已经查到了。node 的label起不到过滤的作用。

那大神,如何在swarm下让容器在指定服务器上运行呢。

langke93 发表于 2017-5-13 22:18:44

lanyangkj 发表于 2017-5-11 14:54
那大神,如何在swarm下让容器在指定服务器上运行呢。

上面其实都已经展现了。目前还未找到楼主所说的内容

lanyangkj 发表于 2017-6-27 15:34:27

此帖已结贴,在新版的docker已经解决了。需要帮忙可以私信与我。谢谢大家
页: [1]
查看完整版本: docker-swarm如何实现label指定服务器?