docker Swarm调度策略问题
Swarm的spread和binpack调度策略,选择节点的时候不是实时获取系统可用内存和CPU资源的麽?
我做了如下测试:
1,搭建三台docker主机的swarm集群:node-1,node-2,node-3,每个docker主机配置一样,都是4G内存,一颗2核CPU;
2,将node-1的CPU跑满(或消耗内存);
3,新建6个容器,还是会有2个容器分配到了node-1上;
有研究过的麽?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
经过查看一些文档,都没有找到原因,后来就猜想可能是
swarm
服务发现的原因(我使用的是DockerHub
提供的),因为调度器是对服务发现收集的节点信息做筛选的。将服务发现换成
etcd
之后,这个问题解决。swarm在用命令swarm manager启动swarm manager时,可用--strategy指定调度策略。
swarm提供了三种调度策略计算节点的排名,在调度(例如选择哪一个节点运行容器时)时,取排名最前的节点
这三种调度策略是:
它的好处是,保证
如果没改的话, 应该是spread的才对