1. 程式人生 > >shipyard 管理swarm集群(附etcd管理集群方法)

shipyard 管理swarm集群(附etcd管理集群方法)

spa 所有 如何實現 oot 服務容器 replica 數據 trap 自動安裝

docker swarm集群

第一步:安裝swarm集群

192.168.132.131----->(manger1,node)
192.168.132.132----->(manger2,node)
192.168.132.133----->(node)
192.168.132.135----->(node)

manger1 主機

啟動 Consel 服務後端

#啟動 consel 服務容器,映射到主機的 8500 端口。
$ docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap

啟動主管理節點

啟動一個主管理節點,映射到主機的 4000 端口,並獲取所在主機地址為 <manager0_ip>。其中 4000 端口是 Swarm 管理器的默認監聽端口,用戶也可以指定映射為其它端口。

$ docker run -d -p 4000:4000 swarm manage -H :4000 --replication --advertise <manager0_ip>:4000 consul://<consul_ip>:8500  #manager0 本機ip

manger2 主機

啟動備用管理節點

$ docker run -d swarm manage -H :4000 --replication --advertise <manager1_ip>:4000 consul://<consul_ip>:8500    #manager1 本機ip

所有node節點

啟動工作節點

docker run -d swarm join --advertise=<node_ip>:2375 consul://<consul_ip>:8500    #工作節點ip

測試:

docker -H 192.168.132.131:4000 info

技術分享圖片

docker -H 192.168.132.132:4000 info

技術分享圖片

關閉 manger1的swarm 管理節點,去管理節點2上 docker -H 192.168.132.132:4000 info 發現 role 變為 primary

安裝shipyard

Shipyard是一款開源的圖形化的Docker管理工具,官方有自動安裝腳本,使用非常方便。復制、粘貼、使用,就這麽簡單。先不研究他是如何實現的,安裝使用起來再說。

所有操作均在manger1節點

# docker pull rethinkdb
# docker pull microbox/etcd
# docker pull shipyard/docker-proxy
# docker pull swarm
# docker pull shipyard/shipyard


#1. 數據存儲(rethinkdb)
docker run -ti -d --name shipyard-rethinkdb rethinkdb

#2.Docker代理服務(shipyard/docker-proxy)
docker run -ti -d -p 2376:2375 --hostname=$HOSTNAME --name shipyard-proxy -v /var/run/docker.sock:/var/run/docker.sock -e PORT=2375 shipyard/docker-proxy

#3 啟動shipyard
docker run -ti -d --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8083:8080 shipyard/shipyard server -d tcp://swarm:4000


註解: 
tcp://swarm:4000 表示swarm集群的管理地址(端口為搭建集群時的管理端口)

--link shipyard-swarm-manager:swarm
shipyard-swarm-manager 表示的是swarm manger的容器名稱


#然後訪問:http://manger1_ip:8083
默認用戶名/密碼 admin/shipyard

註解:
10.211.55.20:2375 為node節點ip和端口
10.211.55.20:4001 為本地管理端口(及管理節點的ip和端口,類似於consul服務)

另一種方法安裝

$ curl -s https://shipyard-project.com/deploy | bash -s

技術分享圖片

ip:8080 admin shipyard

技術分享圖片

etcd 服務 添加集群方法:

管理節點:(etcd自動發現,與consul自動發現功能相同)

#啟動發現服務
docker run -ti -d -p 4001:4001 -p 7001:7001 --name shipyard-discovery microbox/etcd -name discovery

4001 類似於 consul的8500端口


#啟動管理節點: docker run -ti -d --name shipyard-swarm-manager swarm manage --host tcp://0.0.0.0:3375 etcd://10.211.55.20:4001

10.211.55.20為本機ip,類似於consul服務ip和端口,tcp://0.0.0.0:3375 為管理節點的管理端口

node節點:添加節點到集群

docker run -ti -d --name shipyard-swarm-agent swarm join --addr 10.211.55.20:2375 etcd://10.211.55.20:4001

shipyard 管理swarm集群(附etcd管理集群方法)