shipyard 管理swarm集群(附etcd管理集群方法)
阿新 • • 發佈:2018-02-11
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管理集群方法)