docker swarm集群部署
docker swarm 集群構建:
swarm 在docker 1.12 版本後內置
#h官方文檔tps://docs.docker.com/engine/swarm/#feature-highlights
系統環境:
centos7.3
docker17.06
1、初始化manager節點:
docker swarm init
為實現高可用,manager節點需要有奇數個,類似zookerper選舉制度。
2、復制生成的命令,在node節點運行。
#docker swarm join-token manager
To add a manager to this swarm, run the following command:
docker swarm join --token SWMTKN-1-1hwdongcnsvzh92s1wnd33w9p08k1o18vobvkzu7z509xoduif-2ezofrbnkaamwuuby9d1w0wn5 10.39.3.25:2377
# docker swarm join-token worker
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-1hwdongcnsvzh92s1wnd33w9p08k1o18vobvkzu7z509xoduif-1j43vxwnsrc3cyz2y7ips3d3g 10.39.3.25:2377
示例:
如目前有 10.39.3.25--29 集群, 選其中3個25、26、27 做為manager節點,用於管理swarm集群和實現高可用。
# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
dga3oelektv4tbofub2ii9d36 cephnode5 Ready Active
j0hmbmvn9pwnpr1n9zm20j67k * cephnode3 Ready Active Reachable
k7pb8msn85c6xzflbe4r57itd cephnode1 Ready Active Reachable
mmlszdi5lcr0zt2nk44pcjvya cephnode4 Ready Active
t9f91au60k3cgf406cqe1pn2t cephnode2 Ready Active Leader
2個manager是無法實現高可用的,主節點異常後,備用節點運行命令將報錯如下:
#docker node ls
Error response from daemon: rpc error: code = 2 desc = The swarm does not have a leader. It‘s possible that too few managers are online. Make sure more than half of the managers are online.
docker swarm集群部署