docker-swarm如何实现label指定服务器?
最近在多服务器下跑swarm,牵涉到指定服务器的问题,但发现label标签怎么设置都无效过。docker service create --replicas 3 --name helloworld --label servicetype="kafka" alpine ping docker.com
请问 --label servicetype="kafka"这种指定主机方式真的无效了吗?
还有没更加可行的方法
请高手指点。
为什么会有这种场景吧?比如说,我mysql只能指定到其中某台服务器执行,这时候就不能让自动均衡,否则有些宿主机的磁盘卷或者文件就找不到了。 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
十分感谢您的回复,我再问下,因为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 该如何定义才生效呢??
在线等,谢谢!! lanyangkj 发表于 2017-5-11 09:26
十分感谢您的回复,我再问下,因为node节点标签与容器创建分发应该是成对出现的。
docker service create...
--label com.example.foo="bar"
--label bar=baz \
这应该是两个
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
#
lanyangkj 发表于 2017-5-11 09:57
那node中的--label-add 该如何写? com.example.foo 这个是什么东西??
楼主在官网其实已经查到了。node 的label起不到过滤的作用。 langke93 发表于 2017-5-11 14:02
楼主在官网其实已经查到了。node 的label起不到过滤的作用。
那大神,如何在swarm下让容器在指定服务器上运行呢。
lanyangkj 发表于 2017-5-11 14:54
那大神,如何在swarm下让容器在指定服务器上运行呢。
上面其实都已经展现了。目前还未找到楼主所说的内容
此帖已结贴,在新版的docker已经解决了。需要帮忙可以私信与我。谢谢大家
页:
[1]