私有鏡像倉庫-Harbor實戰

私有鏡像倉庫-Harbor實戰

我們前面在k8s上部署服務一直都是用的dockerhub上的公有鏡像,對於企業服務來說,有些我們是不想把服務鏡像放在公網上面的; 同時如果在有內部的鏡像倉庫,那拉取鏡像的速度就會很快,這時候就需要我們來部署公司內部的私有鏡像倉庫了,這裏博哥會使用我們最常用的harbor來部署我們內部的私有鏡像倉庫。

harbor官方文檔:
https://goharbor.io/docs/2.2.0/

harbor內部架構圖

第13關 k8s架構師課程之私有鏡像倉庫-Harbor

harbor在我們這次課程的最終一關的位置如圖所示:

第13關 k8s架構師課程之私有鏡像倉庫-Harbor

在生產中安裝一般有兩種方式,一種是用docker-compose啓動官方打包好的離線安裝包; 二上用helm chart的形式在k8s上來運行harbor,兩種方式都可以用,但根據博哥的工作經驗,建議是不要將harbor部署在k8s上,這裏博哥就直接以第一種離線的方式來安裝harbor

# 離線形式安裝harbor私有鏡像倉庫

## 創建目錄及下載harbor離線包
mkdir /data && cd /data
wget https://github.com/goharbor/harbor/releases/download/v2.2.0/harbor-offline-installer-v2.2.0.tgz
tar xf harbor-offline-installer-v2.2.0.tgz && rm harbor-offline-installer-v2.2.0.tgz

## 修改harbor配置
cd harbor
cp harbor.yml.tmpl harbor.yml
    5 hostname: harbor.boge.com
    17   certificate: /data/harbor/ssl/tls.cert
    18   private_key: /data/harbor/ssl/tls.key
    34 harbor_admin_password: boge666

## 創建harbor訪問域名證書
mkdir /data/harbor/ssl && cd /data/harbor/ssl
openssl genrsa -out tls.key 2048
openssl req -new -x509 -key tls.key -out tls.cert -days 360 -subj /CN=*.boge.com

## 準備好單機編排工具`docker-compose`
> 從二進制安裝k8s項目的bin目錄拷貝過來
scp /etc/kubeasz/bin/docker-compose 10.0.1.204:/usr/bin/

> 也可以在docker官方進行下載
https://docs.docker.com/compose/install/

## 開始安裝
./install.sh

## 推送鏡像到harbor
echo '10.0.1.204 harbor.boge.com' >> /etc/hosts
docker tag nginx:latest  harbor.boge.com/library/nginx:latest
docker push harbor.boge.com/library/nginx:1.18.0-alpine

## 在其他節點上面拉取harbor鏡像
> 在集羣每個 node 節點進行如下配置
> ssh to 10.0.1.201(centos7)

mkdir -p /etc/docker/certs.d/harbor.boge.com
scp 10.0.1.204:/data/harbor/ssl/tls.cert /etc/docker/certs.d/harbor.boge.com/ca.crt
docker pull harbor.boge.com/library/nginx:latest


## 重啓harbor
docker-compose down -v
docker-compose up -d
docker ps|grep harbor

## 附(引用自 https://github.com/easzlab/kubeasz):
containerd配置信任harbor證書
在集羣每個 node 節點進行如下配置(假設ca.pem爲自建harbor的CA證書)

ubuntu 1604:
cp ca.pem /usr/share/ca-certificates/harbor-ca.crt
echo harbor-ca.crt >> /etc/ca-certificates.conf
update-ca-certificates

CentOS 7:
cp ca.pem /etc/pki/ca-trust/source/anchors/harbor-ca.crt
update-ca-trust
上述配置完成後,重啓 containerd 即可 systemctl restart containerd
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章