溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

容器鏡像倉(cāng)庫(kù)Harbor安裝部署及簡(jiǎn)單使用

發(fā)布時(shí)間:2020-05-25 15:54:53 來(lái)源:網(wǎng)絡(luò) 閱讀:2179 作者:余偉兵 欄目:云計(jì)算

容器鏡像倉(cāng)庫(kù)Harbor安裝部署及簡(jiǎn)單使用 容器鏡像倉(cāng)庫(kù)Harbor安裝部署及簡(jiǎn)單使用

 上面左邊是我的個(gè)人微 信,如需進(jìn)一步溝通,請(qǐng)加好 友。  右邊是我的公眾號(hào)“Openstack私有云”,如有興趣,請(qǐng)關(guān)注。


    在實(shí)際生產(chǎn)中,容器鏡像需要放在本地,本地需要建立一個(gè)容器鏡像倉(cāng)庫(kù)存放相關(guān)的鏡像,并且能夠根據(jù)不同賬號(hào)設(shè)置不同的鏡像使用權(quán)限,另外,這個(gè)倉(cāng)庫(kù)最好還能通過(guò)web管理界面能夠很好的進(jìn)行管理,比如設(shè)置權(quán)限、刪除鏡像、管理鏡像空間等等 。

    Habor是由VMWare公司開(kāi)源的容器鏡像倉(cāng)庫(kù)。官方地址:https://vmware.github.io/harbor/cn/

    

    Harbor主要功能 


    1. 基于角色訪(fǎng)問(wèn)控制(RBAC)

    在企業(yè)中,通常有不同的開(kāi)發(fā)團(tuán)隊(duì)負(fù)責(zé)不同的項(xiàng)目,鏡像像代碼一樣,每個(gè)人角色不同需求也不同,因此就需要訪(fǎng)問(wèn)權(quán)限控制,根據(jù)角色分配相應(yīng)的權(quán)限。

例如,開(kāi)發(fā)人員需要對(duì)項(xiàng)目構(gòu)建這就用到讀寫(xiě)權(quán)限(push/pull),測(cè)試人員只需要讀權(quán)限(pull),運(yùn)維一般管理鏡像倉(cāng)庫(kù),具備權(quán)限分配能力,項(xiàng)目經(jīng)理具有所有權(quán)限。

在Harbor中,有三種角色:


容器鏡像倉(cāng)庫(kù)Harbor安裝部署及簡(jiǎn)單使用

    Guest:對(duì)指定項(xiàng)目只讀權(quán)限

    Developer:開(kāi)發(fā)人員,讀寫(xiě)項(xiàng)目的權(quán)限

    Admin:項(xiàng)目管理,所有權(quán)限

    Anonymous:當(dāng)用戶(hù)未登錄時(shí),該用戶(hù)視為匿名用戶(hù)。匿名用戶(hù)不能訪(fǎng)問(wèn)私有項(xiàng)目,只能訪(fǎng)問(wèn)公開(kāi)項(xiàng)目 


    2. 鏡像復(fù)制

    

    可以將倉(cāng)庫(kù)中的鏡像同步到遠(yuǎn)程的Harbor,類(lèi)似于MySQL主從同步功能。

    

    3. LDAP

    

    Harbor支持LDAP認(rèn)證,可以很輕易接入已有的LDAP。

    

    4. 鏡像刪除和空間回收

    

    Harbor支持在Web刪除鏡像,回收無(wú)用的鏡像,釋放磁盤(pán)空間。

    

    5. 圖形頁(yè)面管理

    

    用戶(hù)很方面搜索鏡像及項(xiàng)目管理。

    

    6. 審計(jì)

    

    對(duì)倉(cāng)庫(kù)的所有操作都有記錄。

    

    7. REST API

    

    完整的API,方便與外部集成


Harbor組件

組件功能
harbor-adminserver配置管理中心
harbor-dbMysql數(shù)據(jù)庫(kù)
harbor-jobservice負(fù)責(zé)鏡像復(fù)制
harbor-log記錄操作日志
harbor-uiWeb管理頁(yè)面和API
nginx前端代理,負(fù)責(zé)前端頁(yè)面和鏡像上傳/下載轉(zhuǎn)發(fā)
redis會(huì)話(huà)
registry鏡像存儲(chǔ)

    

Harbor部署


硬件、軟件、端口要求如下,以下圖片來(lái)自網(wǎng)絡(luò):

容器鏡像倉(cāng)庫(kù)Harbor安裝部署及簡(jiǎn)單使用

    我使用的是2核CPU、4G內(nèi)存、40G的pve虛擬機(jī)一臺(tái),如下配置:

容器鏡像倉(cāng)庫(kù)Harbor安裝部署及簡(jiǎn)單使用


    

    Harbor安裝有3種方式:

    在線(xiàn)安裝:從Docker Hub下載Harbor相關(guān)鏡像

    離線(xiàn)安裝:安裝包包含部署的相關(guān)鏡像

    OVA安裝程序:當(dāng)用戶(hù)具有vCenter環(huán)境時(shí),使用此安裝程序,在部署OVA后啟動(dòng)Harbor

    

    這里采用離線(xiàn)安裝,首先下載離線(xiàn)安裝包:https://github.com/vmware/harbor/releases

容器鏡像倉(cāng)庫(kù)Harbor安裝部署及簡(jiǎn)單使用

HTTP方式部署


基本配置:

# tar xzvf harbor-offline-installer-v1.7.1.tgz 
# cd harbor
# vi harbor.cfg
hostname = 192.168.1.44   # IP地址或者域名訪(fǎng)問(wèn)
ui_url_protocol = http
harbor_admin_password = 123456  # Web登錄密碼
準(zhǔn)備配置文件:
# ./prepare
安裝并啟動(dòng)Harbor:
./install.sh
會(huì)提示需要安裝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

安裝完成后:

容器鏡像倉(cāng)庫(kù)Harbor安裝部署及簡(jiǎn)單使用


查看運(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界面:

容器鏡像倉(cāng)庫(kù)Harbor安裝部署及簡(jiǎn)單使用


賬號(hào) admin,密碼就是在harbor.cfg配置文件里面設(shè)置的123456 

容器鏡像倉(cāng)庫(kù)Harbor安裝部署及簡(jiǎn)單使用


    接下來(lái)就是簡(jiǎn)單使用,可以看到,harbor方便了管理,一般3類(lèi)用戶(hù)就夠了,進(jìn)行一個(gè)簡(jiǎn)單測(cè)試,新建一個(gè)開(kāi)發(fā)用戶(hù),然將這個(gè)開(kāi)發(fā)用戶(hù)綁定到library項(xiàng)目,用這個(gè)用戶(hù)登陸harbor推送和下載鏡像。

    具體的建用戶(hù)過(guò)程就不詳細(xì)寫(xiě)了,新建一個(gè)用戶(hù)ywb,登陸,

容器鏡像倉(cāng)庫(kù)Harbor安裝部署及簡(jiǎn)單使用

    系統(tǒng)會(huì)提示推送鏡像需要運(yùn)行的命令,還是很人性化的。

    在客戶(hù)端執(zhí)行:

    docker login 192.168.1.44

    會(huì)報(bào)錯(cuò)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)中增加一個(gè)選項(xiàng):

    --insecure-registry=192.168.1.44 

    之后對(duì)docker進(jìn)行重啟:

    systemctl restart docker


    測(cè)試過(guò)程:

    1、下載一個(gè)tomcat 鏡像:   

    docker pull tomcat

    2、對(duì)這個(gè)鏡像進(jìn)行標(biāo)記:

    docker tag docker.io/tomcat 192.168.1.44/library/tomcat

    3、登錄harbor這個(gè)registry: 

    docker login 192.168.1.44

    輸入上面創(chuàng)建的賬號(hào)密碼。

    4、上傳這個(gè)鏡像:

    docker push 192.168.1.44/library/tomcat

    

    最后使用個(gè)人賬號(hào)登錄web界面,可以看到鏡像成功上傳:

    容器鏡像倉(cāng)庫(kù)Harbor安裝部署及簡(jiǎn)單使用


總結(jié):

    Harbor的安裝使用都是很方便的,部署方式本身也是通過(guò)docker和容器編排docker-compose 實(shí)現(xiàn) ,主要解決了局域網(wǎng)內(nèi)的容器鏡像管理問(wèn)題。

    這里沒(méi)有使用https的方式部署,使用的是http方式,其中需要注意客戶(hù)端docker中需要配置對(duì)“非安全” http的支持,加入--inscure-registry  參數(shù)的支持。


    Harbor產(chǎn)品本身解決了本地局域網(wǎng)內(nèi)部集中管理容器鏡像的問(wèn)題,如果是生產(chǎn)環(huán)境,可以考慮再加入同步復(fù)制的功能以確保數(shù)據(jù)的安全性,這里就不展開(kāi)說(shuō),我也沒(méi)用到,用到的時(shí)候再說(shuō)。

    

    


    

    

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI