我有一个用docker-swarm构建的集群,我们在其中运行apache spark应用程序。在集群中,我有一个管理器节点和3个worker nodes.In这个集群,我们有一个spark的主容器和许多worker容器。我可以使用以下命令扩展工作节点的数量。
sudo docker service scale spark_worker=<number of workers>当我增加worker的数量时,我希望在worker节点上创建新的容器,而不是在管理器节点上。
发布于 2018-06-22 01:14:24
有两个选项:
docker node update --availability=drain <nodename>这将停止节点上的容器,并在其他地方启动它们,并防止将来的容器在该节点上运行。请注意,pause仅阻止该节点上的新容器,而不会移动现有容器。然而,这种方法是相当有限的。如果你想在管理器上运行任何东西,比如监控、日志记录、管理图形用户界面等,你都做不到。
docker service update --constraint-add 'node.role==worker' <servicename>。然后,如果您只想在管理器上运行服务,则可以在其上使用node.role==manager。发布于 2018-12-29 19:24:02
可以在deploy部分中指定副本属性。因此不允许使用scale参数。因此,我在docker-compose.yml中的一个服务如下所示:
xxx_nginx:
image: nginx
tty: true
command: ["sh", "-c", "usermod -u 1000 nginx && nginx -g 'daemon off;'"]
volumes:
- "/home/pi/images:/usr/share/nginx/html:ro"
- "/var/log/nginx:/var/log/nginx"
- "/etc/localtime:/etc/localtime:ro"
deploy:
replicas: 2
placement:
constraints:
- "node.hostname==raspberrypi151"因此,现在我不必每次扩展我的服务。
https://stackoverflow.com/questions/50926067
复制相似问题