首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker群尺度

Docker群尺度
EN

Stack Overflow用户
提问于 2018-06-19 18:22:48
回答 2查看 712关注 0票数 2

我有一个用docker-swarm构建的集群,我们在其中运行apache spark应用程序。在集群中,我有一个管理器节点和3个worker nodes.In这个集群,我们有一个spark的主容器和许多worker容器。我可以使用以下命令扩展工作节点的数量。

代码语言:javascript
复制
sudo docker service scale spark_worker=<number of workers>

当我增加worker的数量时,我希望在worker节点上创建新的容器,而不是在管理器节点上。

EN

回答 2

Stack Overflow用户

发布于 2018-06-22 01:14:24

有两个选项:

  1. docker node update --availability=drain <nodename>这将停止节点上的容器,并在其他地方启动它们,并防止将来的容器在该节点上运行。请注意,pause仅阻止该节点上的新容器,而不会移动现有容器。

然而,这种方法是相当有限的。如果你想在管理器上运行任何东西,比如监控、日志记录、管理图形用户界面等,你都做不到。

  1. 一种更灵活的方法是更新现有服务,使其仅在工作节点上运行:docker service update --constraint-add 'node.role==worker' <servicename>。然后,如果您只想在管理器上运行服务,则可以在其上使用node.role==manager
票数 1
EN

Stack Overflow用户

发布于 2018-12-29 19:24:02

可以在deploy部分中指定副本属性。因此不允许使用scale参数。因此,我在docker-compose.yml中的一个服务如下所示:

代码语言:javascript
复制
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"

因此,现在我不必每次扩展我的服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50926067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档