1. 程式人生 > >使用docker swarm集群心得

使用docker swarm集群心得

不能 點數據 paxos 運行 冗余 穩定 targe dock blank

本片關於使用docker swarm 集群心得,也是一些經驗吧!過程描述可能簡單!

根據一些公司使用經歷接收一下問題並針對問題作出應對策略

1、docker swarm集群 主節點數必須是單數,也就是說主節點數控制一般是1、3、5、7.......

為什麽是單數,大家可能都知道很多集群都是這樣設置主節點的 像zab paxos raft等分布式一致性協議都是以多數節點存活作為可用部分,

docker swarm 集群內部選主機制是raft(https://raft.github.io/)協議實現的,雖然這個協議可以在任意節點數據量的時候有主節點存在並正常運行,但是會出現如下情況

加入有5個節點,連續三個主節點down掉了這個時候就剩下兩個從節點這個時候誰也不能達到半數以上的選票導致集群暫停等待有新的節點加入。

2、docker swarm 所有主機盡量配置相同

為什麽說要配置盡量相同,雖然docker會根據俄cpu和內存做一些簡單的容器編排平衡,如果存在配置資源有的高有的低的情況,配置資源高的宿主機運行的容器就會較多,如果這個機器重啟或者宕機這個時候容器會漂移到兄弟節點。兄弟節點配置比較低就會壓垮配置低的節點。

3、docker swarm 所有主機盡量都在一個網段,如果不在一個網段多個網段宿主機盡量均等,保證一定比例的冗余資源

為什麽說盡量在一個網段那,因為網段之間加入有問題了很可能會將集群分成兩半,同樣很容易導致上面第一點的問題,

所以說如果集群時跨網段的盡量將raft協議節點分布在合適的網段(“合適”根據業務情況定)

4、docker swarm 集群所有使用資源必須要一定的冗余數量,冗余數量的多少以可宕機宿主機數量百分比來定

回到上面第2點內容的回答,我們集群資源一定要有冗余,因為docker swarm容器會漂移到正常的節點,所以為了不讓節點因為資源壓垮要有一定的冗余,docker swarm目前好像沒有根據資源降級的特性。

5、宿主機操作系統一定要用對

根據個大社區的建議 使用ubuntu,原因有一下幾點:

第一、內核更新快,更適應docker的快速叠代,很多linux功能支持也很新。

第二、根據經驗ubuntu使用出現莫名其妙問題最少社區強大

如果使用其他linux操作系統盡量使用最新穩定版內核

6、盡量再生產環境使用物理機作為宿主機

使用docker swarm集群心得