私有镜像仓库 Harbor 的安装与配置全攻略
一、Harbor 核心价值与适用场景
Harbor 是由 VMware 开源的企业级私有镜像仓库,提供镜像存储、签名验证、权限控制、漏洞扫描等核心功能。相较于 Docker Registry,Harbor 通过 Web 界面、RBAC 权限模型、镜像复制策略等特性,更适合企业级容器化部署场景。典型应用场景包括:
- 内网镜像分发:避免公网拉取镜像的网络延迟
- 安全合规要求:满足金融、政务等行业的镜像审计需求
- 多集群管理:通过项目隔离实现不同团队的镜像管理
- 混合云架构:作为跨云环境的镜像同步枢纽
二、安装前环境准备
硬件配置建议
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| 服务器 | 2核4G | 4核8G+ |
| 磁盘空间 | 40GB(SSD优先) | 200GB+(根据镜像量调整) |
| 网络带宽 | 100Mbps | 千兆网络 |
软件依赖检查
- 操作系统:CentOS 7/8、Ubuntu 18.04/20.04(推荐)
- Docker:19.03+(需开启 TCP 2375 端口)
- Docker Compose:1.25+(Harbor 2.0+ 版本)
- 依赖包:
yum install -y curl wget git
网络配置要点
- 开放端口:80(HTTP)、443(HTTPS)、4222(Notary)、6443(K8s集成)
- 域名解析:建议配置独立域名(如
harbor.example.com) - 防火墙规则:
firewall-cmd --add-port={80,443,4222,6443}/tcp --permanentfirewall-cmd --reload
三、Harbor 安装全流程
1. 离线安装包获取
wget https://github.com/goharbor/harbor/releases/download/v2.7.1/harbor-offline-installer-v2.7.1.tgztar xvf harbor-offline-installer-v2.7.1.tgzcd harbor
2. 配置文件修改
编辑 harbor.yml 核心参数:
hostname: harbor.example.comhttp:port: 80https:certificate: /data/cert/harbor.crtprivate_key: /data/cert/harbor.keyharbor_admin_password: Harbor12345database:password: root123max_open_conns: 1000max_idle_conns: 500storage_driver:name: filesystemfs_driver:rootdirectory: /var/lib/harbor
3. 证书配置(生产环境必备)
# 生成自签名证书(测试用)openssl req -x509 -nodes -days 365 -newkey rsa:2048 \-keyout /data/cert/harbor.key -out /data/cert/harbor.crt \-subj "/CN=harbor.example.com"# 企业级证书建议使用 Let's Encrypt 或商业 CAcertbot certonly --standalone -d harbor.example.com
4. 安装执行
./install.sh --with-trivy # 包含漏洞扫描组件# 输出示例:# ✔ ----Harbor has been installed and started successfully.----
四、核心功能配置详解
1. 项目与用户管理
- 项目创建:
curl -X POST -u admin:Harbor12345 \-H "Content-Type: application/json" \-d '{"project_name": "devteam", "public": false}' \http://harbor.example.com/api/v2.0/projects
- 用户角色分配:
- 开发者:仅推送/拉取权限
- 审计员:仅查看权限
- 管理员:全权限
2. 镜像复制策略
配置跨数据中心镜像同步:
# 在 harbor.yml 中添加replication:- name: "aliyun-mirror"disabled: falsesrc_registry:url: http://harbor.example.cominsecure: falsedest_registry:url: https://registry.cn-hangzhou.aliyuncs.cominsecure: falsedest_namespace: "devteam/*"trigger:type: "manual"
3. 漏洞扫描配置
启用 Trivy 扫描:
# 修改配置后重启服务docker-compose -f docker-compose.yml restart trivy# 手动触发扫描curl -X POST -u admin:Harbor12345 \http://harbor.example.com/api/v2.0/projects/1/repositories/library%2Fnginx/artifacts/latest/scan
五、高可用部署方案
1. 主从架构设计
| 组件 | 主节点 | 从节点 |
|---|---|---|
| 数据库 | PostgreSQL | 同步复制 |
| 存储 | 共享存储 | 共享存储 |
| Redis | 集群模式 | 集群模式 |
2. 负载均衡配置
Nginx 配置示例:
upstream harbor {server 192.168.1.10:443;server 192.168.1.11:443 backup;}server {listen 443 ssl;server_name harbor.example.com;ssl_certificate /etc/nginx/certs/harbor.crt;ssl_certificate_key /etc/nginx/certs/harbor.key;location / {proxy_pass https://harbor;proxy_set_header Host $host;}}
六、运维最佳实践
1. 日常监控指标
| 指标 | 告警阈值 | 检查方式 |
|---|---|---|
| 磁盘使用率 | >85% | df -h /var/lib/harbor |
| 响应时间 | >500ms | Prometheus 监控 |
| 扫描任务积压 | >10 | harbor_scan_queue_length |
2. 备份恢复流程
# 数据库备份pg_dump -U postgres -h 127.0.0.1 registry > registry_backup.sql# 存储备份rsync -avz /var/lib/harbor backup@192.168.1.20:/backup/harbor# 恢复测试docker-compose -f docker-compose.yml downrm -rf /var/lib/harbor/*# 恢复数据库和存储后重启
3. 性能优化建议
- 存储层:使用 SSD 存储元数据,HDD 存储镜像
- 网络层:启用 HTTP/2 协议减少连接开销
- 计算层:调整
max_jobs参数(默认5)jobservice:max_job_workers: 10
七、常见问题解决方案
1. 登录失败排查
# 检查认证服务状态docker ps | grep harbor-auth# 查看日志docker logs harbor-auth# 密码重置docker exec -it harbor-db psql -U postgres registryALTER USER admin WITH PASSWORD 'NewPassword';
2. 镜像推送超时
# 调整客户端超时设置echo '{"max-concurrent-uploads": 5}' > /etc/docker/daemon.jsonsystemctl restart docker# 检查存储空间df -h /var/lib/harbor
八、升级与迁移指南
1. 版本升级流程
# 备份当前配置cp harbor.yml harbor.yml.bak# 下载新版本wget https://github.com/goharbor/harbor/releases/download/v2.8.0/harbor-offline-installer-v2.8.0.tgz# 执行升级./prepare --conf harbor.ymldocker-compose -f docker-compose.yml up -d
2. 数据迁移步骤
- 停止服务:
docker-compose down - 迁移数据:
rsync -avz /var/lib/harbor/ /new_path/ - 修改配置:更新
harbor.yml中的存储路径 - 重启服务:
docker-compose up -d
结语
Harbor 的部署不是简单的软件安装,而是需要结合企业实际需求进行架构设计。从单节点测试到生产级高可用集群,每个环节都需要严谨的规划。建议企业用户:
- 先在测试环境验证所有功能
- 制定完善的备份恢复策略
- 建立监控告警体系
- 定期进行安全审计
通过合理的配置和管理,Harbor 可以成为企业容器化转型的重要基础设施,为 CI/CD 流水线提供可靠的镜像支撑。