docker swarm中服务的分布方式
我可以配置主节点如何在docker swarm中分发服务吗?我认为,它应该看到工作节点的空闲资源,并将其分发到“最空闲”的节点 目前我遇到的问题是,服务被分配到一个节点中,这个节点已经满了(90%的RAM),并且它开始变慢,但同时第二个节点几乎没有服务,它可以处理另一个节点docker swarm中服务的分布方式,docker,docker-swarm,Docker,Docker Swarm,我可以配置主节点如何在docker swarm中分发服务吗?我认为,它应该看到工作节点的空闲资源,并将其分发到“最空闲”的节点 目前我遇到的问题是,服务被分配到一个节点中,这个节点已经满了(90%的RAM),并且它开始变慢,但同时第二个节点几乎没有服务,它可以处理另一个节点 docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGE
docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
wdkklpy6065zxckxyuj000ei4 * docker-master Ready Drain Leader 18.09.6
sk45rol2whdr5eh2jqozy0035 docker-node01 Ready Active Reachable 18.09.6
o4zwwbwwcrbwo4tsd00pxkfuc docker-node02 Ready Active 18.09.6
现在我有36个(非常相似的)服务,28个在docker-node01上运行,8个在docker-node02上运行。我认为,理想状态是两个节点上都有16个服务。
两个docker节点都相同
根据swarmkit项目,唯一可用的策略是
spread
,因此它以负载最少的模式安排任务
请注意,swarm不会移动节点以保持此策略,因此如果在节点01已满后添加节点02,则节点02将大部分保持为空。您可以耗尽这两个节点,然后激活它们,看看它是否能更好地分配负载
您可以在项目文档中找到有关计划算法的更详细说明:
对于较旧的swarm manager,此属性是可配置的:
我还发现,它解释了许多关于Docker swarm策略的问题