我在带有1个主节点和3个工作节点的坞群集群上启动了一个烧瓶API服务。我已经使用下面的docker组合文件部署了任务,
version: '3'
services:
xgboost-model-api:
image: xgboost-model-api
ports:
- "5000:5000"
deploy:
mode: global
networks:
- xgboost-net
networks:
xgboost-net:我使用下面的停靠群命令部署了该任务,
docker stack deploy --compose-file docker-compose.yml xgboost-swarm但是,该任务仅在我的主节点上启动,而不是在任何工作节点上启动。
$ docker service ls
ID NAME MODE REPLICAS IMAGE
pgd8cktr4foz viz replicated 1/1
dockersamples/visualizer
twrpr4av4c7f xgboost-swarm_xgboost-model-api global 1/4 xgboost-model-api
xxrfn1w7eqw6 dockercloud-server-proxy global 1/1 dockercloud/server-proxy 正在使用的Dockerfile是这里。任何关于为什么会发生这种行为的想法都将不胜感激。
发布于 2017-10-02 08:53:22
如本线程所述(重复?):
如果您使用的是私有注册表,则必须通过以下方法与工作节点共享登录和凭据:
docker堆栈部署--带有注册表-auth
-更新
从您的撰写文件看,它看起来不像是在使用私有注册表。一般说来,如果集装箱不能成功地在工人身上启动,他们就会成为经理。造成这种情况的一些可能原因是:
尝试移除堆栈并再次运行它。然后执行docker service ps --no-trunc {serviceName},这可能会显示应该在另一个节点上运行该服务的任务以及它失败的原因。
有关更多故障排除提示,请查看这根线。
https://stackoverflow.com/questions/46522185
复制相似问题