一、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.----
表示成功。