1. 程式人生 > >Docker視覺化管理工具Shipyard安裝與配置

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節點介面