一、harbor基本概念
?Harbor是一個由VMware開源的企業級Docker鏡像倉庫解決方案?,旨在解決企業在容器化應用部署中的痛點,提供鏡像存儲、管理、安全和分發的全生命周期管理?。Harbor擴展了Docker Registry,增加了企業級功能,如用戶管理、權限控制、鏡像掃描和鏡像復制等,支持多種認證機制,幫助企業在大規模的容器環境中實現安全、高效的鏡像管理?。
二、環境配置要求
CentOS 7/8(本教程以 CentOS 7.9 為例)
最低配置:2核CPU、4GB內存、40GB磁盤
開放端口:80(HTTP)、443(HTTPS)、4443(Harbor數據同步端口)
注意:操作系統需要安裝docker、docker-compose,如何安裝,見專欄另外一篇文章:
搭建k8s集群系列(二進制部署)之安裝docker和k8s自簽證書
三、下載安裝包
3.1 下載離線安裝包
wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-offline-installer-v2.7.0.tgz
tar -xzvf harbor-offline-installer-v2.7.0.tgz
cd harbor
3.2 修改配置文件
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
修改以下關鍵配置:
hostname: 192.168.1.23 # 改為服務器IP或域名
http:port: 80
https:port: 443certificate: /opt/harbor/ssl/harbor-server.pem # 若需HTTPS,配置證書路徑private_key: /opt/harbor/ssl/harbor-server-key.pem # 若無需HTTPS,注釋整個https塊
harbor_admin_password: Harbor12345 # 管理員默認密碼(需修改!)
data_volume: /data/harbor # 數據存儲路徑(確保目錄存在)
如果啟用https,則需要生成證書,這里采用自簽證書:
自簽證書工具安裝:
cfssl 是一個開源的證書管理工具,使用 json 文件生成證書,相比 openssl 更方便使用。
# 下載cfssl工具(二進制可執行文件)
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
# 授可執行權限
chmod +x cfssl_linux-amd64 cfssljson_linux-amd64 cfssl-certinfo_linux-amd64
# 移動到bin目錄,方便直接在命令行使用該工具命令
mv cfssl_linux-amd64 /usr/bin/cfssl
mv cfssljson_linux-amd64 /usr/local/bin/cfssljson
mv cfssl-certinfo_linux-amd64 /usr/bin/cfssl-certinfo
生成CA根證書-寫如CA配置文件:
# 寫入ca配置文件
cat > ca-config.json << EOF
{
"signing": {
"default": {
"expiry": "87600h"
},
"profiles": {
"harbor": {
"expiry": "87600h",
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
]
}
}
}
}
EOF
CA根證書申請文件:
# 寫入ca-csr文件
cat > ca-csr.json << EOF
{
"CN": "harbor",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "Beijing",
"ST": "Beijing",
"O": "harbor",
"OU": "System"
}
]
}
EOF
生成根證書:
cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
申請域名證書請求文件:
cat > harbor-server-csr.json << EOF
{
"CN": "harbor",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "BeiJing",
"ST": "BeiJing",
"O": "harbor",
"OU": "System"
}
]
}
EOF
執行生成域名證書:
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=harbor harbor-server-csr.json | cfssljson -bare harbor-server
3.3 執行安裝
# 切換到harbor解壓目錄
sh ./prepare #執行安裝前準備的腳本,然后會生成docker-compose配置文件和common/config配置文件目錄及配置文件
sh ./install.sh #執行安裝
# 等待安裝完成#驗證安裝狀態
docker-compose ps
輸出 ? ----Harbor has been installed and started successfully.----
表示成功。