docker可視化集中管理工具shipyard安裝部署


docker可視化集中管理工具shipyard安裝部署

 

Shipyard是在Docker Swarm實現對容器、鏡像、docker集群、倉庫、節點進行管理的web系統。

1.Shipyard功能

Shipyard是一個集成管理docker容器、鏡像、Registries的系統,它可以簡化對橫跨多個主機的Docker容器集群進行管理. 通過Web用戶界面,你可以大致瀏覽相關信息,比如你的容器在使用多少處理器和內存資源、在運行哪些容器,還可以檢查所有集群上的事件日志。

2.Shipyard特點:

支持多節點的集成管理;
支持鏡像、容器、節點管理等功能;
可視化的容器管理和監控管理;
可動態加載節點。

 

3.Shipyard幾個概念

1)engine

一個shipyard管理的docker集群可以包含一個或多個engine(引擎),一個engine就是監聽tcp端口的dockerdaemon。shipyard管理docker daemon、images、containers完全基於
Docker API,不需要做其他的修改。另外,shipyard可以對每個engine做資源限制,包括CPU和內存;因為TCP監聽相比Unix socket方式會有一定的安全隱患,所以shipyard還支持通過
SSL證書與docker后台進程安全通信。

2)rethinkdb

RethinkDB是一個shipyard項目的一個docker鏡像,用來存放賬號(account)、引擎(engine)、服務密鑰(service key)、擴展元數據(extension metadata)等信息,但不會存儲
任何有關容器或鏡像的內容。

 

4.Shipyard生態

shipyard是由shipyard控制器以及周圍生態系統構成,以下按照deploy啟動順序進行介紹(下面幾個就是shipyard使用腳本安裝后,啟動的幾個容器名)

1)RethinkDB
deploy首先啟動的就是RethinkDB容器,shipyard采用RethinkDB作為數據庫來保存用戶等信息

2)Discovery
為了使用Swarm,我們需要一個外部的密鑰值存儲群容器,shipyard默認是采用了etcd。

3)shipyard_certs
證書管理容器,實現證書驗證功能

4)Proxy
默認情況下,Docker引擎只監聽Socket,我們可以重新配置引擎使用TLS或者使用一個代理容器,轉發請求從TCP到Docker監聽的UNIX Socket。

5)Swarm Manager
Swarm管理器

6)Swarm Agent
Swarm代理,運行在每個節點上。

7)Controller
shipyard控制器,Remote API的實現和web的實現。

  

5.Centos7.2系統下Shipyard(中文版)部署記錄

查看系統版本及ip

[root@pre1 gh]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

[root@pre1 gh]# ifconfig|grep 192.168.3.141
 inet 192.168.3.141  netmask 255.255.255.0  broadcast 192.168.3.255

  

6.安裝最新版docker

[root@pre1 ~]# curl -fsSL https://get.docker.com/ | sh

修改docker配置文件,添加下面一行,進行docker加速設置

[root@pre1 ~]# vim /etc/sysconfig/docker                //在文件底部添加下面一行, (這里就是直接寫: xxx.mirror.aliyuncs.com)
ADD_REGISTRY='--add-registry xxx.mirror.aliyuncs.com'

啟動docker服務

[root@docker-218 ~]# systemctl start docker 

加入開機自啟動

[root@pre1 ~]# systemctl enable docker

 

7.下載相關鏡像

[root@pre1 ~]# docker pull rethinkdb
[root@pre1 ~]# docker pull microbox/etcd
[root@pre1 ~]# docker pull shipyard/docker-proxy
[root@pre1 ~]# docker pull swarm
[root@pre1 ~]# docker pull dockerclub/shipyard

 

8.下載官方一鍵部署腳本

鏈接: https://pan.baidu.com/s/1WHGOe6LX9-eU39vf1SzbRg
提取碼: tbkf

一鍵部署

[root@pre1 ~]# chmod 755 shipyard-deploy

[root@pre1 ~]# sh shipyard-deploy
Deploying Shipyard
 -> Starting Database
 -> Starting Discovery
 -> Starting Cert Volume
 -> Starting Proxy
 -> Starting Swarm Manager
 -> Starting Swarm Agent
 -> Starting Controller
Waiting for Shipyard on 192.168.3.141:8080
Shipyard available at http://192.168.3.141:8080
Username: admin Password: shipyard

  

9.查看部署好的shipyard容器

[root@pre1 ~]# docker ps
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                                            NAMES
076c8c7bd1a9        dockerclub/shipyard:latest     "/bin/controller --d…"   16 hours ago        Up 16 hours         0.0.0.0:8080->8080/tcp                           shipyard-controller
4fb76868ce60        swarm:latest                   "/swarm j --addr 192…"   16 hours ago        Up 16 hours         2375/tcp                                         shipyard-swarm-agent
0eedb34ffd18        swarm:latest                   "/swarm m --replicat…"   16 hours ago        Up 16 hours         2375/tcp                                         shipyard-swarm-manager
54751b647576        shipyard/docker-proxy:latest   "/usr/local/bin/run"     16 hours ago        Up 16 hours         0.0.0.0:2375->2375/tcp                           shipyard-proxy
752d7adeb566        alpine                         "sh"                     16 hours ago        Up 16 hours                                                          shipyard-certs
030228a5adcb        microbox/etcd:latest           "/bin/etcd -addr 192…"   16 hours ago        Up 16 hours         0.0.0.0:4001->4001/tcp, 0.0.0.0:7001->7001/tcp   shipyard-discovery
cce83381bd72        rethinkdb                      "rethinkdb --bind all"   16 hours ago        Up 16 hours         8080/tcp, 28015/tcp, 29015/tcp                   shipyard-rethinkd

最后訪問http://192.168.3.141:8080,使用admin/shipyard用戶名和密碼登錄即可

如果想要修改web訪問端口,則操作如下:

[root@pre1 ~]# cat shipyard-deploy |grep 8080
    echo "  PORT: specify the listen port for the controller (default: 8080)"
SHIPYARD_PORT=${PORT:-8080}

比如將腳本中默認的8080端口改為80端口

[root@pre1 ~]# sed -i 's/8080/80/g' shipyard-deploy

然后重新部署即可

附:登錄頁面

進入之后的管理頁面

 

10.刪除Shipyard環境操作

[root@pre1 ~]# cat shipyard-deploy |ACTION=remove bash           
Removing Shipyard
 -> Removing Database
 -> Removing Discovery
 -> Removing Cert Volume
 -> Removing Proxy
 -> Removing Swarm Agent
 -> Removing Swarm Manager
 -> Removing Controller
Done

 查看驗證是否刪除

[root@pre1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

  

11.Shipyard添加其他節點主機

比如將172.16.60.220機器節點加入到上面的shipyard管理中.

則需要在被加入節點機器上如下操作:

1) 在被加入的節點上按照上面的最新地址下載shipyard-deploy

2) 執行下面操作 (注意下面etcd地址要寫成shipyard部署機的ip地址. 首次執行時會自動下載鏡像,需要等待一段時間)

[root@pre2 ~]# cat shipyard-deploy| ACTION=node DISCOVERY=etcd://192.168.3.141:4001 bash
Adding Node
 -> Starting Cert Volume
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine

….

-> Starting Swarm Agent
Node added to Swarm: 192.168.3.142

查看安裝好的shipyard

[root@pre2 ~]# docker ps
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
6acbc12d72bc        swarm:latest                   "/swarm j --addr 192…"   About an hour ago   Up About an hour    2375/tcp                 shipyard-swarm-agent
eabdf5e5d81b        swarm:latest                   "/swarm m --replicat…"   About an hour ago   Up About an hour    2375/tcp                 shipyard-swarm-manager
3a3d104b5918        shipyard/docker-proxy:latest   "/usr/local/bin/run"     About an hour ago   Up About an hour    0.0.0.0:2375->2375/tcp   shipyard-proxy
eb85858f6de6        alpine                         "sh"                     About an hour ago   Up About an hour                             shipyard-certs

注意,添加節點時,上面一鍵腳本需要運行在被添加的節點主機上,而不是shipyard部署節點的機器上.

 

然后登錄http://192.168.3.141:8080,在"容器管理"-"主機節點"中看到添加的節點信息了.

 

12.刪除節點機

[root@pre2 ~]# cat shipyard-deploy |ACTION=remove bash -s
Removing Shipyard
 -> Removing Database
 -> Removing Discovery
 -> Removing Cert Volume
 -> Removing Proxy
 -> Removing Swarm Agent
 -> Removing Swarm Manager
 -> Removing Controller
Done

 驗證是否刪除成功 

[root@pre2 ~]# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM