Docker-swarm 集羣部署及swarm集羣管理節點的高可用配置

      Docker-swarm 集羣部署及swarm集羣管理節點的高可用配置

一.Docker部署

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum makecache fast

yum install docker-ce

service docker start

Docker-swarm 集羣部署及swarm集羣管理節點的高可用配置
二.Docker-swarm集羣的搭建

1.挑選一個節點作爲管理節點

[root@jenkins-master ~]#docker swarm init --advertise-addr 192.168.0.46

docker swarm join-token worker命令是查看使用主節點的token添加節點到集羣的命令
[root@jenkins-master ~]# docker swarm join-token worker
To add a worker to this swarm, run the following command:

docker swarm join \
--token SWMTKN-1-5vzw37ummd0h863jddbig798pbq3jpgoepf95g4uenodwhtc7v-543arzx838nj0pgo2yujyfko4 \
192.168.0.46:2377

添加節點到swarm集羣中(在每臺節點機上執行)
[root@jenkins47~]# docker swarm join --token SWMTKN-1-5vzw37ummd0h863jddbig798pbq3jpgoepf95g4uenodwhtc7v-543arzx838nj0pgo2yujyfko4 192.168.0.46:2377

Docker-swarm 集羣部署及swarm集羣管理節點的高可用配置

查看集羣節點信息
[root@jenkins-master ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
5s0spx5wonjgsl8k63vfybq1v zabbix.skong Ready Active
ttfs9upr4bmhyt9ssfxfixkwm jenkins47 Ready Active
uc40c8karvu3pq2eupllyicz8 * jenkins-master Ready Active Leader
Docker-swarm 集羣部署及swarm集羣管理節點的高可用配置
給大家養養眼
三.配置docker-swarm管理節點高可用

如果swarm集羣中只有一個管理節點,該管理節點如果宕機或者離開集羣環境,那麼該集羣就不存在了。所以在一個具有N個管理節點的集羣環境中,一定有管理節點總數的50%以上的節點來處理請求和保持可用。

Swarm中的管理節點都是通過實現Raft一致性算法來管理所有節點的狀態。通過實現Raft Consensus Algorithm,可以確保集羣中的所有任務、存儲等都是一致的狀態
通常情況下,一個Raft 集羣包括了若干個服務器。在給定的任意時間點上,每個服務器都處在以下三種狀態的一種:指揮者、跟隨者,或候選者。在一般操作中,一定會有一個指揮者,剩下的服務器都是跟隨者。跟隨者是被動的:它們自己不提交任何需求,僅僅響應指揮者和候選者提出的需求。指揮者處理所有的客戶端需求(如果客戶端向跟隨者發送了需求,跟隨者會把它轉交給指揮者)。至於第三種狀態——候選者——則是用來選舉一個新的指揮者。Raft 用一種心跳機制來觸發指揮者選舉。當服務器啓動時,它們先從跟隨者做起,並會在接收到指揮者或候選者發送的有效RPC 協議(遠程過程調用協議)之前,一直執行跟隨者的工作。指揮者定時向全體跟隨者發送心跳信息,以保持它們的授權。如果一個跟隨者超過一定時間沒有接收到心跳信息(這段時間稱爲“選舉超時”),它就會假設指揮者已經失效,然後啓動選舉,來選擇一個新的指揮者。

Docker-swarm 集羣部署及swarm集羣管理節點的高可用配置

[root@jenkins-master ~]# docker node promote zabbix.skong
[root@jenkins-master ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
5s0spx5wonjgsl8k63vfybq1v zabbix.skong Ready Active Reachable
ttfs9upr4bmhyt9ssfxfixkwm jenkins47 Ready Active
uc40c8karvu3pq2eupllyicz8 * jenkins-master Ready Active Leader

重啓 Leader你會發現Leader節點會有變化

Docker-swarm 集羣部署及swarm集羣管理節點的高可用配置
樓鎮圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章