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集群管理节点的高可用配置
楼镇图

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