一、概述
Harbor 是 VMware 公司開源的企業(yè)級 Docker Registry 項目,其目標是幫助用戶迅速搭建一個企業(yè)級的 Docker Registry 倉庫服務(wù)。它以Docker公司開源的Registry為基礎(chǔ),提供了管理 UI?;诮巧脑L問控制(Role Based AccessControl)、AD/LDAP集成、以及審計日志 (Auditlogging) 等企業(yè)用戶需求的功能。通過添加一些企業(yè)必需的功能特性,例如安全、標識和管理等,擴展了開源Docker Distribution。作為一個企業(yè)級私有Registry服務(wù)器,Harbor提供了更好的性能和安全,以提升用戶使用 Registry 構(gòu)建和運行環(huán)境傳輸鏡像的效率。
Harbor 的優(yōu)勢
1、基于角色控制:用戶和倉庫都是基于項目進行組織的,而用戶基于項目可以擁有不同的權(quán)限。
2、基于鏡像的復(fù)制策略: 鏡像可以在多個 Harbor 實例之間進行復(fù)制(同步)。適用于負載平衡、高可用性、多數(shù)據(jù)中心、混合和多云場景。
3、支持 LDAP / AD:Harbor 與現(xiàn)有的企業(yè) LDAP / ADA 集成,用于用戶認證和管理。
4、圖像刪除和垃圾收集:鏡像可以被刪除,也可以回收鏡像占用的空間。
5、圖形 UI:用戶可以輕松瀏覽、搜索鏡像倉庫以及對項目進行管理。
6、審計: 對存儲庫的所有操作都進行記錄。
7、RESTful API:用于大多數(shù)管理操作的 RESTful API,易于與外部系統(tǒng)集成。
二、Harbor 架構(gòu)構(gòu)成
1、Proxy:Harbor 的 Registry、UI、token 等服務(wù)。通過一個前置的反向代理統(tǒng)一接收瀏覽器Docker 客戶端的請求,并將請求轉(zhuǎn)發(fā)給后端不同的服務(wù)。
2、Registry:負責(zé)儲存Docker鏡像,并處理 Docker push/pull 命令。由于要對用戶進行訪問控制,即不同用戶對Docker image有不同的讀寫權(quán)限,Registry會指向一個 token服務(wù),強制用戶的每次 Docker pull/push 請求都要攜帶一個合法的token,Registry會通過公鑰對 token 進行解密驗證。
3、Core services 這是 Harbor 的核心功能,主要提供以下服務(wù):
????????①、UI(Harbor-ui):提供圖形化界面,幫助用戶管理 Registry 上的鏡像(image), 并對用戶進行授權(quán)。
????????②、Webhook:為了及時獲取 registry 上image狀態(tài)變化的情況,在Registry上配置webhook,把狀態(tài)變化傳遞給UI模塊。
????????③、Token 服務(wù):負責(zé)根據(jù)用戶權(quán)限給每個Docker push/pull命令簽發(fā)token.Docker客戶端向 Regi?stry服務(wù)發(fā)起的請求,如果不包含token,會被重定向到這里,獲得token后再重新向 Registry進行請求。
4、Database(Harbor-db):為 core?services 提供數(shù)據(jù)庫服務(wù),負責(zé)儲存用戶權(quán)限、審計日志、Docker image 分組信息等數(shù)據(jù)。
5、Log collector(Harbor-log):為了幫助監(jiān)控 Harbor 運行,負責(zé)收集其他組件的log,供日后進行分析。
????????????????????????????????????????????????????
?文章來源地址http://www.zghlxwxcb.cn/news/detail-639353.html
三、準備工作
1、三臺主機提前安裝docker-ce
2、master、slave安裝docker-compose
3、關(guān)閉防火墻
4、最好是有火狐瀏覽器(測試的時候用其他瀏覽器可能會報錯)
四、安裝部署
1、搭建nfs服務(wù)端
mkdir -p /data/nfs 創(chuàng)建共享目錄
yum -y install nfs-utils rpcbind 安裝軟件
cat <<END>> /etc/exports
/data/nfs 192.168.77.0/24(rw,no_root_squash) 映射
systemctl start rpcbind 啟動軟件
systemctl start nfs
主從服務(wù)器操作
yum -y install nfs-utils rpcbind
mkdir -p /data/storage
mount 192.168.77.16:/data/nfs /data/storage
?在nfs端操作
準備共享容器
docker pull redis:alpine
docker run -dit --name redis_test -p 6379:6379 redis:alpine
docker pull postgres
docker run -dit --name postgres_test -p 5432:5432 -e POSTGRES_PASSWORD=123123 postgres
docker pull mysql:5.6
docker run -dit --name mysql_test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123123 mysql:5.6 --character-set-server=utf8
docker rename postgres_test clair_db
docker rename mysql_test harbor_db
docker rename redis_test session
2、Harbor部署
tar xf harbor-offline-installer-v1.6.1.tgz
cd harbor/
tree ha
vim ha/initial-registry.sql 修改需要導(dǎo)入的數(shù)據(jù)庫文件,不然會報錯
CREATE DATABASE registry CHARACTER SET utf8;
?
yum -y install mysql
mysql -uroot -p123123 -h192.168.77.16 -P3306
source ha/initial-registry.sql
vim ha/docker-compose.yml
19行 - /data/storage:/storage:z #修改成我們的nfs共享目錄
vim harbor.cfg
7 hostname = 192.168.77.123
?
sh install.sh
?出現(xiàn)以下字段就表示成功了
?再查看容器確認一下都是UP
?登錄鏡像倉庫,默認用戶是admin 密碼是Harbor12345
?
五、測試
創(chuàng)建一個新項目myproject-crushlinux?
docker login -u admin -p Harbor12345 http://127.0.0.1 登錄倉庫 默認是80端口
docker pull buysbox 下載一個小一點的鏡像測試
docker tag busybox 127.0.0.1/myproject-crushlinux/busybox:syh 打標簽
docker push 127.0.0.1/myproject-crushlinux/busybox:syh 上傳鏡像
?到倉庫查看
docker logout 192.168.77.123 退出倉庫
六、客戶端上傳鏡像
vim /usr/lib/systemd/system/docker.service
13行 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.77.123
重啟后登錄
systemctl daemon-reload
systemctl restart docker
docker login -u admin -p Harbor12345 192.168.77.123
docker pull busybox 下載一個小一點的鏡像進行測試
docker tag busybox 192.168.77.123/myproject-crushlinux/busybox:syh2
docker push 192.168.77.123/myproject-crushlinux/busybox:syh2
?查看
?七、Harbor 日常操作管理
1、通過 Harbor Web 創(chuàng)建項目?
點擊“+項目”時按規(guī)范填寫項目名稱。項目級別:私有即不勾選(勾選后會變?yōu)?公開")。如果設(shè)置為公共倉庫,則所有人對此項目下的鏡像擁有讀權(quán)限,命令行中不需要執(zhí)行"Docker login"即可下載鏡像,鏡像操作與Docker hub 一致。
2、創(chuàng)建 Harbor 用戶?
①、創(chuàng)建用戶并分配權(quán)限
系統(tǒng)管理->用戶管理->創(chuàng)建用戶,填寫用戶名為“crushlinux-user01”,郵箱為 crushlinux-user01@crushlinux.cn,全名為“harbor?admin”,密碼為“A123a456”,注釋為“管理員”。
?
?
②、添加項目成員
項目->?myproject-crushlinux->成員->+成員,填寫上述創(chuàng)建的用戶并分配角色為“項目管理員”。
可對成員角色進行變更或者刪除操作。
以上就是Harbor企業(yè)鏡像倉庫部署
如有錯誤歡迎各位大佬批評指正,我們共同進步
?文章來源:http://www.zghlxwxcb.cn/news/detail-639353.html
?
?
?
到了這里,關(guān)于小白到運維工程師自學(xué)之路 第六十七集(Harbor企業(yè)鏡像倉庫部署)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!