【4】k8s集群管理系列--harbor镜像仓库本地化搭建

一、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 下载离线安装包

bash 复制代码
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 修改配置文件

bash 复制代码
cp harbor.yml.tmpl harbor.yml
vim harbor.yml

修改以下关键配置:

bash 复制代码
hostname: 192.168.1.23  # 改为服务器IP或域名
http:
  port: 80
https:
  port: 443
  certificate: /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 更方便使用。

bash 复制代码
# 下载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配置文件:

bash 复制代码
# 写入ca配置文件
cat > ca-config.json << EOF
{
"signing": {
"default": {
"expiry": "87600h"
},
"profiles": {
"harbor": {
"expiry": "87600h",
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
]
}
}
}
}
EOF

CA根证书申请文件:

bash 复制代码
# 写入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 -

申请域名证书请求文件:

bash 复制代码
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

执行生成域名证书:

bash 复制代码
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 执行安装

bash 复制代码
# 切换到harbor解压目录
sh ./prepare #执行安装前准备的脚本,然后会生成docker-compose配置文件和common/config配置文件目录及配置文件
sh ./install.sh #执行安装
# 等待安装完成

#验证安装状态
docker-compose ps

输出 ✔ ----Harbor has been installed and started successfully.---- 表示成功。

相关推荐
Brandon汐4 小时前
LVS+Keepalived 双主架构全规划(LVS→HAProxy→Web)
容器·架构·lvs
Doker 多克4 小时前
Kubernetes 之Deployments
kubernetes
小猿姐4 小时前
当KubeBlocks遇上国产数据库之Kingbase:让信创数据库“飞得更高”
运维·数据库·云原生
hyunbar5 小时前
Docker命令及使用指南
运维·docker·容器
会飞的大可6 小时前
WMS系统演进——从单体到微服务
微服务·云原生·架构
yuweiade8 小时前
docker desktop安装redis
redis·docker·容器
huabiangaozhi8 小时前
Docker:基于自制openjdk8镜像 or 官方openjdk8镜像,制作tomcat镜像
docker·容器·tomcat
cyber_两只龙宝9 小时前
【Docker】Dockerfile构建镜像实验全流程详解
linux·运维·docker·云原生
人间打气筒(Ada)9 小时前
「码动四季·开源同行」docker容器单机编排docker-compose
运维·docker·容器·docker-compose·容器编排·批量·docker compose
沐风清扬9 小时前
RuoYi-Cloud微服务架构核心技术揭秘
微服务·云原生·架构