Swarm中binpack策略引起的棘手问题.docx

Swarm中binpack策略引起的棘手问题.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Swarm中binpack策略引起的棘手问题

DockerSwarm—Docker的本地化集群方案,自带两种调度策略,spread和binpack。Spread策略会尝试把每个容器平均地部署到每个节点上,而binpack策略会把容器尽量部署在主要的负载节点上。Spread的优点是如果一个节点失效了,只会有最少量的容器受影响,而binpack的优点是能提高资源使用率,保证空闲的资源得到最大化利用。

(BinpackvsSpread 策略)

长远来看,我相信以后会越来越多地使用binpack这种方式,因为它可以提高主机资源使用率。而主机宕机的风险也有办法尽量降低,那就是尽量使用无状态的微服务,因为无状态的服务能够自动快速的迁移到可用的节点上,从而把宕机的危害减到最小。

但是,如果你现在正使用着binpack,你需要特别小心的是容器间的协调关系,确保某些必须运行在同一个节点上的容器总能在相同的节点上运行着。

考虑一下这个场景,假如我们有两个有空闲资源的节点,其中一个几乎占用满了,而另一个几乎是没被占用,我们可以用两个装有Docker的虚拟机来模拟这个场景:

$dockerrunswarmcreate7a6441b8b3f8e166ed2170

$docker-machinecreate-dvirtualbox--swarm--swarm-master--swarm-strategybinpack--swarm-discoverytoken://7a6441b8b3f8e166ed2170

swarm-1...

$docker-machinecreate-dvirtualbox--swarm--swarm-strategybinpack

--swarm-discoverytoken://7a6441b8b3f8e166ed2170swarm-2...

$eval$(docker-machineenv--swarmswarm-1)

$dockerinfo

Containers:3Images:8Role:primaryStrategy:binpack

Filters:health,port,dependency,affinity,constraintNodes:2

swarm-1:192.168.99.103:2376

└Containers:2

└ReservedCPUs:0/1

└ReservedMemory:0B/1.021GiB

└Labels:executiondriver=native-0.2,kernelversion=4.1.12-boot2docker,operatingsystem=Boot2Docker1.9.0(TCL6.4);master:16e4a2a-TueNov 319:49:22UTC2015,provider=virtualbox,storagedriver=aufs

swarm-2:192.168.99.104:2376

└Containers:1

└ReservedCPUs:0/1

└ReservedMemory:0B/1.021GiB

└Labels:executiondriver=native-0.2,kernelversion=4.1.12-boot2docker,operatingsystem=Boot2Docker1.9.0(TCL6.4);master:16e4a2a-TueNov 319:49:22UTC2015,provider=virtualbox,storagedriver=aufs

CPUs:2TotalMemory:2.043GiBName:4da00a74a9b1

然后启动一个容器,而且这个容器占用了整个节点的一半内存(注意,当使用

binpack策略时,必须指定资源的占用大小):

$dockerrun-d--nameweb-m512MBnginx55c099f324e7a95afdad3431077ee80200d418c49c10f30d5c8d52

$dockerinfo

Containers:4Images:8Role:primaryStrategy:binpack

Filters:health,port,dependency,affinity,constraintN

文档评论(0)

hao187 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档