首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头群堆栈能将服务平均分配到所有节点吗?

码头群堆栈能将服务平均分配到所有节点吗?
EN

Stack Overflow用户
提问于 2017-09-28 06:39:03
回答 1查看 764关注 0票数 1

我有:

  • 三个1群管理器和2个群工作节点
  • 相互连接的应用程序集群。

docker-compose.yml

代码语言:javascript
复制
services:
  service1:
    ports:
      - 8888:8888
    environment:
      - ADDITIONAL_NODES=service2:8889,service3:8890
  service2:
    ports:
      - 8889:8889
    environment:
      - ADDITIONAL_NODES=service1:8888,service3:8890
  service3:
    ports:
      - 8890:8890
    environment:
      - ADDITIONAL_NODES=service1:8888,service2:8889

如果我运行docker stack deploy -c docker-compose.yml server

  1. 群管理器(Service1),群node1(service2),群node2(service3)
  2. 群管理器(service1、service2、service3),service3 node3(service1、service2、service3 3),S群node3(service1、service2、service3)

结果是哪一个?

如果是2,我如何使用码头群像1一样部署?我需要使用码头群,因为我也使用码头网络覆盖。

如果是1,那么我的服务是如何分布的?是否“平均”分布?如果是这样的话,那么从哪个角度来看,它是“平均”分布的呢?

EN

回答 1

Stack Overflow用户

发布于 2017-09-28 07:03:50

Docker群具有一定的逻辑,用于决定哪些服务在哪个节点上运行。现在它可能是你所期望的100%,但他们是聪明的人,在这方面工作,并可能考虑的事情,你没有(如CPU负载,可用的内存.)

目标是均匀地分配负载,就像示例1一样。如果某些服务由于某些原因不能在一个节点上启动(比如您使用私有注册表,但没有指定堆栈部署中的注册表-auth),那么这些服务都将在那些在其他节点上失败后运行它们的节点上启动。

根据我的个人经验,我可以告诉你,它很好地将任务分散到了群体中,但并不能保证哪一项服务会在哪里结束。

如果要强制在哪里运行服务,请使用约束。

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

https://stackoverflow.com/questions/46462518

复制
相关文章

相似问题

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