Harbor高可用配置及倉庫使用介紹
一、Harbor 簡介
Harbor 是由 VMware 公司使用 Go 語言開發(fā),主要就是用于存放鏡像使用,同時(shí)我們還可以通過 Web 界面來對存放的鏡像進(jìn)行管理。并且 Harbor 提供的功能有:基于角色的訪問控制,鏡像遠(yuǎn)程復(fù)制同步,以及審計(jì)日志等功能。官方文檔
1.Harbor 功能介紹
1)基于角色的訪問控制: 我們可以通過項(xiàng)目來對用戶進(jìn)行權(quán)限劃分,項(xiàng)目中可以包含多個(gè)鏡像。
2)審計(jì)管理: 我們可以在用戶審計(jì)管理中,找到我們所有對鏡像倉庫做的操作。
3)鏡像復(fù)制: 我們可以通過配置,使在兩臺 Harbor 服務(wù)器間實(shí)現(xiàn)鏡像同步。
4)漏洞掃描: Harbor 會定期對倉庫中的鏡像進(jìn)行掃描,并進(jìn)行策略檢查,以防止部署出易受到攻擊的鏡像。
2.Harbor 高可用方式
目前 Harbor 最常見的高可用方式有兩種,分別是:
1)安裝兩臺 Harbor 倉庫,他們共同使用一個(gè)存儲(一般常見的便是 NFS 共享存儲)
2)安裝兩臺 Harbor 倉庫,并互相配置同步關(guān)系。
因?yàn)榈谝环N方式的話,需要額外配置 Redis 和 PostgreSQL 以及 NFS 服務(wù),所以我們下面使用第二種方式進(jìn)行 Harbor 高可用配置。
二、Harbor 倉庫使用介紹
準(zhǔn)備工作:
主機(jī)名 | 操作系統(tǒng) | IP 地址 |
---|---|---|
Nginx | CentOS 7.x | 192.168.1.1 |
Harbor-01 | CentOS 7.x | 192.168.1.2 |
Harbor-02 | CentOS 7.x | 192.168.1.3 |
1.安裝 Docker
1)安裝基礎(chǔ)包
[root@Harbor-01 ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
2)配置 Docker 的 yum 源
[root@Harbor-01 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@Harbor-01 ~]# yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
3)安裝并啟動(dòng) Docker
我們可以使用 yum list docker-ce --showduplicates | sort -r 命令來查看 Docker 的所有版本。
[root@Harbor-01 ~]# yum -y install docker-ce-19.03.12 docker-ce-cli-19.03.12 [root@Harbor-01 ~]# systemctl enable docker --now # 啟動(dòng)并配置開機(jī)自啟動(dòng)
2.安裝 Docker-Compose
[root@Harbor-01 ~]# wget "https://github.com/docker/compose/releases/download/v2.3.2/docker-compose-$(uname -s)-$(uname -m)" -O /usr/local/bin/docker-compose [root@Harbor-01 ~]# chmod +x /usr/local/bin/docker-compose [root@Harbor-01 ~]# docker-compose --version
3.配置 Harbor
1)安裝 Harbor
[root@Harbor-01 ~]# wget https://github.com/goharbor/harbor/releases/download/v2.3.1/harbor-offline-installer-v2.3.1.tgz [root@Harbor-01 ~]# tar zxf harbor-offline-installer-v2.3.1.tgz
2)修改 Harbor 配置文件
[root@Harbor-01 ~]# cd harbor/ [root@Harbor-01 ~]# cp harbor.yml.tmpl harbor.yml [root@Harbor-01 ~]# sed -i 's/reg.mydomain.com/192.168.1.2/' harbor.yml # 修改 Harbor 主機(jī)名 [root@Harbor-01 ~]# mkdir -p /app/harbor/data [root@Harbor-01 ~]# sed -i '/data_volume/s/\/data/\/app\/harbor\/data/' harbor.yml # 修改存儲目錄
3)啟動(dòng) Harbor
[root@Harbor-01 ~]# ./install.sh
啟動(dòng)時(shí)出現(xiàn):ERROR:root:Error: The protocol is https but attribute ssl_cert is not set 報(bào)錯(cuò),這個(gè)報(bào)錯(cuò)是因?yàn)?Harbor 配置文件里的 HTTPS 相關(guān)配置 并沒有進(jìn)行修改或是關(guān)閉處理。
重新安裝即可。
驗(yàn)證:http://192.168.1.2(默認(rèn)的賬號密碼為:admin/Harbor12345)
4.Harbor 高可用配置
1)安裝 Nginx 服務(wù)
[root@Nginx ~]# yum -y install pcre-devel zlib-devel popt-devel openssl-devel openssl [root@Nginx ~]# wget http://www.nginx.org/download/nginx-1.21.0.tar.gz [root@Nginx ~]# ls anaconda-ks.cfg nginx-1.21.0.tar.gz [root@Nginx ~]# tar zxf nginx-1.21.0.tar.gz -C /usr/src/ [root@Nginx ~]# cd /usr/src/nginx-1.21.0/ [root@Nginx nginx-1.21.0]# useradd -M -s /sbin/nologin nginx [root@Nginx nginx-1.21.0]# ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-file-aio \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-http_flv_module \ --with-http_ssl_module \ --with-stream \ --with-pcre && make && make install [root@Nginx nginx-1.21.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
2)修改 Nginx 配置文件
[root@Nginx ~]# cat <<END >> /usr/local/nginx/conf/nginx.conf stream { upstream harbor { server 192.168.1.2:80; server 192.168.1.3:80 backup; # 備用服務(wù)器 } server { listen 5000; proxy_pass harbor; proxy_timeout 300s; proxy_connect_timeout 5s; } } END [root@Nginx ~]# nginx -s reload [root@Nginx ~]# echo "192.168.1.1 harbor.tianya.com" >> /etc/hosts
上面配置 backup(備用)的原因,主要就是因?yàn)?Harbor 需要使用賬號密碼來進(jìn)行驗(yàn)證。
也就是說,當(dāng)我們登錄到其中一臺 Harbor 主機(jī)上,可能還會輪詢到另一臺 Harbor 主機(jī)上,但是這另一臺 Harbor 主機(jī)并沒有使用賬號密碼來進(jìn)行驗(yàn)證??赡芫蜁A段性的出現(xiàn) 401 Unauthorized(認(rèn)證失敗)錯(cuò)誤碼。
3)Harbor 界面配置
1)創(chuàng)建一個(gè)新的項(xiàng)目:http://192.168.1.2
2)在倉庫管理新建一個(gè)目標(biāo)
3)在復(fù)制管理新建一個(gè)規(guī)則
因?yàn)槲覀冏龅氖腔陔p主的 Harbor 高可用,所以需要在備用的 Harbor 上也執(zhí)行下上面的步驟。
5.驗(yàn)證
1)在 Docker 上配置 Harbor 倉庫
[root@Harbor-01 ~]# cat <<END > /etc/docker/daemon.json { "registry-mirrors": [ "https://ipbtg5l0.mirror.aliyuncs.com" ], "insecure-registries": [ "http://harbor.tianya.com:5000" ] } END [root@Harbor-01 ~]# systemctl daemon-reload && systemctl restart docker [root@Harbor-01 ~]# docker login http://harbor.tianya.com:5000 Username: admin Password: Harbor12345
2)驗(yàn)證推送
[root@Harbor-01 ~]# docker pull nginx:1.18.0 [root@Harbor-01 ~]# docker tag nginx:1.18.0 harbor.tianya.com:5000/kubernetes/nginx:1.18.0 [root@Harbor-01 ~]# docker push harbor.tianya.com:5000/kubernetes/nginx:1.18.0
3)驗(yàn)證高可用
[root@Harbor-01 ~]# cd harbor/ [root@Harbor-01 ~]# docker-compose down # 關(guān)閉 Harbor [root@Harbor-02 ~]# docker pull harbor.tianya.com:5000/kubernetes/nginx:1.18.0
以上就是Harbor高可用配置及倉庫使用介紹的詳細(xì)內(nèi)容,更多關(guān)于Harbor倉庫配置使用的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Podman開機(jī)自啟容器實(shí)現(xiàn)過程及與Docker對比
這篇文章主要為大家介紹了Podman開機(jī)自啟容器實(shí)現(xiàn)過程,通過示例代碼的形式進(jìn)行演繹過程,有需要的朋友可以參考下,希望可以有所幫助2021-09-09K8S-ConfigMap實(shí)現(xiàn)應(yīng)用和配置分離詳解
這篇文章主要為大家介紹了K8S-ConfigMap實(shí)現(xiàn)應(yīng)用和配置分離詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04云原生技術(shù)kubernetes之volumes容器的使用
這篇文章主要為大家介紹了云原生技術(shù)kubernetes之volumes容器使用方式,?有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03k8s?Ingress實(shí)現(xiàn)流量路由規(guī)則控制的定義格式類型
這篇文章主要為大家介紹了k8s?Ingress?實(shí)現(xiàn)流量路由規(guī)則控制的定義格式及類型詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Kubernetes存儲系統(tǒng)數(shù)據(jù)持久化管理詳解
這篇文章主要為大家介紹了Kubernetes存儲系統(tǒng)數(shù)據(jù)持久化管理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11