Centos 安裝 Harbor


本文安裝環境是 

Dcoker version

 Client: Docker Engine - Community
 Version:           19.03.6
 API version:       1.40
 Go version:        go1.12.16
 Git commit:        369ce74a3c
 Built:             Thu Feb 13 01:29:29 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Docker-compose version  

docker-compose version 1.25.4, build 8d51620a
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

Harbor version:harbor-offline-installer-v1.10.1.tgz

1、Harbor 基礎知識

       Harbor 是一個CNCF基金會托管的開源的可信的雲原生docker registry項目,可以用於存儲、簽名、掃描鏡像內容,Harbor 通過添加一些常用的功能如安全性、身份權限管理等來擴展 docker registry 項目,此外還支持在 registry 之間復制鏡像,還提供更加高級的安全功能,如用戶管理、訪問控制和活動審計等,在新版本中還添加了Helm倉庫托管的支持.

2、安裝 Harbor 條件說明 

  

 

 3、Harbor 安裝

3.1 下載 Harbor 文件包

(由於文件比較大,建議下載好傳遞到服務器解壓即可),下載鏈接點擊后面的文字即可. Harbor 下載鏈接

3.2 上傳到服務器 

1)、執行 rz 命令,然后彈出窗口可以直接選擇.(如果沒有rz 命令 yum install -y lrzsz 即可)

2)、scp 上傳

[root@k8s-master01] # scp harbor-offline-installer-v1.10.1.tgz root@192.168.56.2:/root/software/harbor

3)、解壓

tar -zxvf harbor-offline-installer-v1.10.1.tgz

  

 4)、修改配置文件 harbor.yml

 

 

 5)、由於配置了 https,所以需要生成密鑰證書相關的信息

1、創建認證的證書
1.1 創建一個私鑰,創建成功后本目錄下會有一個 ca.key 的文件
[root@k8s-master01 keys2]# openssl genrsa -out ca.key 4096
Generating RSA private key, 4096 bit long modulus
....................................................................................................................................................................................................................................................................++
................................++
e is 65537 (0x10001)

1.2 創建證書; 創建成功后目錄下會有 ca.crt 文件
調整-subj選項中的值以標識您的組織。如果使用FQDN連接端口主機,則必須將其指定為公共名稱(CN)屬性。
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com" \
 -key ca.key \
 -out ca.crt

[root@k8s-master01 keys2]# openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com" \
 -key ca.key \
 -out ca.crt

2、創建服務端的證書
2.1[root@k8s-master01 keys2]# openssl genrsa -out mydocker.harbor.com.key 4096
Generating RSA private key, 4096 bit long modulus
................................................................................................................................................................................................++
............................................++
e is 65537 (0x10001)

2.2 證書
調整-subj選項中的值以標識您的組織。如果使用FQDN連接端口主機,則必須將其指定為公共名稱(CN)屬性,並在密鑰和CSR文件名中使用。
[root@k8s-master01 keys2]# openssl req -sha512 -new \
    -subj "/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com" \
    -key mydocker.harbor.com.key \
    -out mydocker.harbor.com.csr


2.3 生成一個x509 v3擴展文件。
無論您是使用FQDN還是IP地址來連接到您的Harbor主機,您都必須創建這個文件,以便為您的Harbor主機生成一個符合Subject Alternative Name (SAN)和x509 v3擴展要求的證書。替換DNS項以反映您的域。


[root@k8s-master01 keys2]# vim v3.ext 
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=mydocker.harbor.com
DNS.2=mydocker.harbor.com
DNS.3=mydocker.harbor.com

2.4 使用v3。為您的Harbor主機生成證書的ext文件。
[root@k8s-master01 keys2]# openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in mydocker.harbor.com.csr \
    -out mydocker.harbor.com.crt
Signature ok
subject=/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com
Getting CA Private Key


3、然后把這些證書提供給 docker 和 harbor
3.1 /apps/registrs/cert 的目錄就是 harbor.yaml 里配置的 https 下的目錄,保持一致即可,沒有目錄就先創建一下
cp mydocker.harbor.com.crt /apps/registrs/cert/
cp mydocker.harbor.com.key /apps/registrs/cert/

3.2 生成 .cert 文件以供 docker 使用
[root@k8s-master01 keys2]# openssl x509 -inform PEM -in mydocker.harbor.com.crt -out mydocker.harbor.com.cert

3.3 將服務器證書、密鑰和CA文件 copy 到 Harbor 主機上的Docker證書文件夾中
##如果沒有這個目錄就創建一下先
mkdir -p /etc/docker/certs.d/

cp mydocker.harbor.com.cert /etc/docker/certs.d/ymydocker.harbor.com/
cp mydocker.harbor.com.key /etc/docker/certs.d/mydocker.harbor.com/
cp ca.crt /etc/docker/certs.d/mydocker.harbor.com/

如果是有多個節點的話,記得把這這幾項也 copy 到節點的主機上

3.4 重啟 docker 
[root@k8s-master01 keys2]#systemctl restart docker

6)、安裝

./install.sh 

安裝過程中會一步一步的執行,如果有配置文件問題,或者硬件什么的不滿足,就會直接報錯,根據錯誤提示信息解決即可.

我在安裝的過程中遇到過的問題

1)、yaml 格式有問題, 他會提示那一行有問題,打開 yaml 文件尋找特定的行即可.(我當時提示的是中文的冒號":",然后換成英文的冒號即可":")

2)、虛擬機選擇磁盤空間的時候,選擇的小,導致提示空間不足,然后刪除一些東西才可以了.

 

4、Harbor 測試

4.1 docker 登錄

[root@k8s-master01 harbor]# docker login https://mydocker.harbor.com/
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

如果沒有問題,就會提示如上的信息

然后可以測試一下 push 到倉庫.

這個 demo 是我自己寫的一個 springboot 的例子

首先構建 docker 鏡像,然后打 tag,再推送到這里來的.執行步驟如下:

Dockerfile

Dockerfile
From java:8 MAINTAINER bamboo ADD demo-0.0.1-SNAPSHOT.jar /demo-0.0.1-SNAPSHOT.jar EXPOSE 80 ENTRYPOINT ["java", "-jar", "/demo-0.0.1-SNAPSHOT.jar"]

 

構建鏡像

[root@k8s-master01 sbd]#  docker build -f Dockfile -t demo:1.1 .

然后打 tag 

[root@k8s-master01 sbd]#  docker tag demo:1.1 mydocker.harbor.com/library/demo:1.1

查看構建、打 tag 的鏡像

[root@k8s-master01 sbd]# docker images |grep demo

[root@k8s-master01 sbd]# docker images |grep demo
demo 1.1 888f1547a370 22 hours ago 661MB
mydocker.harbor.com/library/demo 1.1 888f1547a370 22 hours ago 661MB

推送到倉庫

[root@k8s-master01 sbd]# docker push mydocker.harbor.com/library/demo:1.1

 

4.2 瀏覽器登錄

安裝成功后,打開瀏覽器 https://mydocker.harbor.com,輸入admin/Harbor12345 登錄就會看到如下的內容

 

其實盡量是按照官網的來搞,會比較清楚一點,這就需要鍛煉一下自己的英文了.官網的詳細步驟參考如下鏈接:

https://github.com/goharbor/harbor/tree/master/docs/1.10

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM