日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

harbor可視化私有鏡像倉庫環(huán)境及服務(wù)部署示例_docker

作者:Tiamon_ ? 更新時間: 2022-06-13 編程語言

harbor 簡介

在實際生產(chǎn)運(yùn)維中,往往需要把鏡像發(fā)布到幾十、上百或更多的節(jié)點(diǎn)上。這時單臺 Docker 主機(jī)上鏡像已無法滿足,項目越來越多,鏡像越來越多,都放到一臺 Docker 主機(jī)上是不行的,我們需要一個鏡像Git倉庫一樣系統(tǒng)來統(tǒng)一管理鏡像。這里介紹的是一個企業(yè)級鏡像倉庫Harbor,將作為我們?nèi)萜髟破脚_的鏡像倉庫中心。

Harbor 是有 VMware 工資開源的容器鏡像倉庫。事實上,Harbor 是在Docker Rgestry 上進(jìn)行了相應(yīng)的企業(yè)擴(kuò)展,從而獲得了更加廣泛的應(yīng)用,這些新的企業(yè)級特性包括:管理用戶界面,基于角色的訪問控制,AD/LDAP 集成以及審計日志等,足以滿足基本企業(yè)需求。

Harbor 和 Registry 的比較

Harbor 和 Registry 都是 Docker 的鏡像倉庫,但是 Harbor 作為更多企業(yè)的選擇,是因為相比較于 Registry 來說,它具有很多的優(yōu)勢。

  • 提供分層傳輸機(jī)制,優(yōu)化網(wǎng)絡(luò)傳輸

Docker 鏡像是分層的,而如果每次傳輸都使用全量文件(所以用FTP的方式不適合),顯然不經(jīng)濟(jì)。必須提供識別分層傳輸?shù)臋C(jī)制,以UUID 為標(biāo)識,確定傳輸?shù)膶ο蟆?/p>

  • 提供 WEB 界面,優(yōu)化用戶體驗

只用鏡像的名字來進(jìn)行上傳下載顯然很不方便,需要有一個用戶界面可以支持登錄、搜索功能,包括區(qū)分公有、私有鏡像

  • 支持水平擴(kuò)展集群

當(dāng)前用戶對鏡像的上傳下載操作集中在某服務(wù)器,需要對相應(yīng)的訪問壓力作分解。

  • 良好的安全機(jī)制

企業(yè)中的開發(fā)團(tuán)隊有很多不同的職位,對于不同的職位人員,分配不同的權(quán)限,具有更好的安全性

Harbor 提供了基于角色的訪問控制機(jī)制,并通過項目來對鏡像進(jìn)行組織和訪問權(quán)限的控制。kubernetes 中通過 namespace 來對資源進(jìn)行隔離,在企業(yè)級應(yīng)用場景中,通過將兩者進(jìn)行結(jié)合可以有效將 kubernetes 使用的鏡像資源進(jìn)行管理和訪問控制,增強(qiáng)鏡像使用的安全性。尤其在多租戶場景下,可以通過租戶、namespace 和項目相結(jié)合的方式來實現(xiàn)對租戶鏡像資源的管理。
?

harbor 案例演示

環(huán)境準(zhǔn)備

準(zhǔn)備兩臺服務(wù)器,且均已部署 docker 服務(wù)

主機(jī)名 服務(wù) IP
harbor-client 客戶端(用于上傳鏡像) 192.168.117.130
harbor-server 服務(wù)端(用于存儲鏡像) 192.168.117.131

服務(wù)部署

harbor-server 部署

#下載 epel-release 源
	[root@harbor-server ~]# yum install -y epel-release
#下載 python 軟件包管理系統(tǒng)
	[root@harbor-server ~]# yum install -y python-pip
#更新 pip 安裝包
	[root@harbor-server ~]# pip install --upgrade pip
#安裝 docker-compose (docker 的編排工具)
	[root@harbor-server ~]# pip install docker-compose
#下載 harbor 安裝包并解壓(github 上下載)
	[root@harbor-server ~]# yum install -y wget
	[root@harbor-server ~]# wget https://github.com/goharbor/harbor/releases/download/v2.1.1/harbor-offline-installer-v2.1.1.tgz
	[root@harbor-server ~]# tar xf harbor-offline-installer-v2.1.1.tgz 
#修改 harbor 的配置文件
	[root@harbor-server ~]# mv harbor/harbor.yml.tmpl /harbor/harbor.yml
	[root@harbor-server ~]# vim harbor/harbor.yml
	hostname: 192.168.117.131 #本機(jī) IP
	#注釋掉以下內(nèi)容
	# https related config
	# https:
	  # # https port for harbor, default is 443
	  # port: 443
	  # # The path of cert and key files for nginx
	  # certificate: /your/certificate/path
	  # private_key: /your/private/key/path
#執(zhí)行 harbor 安裝腳本
	[root@localhost harbor]# ./harbor/install.sh 
	……略……
	? ----Harbor has been installed and started successfully.----
#查看 harbor 的用戶和密碼
	[root@localhost ~]# cat harbor/harbor.yml | grep admin
	# The IP address or hostname to access admin UI and registry service.
	# The initial password of Harbor admin
	# Remember Change the admin password from UI after launching Harbor.
	harbor_admin_password: Harbor12345

瀏覽器訪問 http://192.168.117.131:80 并登錄 harbor

在這里插入圖片描述

上傳本地鏡像至harbor

新建項目

在這里插入圖片描述

填寫項目名稱、分配存儲容量,該項目訪問級別如果沒有公開,在上傳鏡像時需要先登錄 harbor

在這里插入圖片描述

在這里插入圖片描述

harbor-client 上傳鏡像到 harbor

#修改 daemon.json 配置文件
	[root@harbor-client ~]# vim /etc/docker/daemon.json 
	{
	  "registry-mirrors": ["https://3290299n.mirror.aliyuncs.com"],
	  #注:上下兩行用 “,” 分割
	  #添加下面的參數(shù)即可,docker-server 端IP和端口
	  "insecure-registries":["192.168.117.131:80"]
	}
#重啟 docker 服務(wù) 
	[root@harbor-client ~]# systemctl restart docker
#修改 tomcat 鏡像名稱:項目名稱/鏡像名稱:標(biāo)簽
	[root@harbor-client ~]# docker tag tomcat 192.168.117.131:80/tomcat/tomcat:harbor
#項目 tomcat 沒有公開所以先登錄 harbor,在上傳鏡像
	[root@harbor-client ~]# docker login 192.168.117.131:80
	Username: admin
	Password: Harbor12345
	[root@harbor-client ~]# docker push 192.168.117.131:80/tomcat/tomcat:harbor

瀏覽器訪問 harbor,查看 tomcat 項目下是否有剛剛上傳的鏡像

在這里插入圖片描述

拉去 harbor 上的 tomcat 鏡像至本地

瀏覽器訪問 harbor,點(diǎn)擊 tomcat 項目、tomcat鏡像,復(fù)制拉去命令在本地執(zhí)行即可

在這里插入圖片描述

#項目 tomcat 沒有公開所以先登錄 harbor,在拉取鏡像
	[root@harbor-client ~]# docker login 192.168.117.131:80
	Username: admin
	Password: Harbor12345
#鏡像拉去成功
	[root@harbor-client ~]# docker pull 192.168.117.131:80/tomcat/tomcat@sha256:d9097a2878b148ddbdd69346dd902b55be74cf4271e1ac45a3bfb5273f93c181
	sha256:d9097a2878b148ddbdd69346dd902b55be74cf4271e1ac45a3bfb5273f93c181: Pulling from tomcat/tomcat
	Digest: sha256:d9097a2878b148ddbdd69346dd902b55be74cf4271e1ac45a3bfb5273f93c181
	Status: Downloaded newer image for 192.168.117.131:80/tomcat/tomcat@sha256:d9097a2878b148ddbdd69346dd902b55be74cf4271e1ac45a3bfb5273f93c181
	192.168.117.131:80/tomcat/tomcat@sha256:d9097a2878b148ddbdd69346dd902b55be74cf4271e1ac45a3bfb5273f93c181
#查看鏡像
	[root@harbor-client ~]# docker images
	REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
	tomcat                             latest              6fa48e047721        10 months ago       507MB
	192.168.117.131:80/tomcat/tomcat   <none>              6fa48e047721        10 months ago       507MB

原文鏈接:https://blog.csdn.net/Tiamon_/article/details/109499328

欄目分類
最近更新