在實(shí)際生產(chǎn)中,容器鏡像需要放在本地,本地需要建立一個容器鏡像倉庫存放相關(guān)的鏡像,并且能夠根據(jù)不同賬號設(shè)置不同的鏡像使用權(quán)限,另外,這個倉庫最好還能通過web管理界面能夠很好的進(jìn)行管理,比如設(shè)置權(quán)限、刪除鏡像、管理鏡像空間等等 。
創(chuàng)新互聯(lián)公司是專業(yè)的揭西網(wǎng)站建設(shè)公司,揭西接單;提供網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行揭西網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!Habor是由VMWare公司開源的容器鏡像倉庫。官方地址:https://vmware.github.io/harbor/cn/
Harbor主要功能
1. 基于角色訪問控制(RBAC)
在企業(yè)中,通常有不同的開發(fā)團(tuán)隊(duì)負(fù)責(zé)不同的項(xiàng)目,鏡像像代碼一樣,每個人角色不同需求也不同,因此就需要訪問權(quán)限控制,根據(jù)角色分配相應(yīng)的權(quán)限。
例如,開發(fā)人員需要對項(xiàng)目構(gòu)建這就用到讀寫權(quán)限(push/pull),測試人員只需要讀權(quán)限(pull),運(yùn)維一般管理鏡像倉庫,具備權(quán)限分配能力,項(xiàng)目經(jīng)理具有所有權(quán)限。
在Harbor中,有三種角色:
Guest:對指定項(xiàng)目只讀權(quán)限
Developer:開發(fā)人員,讀寫項(xiàng)目的權(quán)限
Admin:項(xiàng)目管理,所有權(quán)限
Anonymous:當(dāng)用戶未登錄時,該用戶視為匿名用戶。匿名用戶不能訪問私有項(xiàng)目,只能訪問公開項(xiàng)目
2. 鏡像復(fù)制
可以將倉庫中的鏡像同步到遠(yuǎn)程的Harbor,類似于MySQL主從同步功能。
3. LDAP
Harbor支持LDAP認(rèn)證,可以很輕易接入已有的LDAP。
4. 鏡像刪除和空間回收
Harbor支持在Web刪除鏡像,回收無用的鏡像,釋放磁盤空間。
5. 圖形頁面管理
用戶很方面搜索鏡像及項(xiàng)目管理。
6. 審計(jì)
對倉庫的所有操作都有記錄。
7. REST API
完整的API,方便與外部集成
組件 | 功能 |
---|---|
harbor-adminserver | 配置管理中心 |
harbor-db | Mysql數(shù)據(jù)庫 |
harbor-jobservice | 負(fù)責(zé)鏡像復(fù)制 |
harbor-log | 記錄操作日志 |
harbor-ui | Web管理頁面和API |
nginx | 前端代理,負(fù)責(zé)前端頁面和鏡像上傳/下載轉(zhuǎn)發(fā) |
redis | 會話 |
registry | 鏡像存儲 |
Harbor部署:
硬件、軟件、端口要求如下,以下圖片來自網(wǎng)絡(luò):
我使用的是2核CPU、4G內(nèi)存、40G的pve虛擬機(jī)一臺,如下配置:
Harbor安裝有3種方式:
在線安裝:從Docker Hub下載Harbor相關(guān)鏡像
離線安裝:安裝包包含部署的相關(guān)鏡像
OVA安裝程序:當(dāng)用戶具有vCenter環(huán)境時,使用此安裝程序,在部署OVA后啟動Harbor
這里采用離線安裝,首先下載離線安裝包:https://github.com/vmware/harbor/releases
HTTP方式部署
基本配置:
# tar xzvf harbor-offline-installer-v1.7.1.tgz # cd harbor # vi harbor.cfg hostname = 192.168.1.44 # IP地址或者域名訪問 ui_url_protocol = http harbor_admin_password = 123456 # Web登錄密碼 準(zhǔn)備配置文件: # ./prepare 安裝并啟動Harbor: ./install.sh 會提示需要安裝docker 和 docker-compose # yum install docker docker-client docker-common 其中docker-compose需要用到epel源: # yum install epel-release -y # yum install -y docker-compose 再次執(zhí)行install.sh安裝完成后:
查看運(yùn)行狀態(tài):
[root@localhost harbor]# docker-compose ps Name Command State Ports ------------------------------------------------------------------------------------------- harbor-adminserver /harbor/start.sh Up harbor-core /harbor/start.sh Up harbor-db /entrypoint.sh postgres Up 5432/tcp harbor-jobservice /harbor/start.sh Up harbor-log /bin/sh -c /usr/local/bin/ ... Up 127.0.0.1:1514->10514/tcp harbor-portal nginx -g daemon off; Up 80/tcp nginx nginx -g daemon off; Up 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp redis docker-entrypoint.sh redis ... Up 6379/tcp registry /entrypoint.sh /etc/regist ... Up 5000/tcp registryctl /harbor/start.sh Up登錄web界面:
賬號 admin,密碼就是在harbor.cfg配置文件里面設(shè)置的123456
接下來就是簡單使用,可以看到,harbor方便了管理,一般3類用戶就夠了,進(jìn)行一個簡單測試,新建一個開發(fā)用戶,然將這個開發(fā)用戶綁定到library項(xiàng)目,用這個用戶登陸harbor推送和下載鏡像。
具體的建用戶過程就不詳細(xì)寫了,新建一個用戶ywb,登陸,
系統(tǒng)會提示推送鏡像需要運(yùn)行的命令,還是很人性化的。
在客戶端執(zhí)行:
docker login 192.168.1.44
會報(bào)錯https://192.168.1.44 connection refuse ,是因?yàn)閐ocker 默認(rèn)使用的是https連接,我們上面使用的是http安裝,需要修改 /etc/docker/daemon.json文件,加入如下內(nèi)容:
{"insecure-registries":["192.168.1.44:80"]}
或者,在 /etc/sysconfig/docker 配置文件的 OPTIONS 選項(xiàng)中增加一個選項(xiàng):
--insecure-registry=192.168.1.44
之后對docker進(jìn)行重啟:
systemctl restart docker
測試過程:
1、下載一個tomcat 鏡像:
docker pull tomcat
2、對這個鏡像進(jìn)行標(biāo)記:
docker tag docker.io/tomcat 192.168.1.44/library/tomcat
3、登錄harbor這個registry:
docker login 192.168.1.44
輸入上面創(chuàng)建的賬號密碼。
4、上傳這個鏡像:
docker push 192.168.1.44/library/tomcat
最后使用個人賬號登錄web界面,可以看到鏡像成功上傳:
總結(jié):
Harbor的安裝使用都是很方便的,部署方式本身也是通過docker和容器編排docker-compose 實(shí)現(xiàn) ,主要解決了局域網(wǎng)內(nèi)的容器鏡像管理問題。
這里沒有使用https的方式部署,使用的是http方式,其中需要注意客戶端docker中需要配置對“非安全” http的支持,加入--inscure-registry 參數(shù)的支持。
Harbor產(chǎn)品本身解決了本地局域網(wǎng)內(nèi)部集中管理容器鏡像的問題,如果是生產(chǎn)環(huán)境,可以考慮再加入同步復(fù)制的功能以確保數(shù)據(jù)的安全性,這里就不展開說,我也沒用到,用到的時候再說。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。