一、概述
成都創(chuàng)新互聯(lián)是專業(yè)的湟源網(wǎng)站建設(shè)公司,湟源接單;提供成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行湟源網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!Docker圖形頁(yè)面管理工具基本常用的有三種: DOCKER UI,Shipyard,Portainer。相對(duì)而言,Shipyard最強(qiáng)大,其次是Portainer,最后是Docker ui。
Shipyard(github)是建立在docker集群管理工具Citadel之上的可以管理容器、主機(jī)等資源的web圖形化工具,包括core和extension兩個(gè)版本,core即shipyard主要是把多個(gè) Docker host上的 containers 統(tǒng)一管理(支持跨越多個(gè)host),extension即shipyard-extensions添加了應(yīng)用路由和負(fù)載均衡、集中化日志、部署等;
Shipyard是在Docker Swarm實(shí)現(xiàn)對(duì)容器、鏡像、docker集群、倉(cāng)庫(kù)、節(jié)點(diǎn)進(jìn)行管理的web系統(tǒng)。
DockerUI和Shipyard功能
1、DockerUI的優(yōu)點(diǎn)
1)可以對(duì)運(yùn)行著的容器進(jìn)行批量操作
2)在容器網(wǎng)絡(luò)中-會(huì)顯示容器與容器間的網(wǎng)絡(luò)關(guān)系
3)在Volumes中顯示了所有掛載目錄
DockerUI一個(gè)致命的缺點(diǎn):不支持多主機(jī).試想一下,如果有N臺(tái)docker主機(jī)時(shí)-我就需要一臺(tái)臺(tái)的用dockerui進(jìn)行管理,想想都覺(jué)得麻煩。就單臺(tái)主機(jī)而言,dockerui是一款不錯(cuò)的管理工具。
2、Shipyard功能
是一個(gè)集成管理docker容器、鏡像、Registries的系統(tǒng),它可以簡(jiǎn)化對(duì)橫跨多個(gè)主機(jī)的Docker容器集群進(jìn)行管理. 通過(guò)Web用戶界面,你可以大致瀏覽相關(guān)信息,比如你的容器在使用多少處理器和內(nèi)存資源、在運(yùn)行哪些容器,還可以檢查所有集群上的事件日志。
其特性主要包括:
1)支持節(jié)點(diǎn)動(dòng)態(tài)集群,可擴(kuò)展節(jié)點(diǎn)的規(guī)模(swarm、etcd方案)
2)支持鏡像管理、容器管理、節(jié)點(diǎn)管理等功能
3)可視化的容器管理和監(jiān)控管理
4)在線容console終端
Shipyard幾個(gè)概念
1)engine
一個(gè)shipyard管理的docker集群可以包含一個(gè)或多個(gè)engine(引擎),一個(gè)engine就是監(jiān)聽(tīng)tcp端口的docker daemon。shipyard管理docker daemon、images、containers完全基于Docker API,不需要做其他的修改。另外,shipyard可以對(duì)每個(gè)engine做資源限制,包括CPU和內(nèi)存;因?yàn)門(mén)CP監(jiān)聽(tīng)相比Unix socket方式會(huì)有一定的安全隱患,所以shipyard還支持通過(guò)SSL證書(shū)與docker后臺(tái)進(jìn)程安全通信。
2)rethinkdb
RethinkDB是一個(gè)shipyard項(xiàng)目的一個(gè)docker鏡像,用來(lái)存放賬號(hào)(account)、引擎(engine)、服務(wù)密鑰(service key)、擴(kuò)展元數(shù)據(jù)(extension metadata)等信息,但不會(huì)存儲(chǔ)任何有關(guān)容器或鏡像的內(nèi)容。
Shipyard生態(tài)
shipyard是由shipyard控制器以及周圍生態(tài)系統(tǒng)構(gòu)成,以下按照deploy啟動(dòng)順序進(jìn)行介紹(下面幾個(gè)就是shipyard使用腳本安裝后,啟動(dòng)的幾個(gè)容器名)
1)RethinkDB
deploy首先啟動(dòng)的就是RethinkDB容器,shipyard采用RethinkDB作為數(shù)據(jù)庫(kù)來(lái)保存用戶等信息
2)Discovery
為了使用Swarm,我們需要一個(gè)外部的密鑰值存儲(chǔ)群容器,shipyard默認(rèn)是采用了etcd。
3)shipyard_certs
證書(shū)管理容器,實(shí)現(xiàn)證書(shū)驗(yàn)證功能
4)Proxy
默認(rèn)情況下,Docker引擎只監(jiān)聽(tīng)Socket,我們可以重新配置引擎使用TLS或者使用一個(gè)代理容器,轉(zhuǎn)發(fā)請(qǐng)求從TCP到Docker監(jiān)聽(tīng)的UNIX Socket。
5)Swarm Manager
Swarm管理器
6)Swarm Agent
Swarm代理,運(yùn)行在每個(gè)節(jié)點(diǎn)上。
7)Controller
shipyard控制器,Remote API的實(shí)現(xiàn)和web的實(shí)現(xiàn)。
二、Shipyard搭建
1、環(huán)境準(zhǔn)備
(1)系統(tǒng)版本
CentOS Linux release 7.5.1804 (Core)
(2)網(wǎng)卡信息
inet 172.160.45.128 netmask 255.255.255.0 broadcast 172.160.45.25
(3)關(guān)閉防火墻和seliunx服務(wù)
(4)docker-ce安裝
Docker version 18.06.3-ce, build d7080c1
2、下載相關(guān)依賴鏡像(這些鏡像如果不提前下載,則在下面一鍵安裝部署時(shí)會(huì)自動(dòng)下載,不過(guò)要等待一段時(shí)間. 所以最好提前下載,一鍵部署時(shí)就很快了)
# docker pull rethinkdb
# docker pull microbox/etcd
# docker pull shipyard/docker-proxy
# docker pull swarm
# docker pull dockerclub/shipyard
3.1、官方安裝:
如何安裝shipyard中文版
curl http://dockerclub.net/deploy | bash -s
3.2、執(zhí)行腳本
# sh shipyard-deploy
部署后,可以看到相應(yīng)的shipyard容器已正常運(yùn)行
最后訪問(wèn)http://172.160.45.128:8080,使用admin/shipyard用戶名和密碼登錄即可.
如果想要修改web訪問(wèn)端口,則操作如下:
# cat shipyard-deploy |grep 8080
echo " PORT: specify the listen port for the controller (default: 8080)"
SHIPYARD_PORT=${PORT:-8080}
比如將腳本中默認(rèn)的8080端口改為80端口
# sed -i 's/8080/80/g' shipyard-deploy
然后重新部署即可
4.1、刪除Shipyard環(huán)境操作
# cat shipyard-deploy |ACTION=remove bash
4.2如何刪除shipyard中文版
curl http://dockerclub.net/deploy | ACTION =remove bash -s
5、Shipyard添加其他節(jié)點(diǎn)主機(jī)(centos7.X系統(tǒng)的主機(jī))的操作記錄
比如將172.16.60.220機(jī)器節(jié)點(diǎn)加入到上面的shipyard管理中.
則需要在被加入節(jié)點(diǎn)機(jī)器上如下操作:
1) 在被加入的節(jié)點(diǎn)上按照上面的最新地址下載shipyard-deploy
# chmod +x shipyard-deploy
2) 執(zhí)行下面操作 (注意下面etcd地址要寫(xiě)成shipyard部署機(jī)的ip地址. 首次執(zhí)行時(shí)會(huì)自動(dòng)下載鏡像,需要等待一段時(shí)間)
# cat shipyard-deploy | ACTION=node DISCOVERY=etcd://172.160.45.128:4001 bash
注意,添加節(jié)點(diǎn)時(shí),上面一鍵腳本需要運(yùn)行在被添加的節(jié)點(diǎn)主機(jī)上,而不是shipyard部署節(jié)點(diǎn)的機(jī)器上;然后登錄http://172.160.45.128:8080,在"容器管理"-"主機(jī)節(jié)點(diǎn)"中看到添加的節(jié)點(diǎn)信息了.
補(bǔ)充知識(shí):
Nginx做域名轉(zhuǎn)發(fā): 在nginx配置文件http塊里添加如下代碼:
upstream shipyard {
server 172.160.45.128:8080;
}
server {
listen 80;
server_name kevin.shipyard.com;
location / {
proxy_pass http://shipyard;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
以下三行代碼為nginx做WebSockets跳轉(zhuǎn)否則,在執(zhí)行shell時(shí)會(huì)報(bào)400錯(cuò)誤
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
利用shipyard部署swarm集群及管理容器, 則swarm-manage為shipyard部署機(jī), 其他swarm-node節(jié)點(diǎn)則為添加到shipyard管理中的節(jié)點(diǎn).
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。