Docker視覺化管理工具Shipyard安裝與配置
Shipyard簡介
Shipyard是一個整合管理docker容器、映象、Registries的系統,它具有以下特點:
- 支援多節點的整合管理
- 可動態載入節點
- 可託管node下的容器
環境準備
下載映象
# docker pull rethinkdb
# docker pull microbox/etcd
# docker pull shipyard/docker-proxy
# docker pull swarm
# docker pull shipyard/shipyard
自動安裝
注意:這將會暴露Docker Engine的管理埠2375。如果此節點在安全網路外部可以訪問,建議使用TLS。
1. 下載自動部署Shell指令碼
curl -sSL https://shipyard-project.com/deploy | bash -s
自動部署指令碼中, 包括以下引數:
- ACTION: 表示可以使用的指令,它包括以下選項。
- deploy, 預設值, 表示自動安裝部署Shipyard管理工具及相關應用
- upgrade,更新已存在的例項(
注意:你要保持相同的系統環境、變數來部署同樣的配置
) - node, 部署Swarm的一個新節點
- remove, 已存在的shipyard例項
- DISCOVERY: 集群系統採用Swarm進行採集和管理(在節點管理中可以使用‘node’)
- IMAGE: 映象,預設使用shipyard的映象
- PREFIX: 容器名字的字首
- SHIPYARD_ARGS: 容器的常用引數
- TLS_CERT_PATH: TLS證書路徑
- PORT: 主程式監聽埠 (預設埠: 8080)
- PROXY_PORT: 代理埠 (預設: 2375)
2. 使用映象
Shipyard允許您採取指定的映象來部署例項,比如以下的測試版本,你也已這樣做:
curl -sSL https://shipyard-project.com/deploy | IMAGE=shipyard/shipyard:test bash -s
3. 使用字首
你可以在部署Shipyard管理工具時,自定義你想要的字首,比如
curl -sSL https://shipyard-project.com/deploy | PREFIX=shipyard-test bash -s
4. 使用執行引數
這裡增加一些shipyard執行引數,你可以像這樣進行調整:
curl -sSL https://shipyard-project.com/deploy | SHIPYARD_ARGS="--ldap-server=ldap.example.com --ldap-autocreate-users" bash -s
5. 使用安全認證(TLS證書)
啟用安全加密通訊協議(TLS)對Shipyard進行部署,包括代理(docker-proxy)、swarm叢集、shipyard管理平臺的配置,這是一個配置規範。證書必須採用以下命名規範:
- ca.pem: 安全認證證書
- server.pem: 伺服器證書
- server-key.pem: 伺服器私有證書
- cert.pem: 客戶端證書
- key.pem: 客戶端證書的key
注意:證書將被放置在一個單獨的安全認證docker容器中,並在各個組成部分之間共享。如果需要除錯,可以將此容器連線到除錯容器。資料容器名稱為$PREFIX-certs
。
docker run --rm \
-v $(pwd)/certs:/certs \
ehazlett/certm \ -d /certs \
bundle \
generate \
-o shipyard \
--host proxy \
--host 127.0.0.1
你也可以在部署時,指定TLS_CERT_PATH
引數:
curl -sSL https://shipyard-project.com/deploy | TLS_CERT_PATH=$(pwd)/certs bash -s
6. 增加Swarm節點
Shipyard管理的Swarm節點部署指令碼將自動的安裝key/value儲存系統(etcd系統),用於進行服務發現, 相關的工具還有Consul、Zookeeper。增加一個節點到swarm叢集,你可以通過以下的節點部署指令碼:
curl -sSL https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://10.0.1.10:4001 bash -s
注意:10.0.1.10
該ip地址為部署Ectd系統所在主機的IP地址,你需要根據你的部署位置進行修改。
7. 刪除Shipyard管理工具
如果你要刪除Shipyard部署的容器,你可以使用以下指令碼進行刪除。
curl -sSL https://shipyard-project.com/deploy | ACTION=remove bash -s
手動安裝
1. 資料儲存
Shipyard使用RethinkDB做為資料儲存工具, 我們需要先執行RethinkDB容器。
# docker run \
-ti \
-d \
--restart=always \
--name shipyard-rethinkdb \
rethinkdb
2. 服務發現
為了啟用Swarm leader選擇,我們必須使用來自Swarm容器的外部鍵值儲存。此處,我們使用Etcd作為服務發現工具。可以選用的服務發現工具還有Consul、Zookeeper等。
# docker run \
-ti \
-d \
-p 4001:4001 \
-p 7001:7001 \
--restart=always \
--name shipyard-discovery \
microbox/etcd:latest \
-name discovery
3. Docker代理服務
預設情況下,Docker引擎只偵聽套接字。 我們可以重新配置引擎以使用TLS,或者您可以使用代理容器。 這是一個非常輕量級的容器,它只是將請求從TCP轉發到Docker監聽的Unix套接字。
# docker run \
-ti \
-d \
-p 2375:2375 \
--hostname=$HOSTNAME \
--restart=always \
--name shipyard-proxy \
-v /var/run/docker.sock:/var/run/docker.sock \
-e PORT=2375 \
shipyard/docker-proxy:latest
4. Swarm管理節點
# docker run \
-ti \
-d \
--restart=always \
--name shipyard-swarm-manager \
swarm:latest \
manage --host tcp://0.0.0.0:3375 etcd://<IP-OF-HOST>:4001
5. Swarm Agent節點
# docker run \
-ti \
-d \
--restart=always \
--name shipyard-swarm-agent \
swarm:latest \
join --addr <ip-of-host>:2375 etcd://<ip-of-host>:4001
6. Shipyard管理工具
# docker run \
-ti \
-d \
--restart=always \
--name shipyard-controller \
--link shipyard-rethinkdb:rethinkdb \
--link shipyard-swarm-manager:swarm \
-p 8080:8080 \
shipyard/shipyard:latest \
server \
-d tcp://swarm:3375
Shipyard管理介面
容器管理介面
容器管理列表介面
容器管理介面
容器狀態頁面
容器部署頁面
映象管理介面
映象管理介面
Swarm節點介面
Swarm節點介面