簡體   English   中英

服務如何在docker swarm中分布

[英]How services are distributed in docker swarm

我可以以某種方式配置主節點如何在docker swarm中分配服務嗎? 我認為,它應該看到工作程序節點的空閑資源並將其分發到“最空閑”節點。

目前,我有一個問題,該服務被分配到一個節點上,該節點已滿(RAM占90%),開始時比較遲鈍,但與此同時,第二個節點幾乎沒有服務,並且可以處理另一個節點。

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-nodes都相同。

  1. docker swarm如何知道在哪里運行服務? 它使用什么算法?
  2. 是否可以更改/更新用於選擇節點的算法?

根據swarmkit項目README的說法,唯一可用的策略是spread因此它以最小負載模式調度任務。

請注意,群集不會移動節點來維持此策略,因此,如果在node01已滿后添加了node02,則node02將大部分保持為空。 您可以耗盡兩個節點,然后激活它們以查看它是否更好地分配了負載。

您可以在項目文檔中找到有關調度算法的更詳細的描述:schedule -algorithm

對於較舊的群組管理器,此屬性是可配置的: https : //docs.docker.com/swarm/reference/manage/#--strategy--scheduler-placement-strategy

我還找到了https://docs.docker.com/swarm/scheduler/strategy/ ,它解釋了很多有關Docker群策略的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM