Harbor私有镜像仓库部署指南:从安装到高可用配置

私有镜像仓库 Harbor 的安装与配置全攻略

一、Harbor 核心价值与适用场景

Harbor 是由 VMware 开源的企业级私有镜像仓库,提供镜像存储、签名验证、权限控制、漏洞扫描等核心功能。相较于 Docker Registry,Harbor 通过 Web 界面、RBAC 权限模型、镜像复制策略等特性,更适合企业级容器化部署场景。典型应用场景包括:

  1. 内网镜像分发:避免公网拉取镜像的网络延迟
  2. 安全合规要求:满足金融、政务等行业的镜像审计需求
  3. 多集群管理:通过项目隔离实现不同团队的镜像管理
  4. 混合云架构:作为跨云环境的镜像同步枢纽

二、安装前环境准备

硬件配置建议

组件 最低配置 推荐配置
服务器 2核4G 4核8G+
磁盘空间 40GB(SSD优先) 200GB+(根据镜像量调整)
网络带宽 100Mbps 千兆网络

软件依赖检查

  1. 操作系统:CentOS 7/8、Ubuntu 18.04/20.04(推荐)
  2. Docker:19.03+(需开启 TCP 2375 端口)
  3. Docker Compose:1.25+(Harbor 2.0+ 版本)
  4. 依赖包yum install -y curl wget git

网络配置要点

  1. 开放端口:80(HTTP)、443(HTTPS)、4222(Notary)、6443(K8s集成)
  2. 域名解析:建议配置独立域名(如 harbor.example.com
  3. 防火墙规则:
    1. firewall-cmd --add-port={80,443,4222,6443}/tcp --permanent
    2. firewall-cmd --reload

三、Harbor 安装全流程

1. 离线安装包获取

  1. wget https://github.com/goharbor/harbor/releases/download/v2.7.1/harbor-offline-installer-v2.7.1.tgz
  2. tar xvf harbor-offline-installer-v2.7.1.tgz
  3. cd harbor

2. 配置文件修改

编辑 harbor.yml 核心参数:

  1. hostname: harbor.example.com
  2. http:
  3. port: 80
  4. https:
  5. certificate: /data/cert/harbor.crt
  6. private_key: /data/cert/harbor.key
  7. harbor_admin_password: Harbor12345
  8. database:
  9. password: root123
  10. max_open_conns: 1000
  11. max_idle_conns: 500
  12. storage_driver:
  13. name: filesystem
  14. fs_driver:
  15. rootdirectory: /var/lib/harbor

3. 证书配置(生产环境必备)

  1. # 生成自签名证书(测试用)
  2. openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  3. -keyout /data/cert/harbor.key -out /data/cert/harbor.crt \
  4. -subj "/CN=harbor.example.com"
  5. # 企业级证书建议使用 Let's Encrypt 或商业 CA
  6. certbot certonly --standalone -d harbor.example.com

4. 安装执行

  1. ./install.sh --with-trivy # 包含漏洞扫描组件
  2. # 输出示例:
  3. # ✔ ----Harbor has been installed and started successfully.----

四、核心功能配置详解

1. 项目与用户管理

  • 项目创建
    1. curl -X POST -u admin:Harbor12345 \
    2. -H "Content-Type: application/json" \
    3. -d '{"project_name": "devteam", "public": false}' \
    4. http://harbor.example.com/api/v2.0/projects
  • 用户角色分配
    • 开发者:仅推送/拉取权限
    • 审计员:仅查看权限
    • 管理员:全权限

2. 镜像复制策略

配置跨数据中心镜像同步:

  1. # 在 harbor.yml 中添加
  2. replication:
  3. - name: "aliyun-mirror"
  4. disabled: false
  5. src_registry:
  6. url: http://harbor.example.com
  7. insecure: false
  8. dest_registry:
  9. url: https://registry.cn-hangzhou.aliyuncs.com
  10. insecure: false
  11. dest_namespace: "devteam/*"
  12. trigger:
  13. type: "manual"

3. 漏洞扫描配置

启用 Trivy 扫描:

  1. # 修改配置后重启服务
  2. docker-compose -f docker-compose.yml restart trivy
  3. # 手动触发扫描
  4. curl -X POST -u admin:Harbor12345 \
  5. http://harbor.example.com/api/v2.0/projects/1/repositories/library%2Fnginx/artifacts/latest/scan

五、高可用部署方案

1. 主从架构设计

组件 主节点 从节点
数据库 PostgreSQL 同步复制
存储 共享存储 共享存储
Redis 集群模式 集群模式

2. 负载均衡配置

Nginx 配置示例:

  1. upstream harbor {
  2. server 192.168.1.10:443;
  3. server 192.168.1.11:443 backup;
  4. }
  5. server {
  6. listen 443 ssl;
  7. server_name harbor.example.com;
  8. ssl_certificate /etc/nginx/certs/harbor.crt;
  9. ssl_certificate_key /etc/nginx/certs/harbor.key;
  10. location / {
  11. proxy_pass https://harbor;
  12. proxy_set_header Host $host;
  13. }
  14. }

六、运维最佳实践

1. 日常监控指标

指标 告警阈值 检查方式
磁盘使用率 >85% df -h /var/lib/harbor
响应时间 >500ms Prometheus 监控
扫描任务积压 >10 harbor_scan_queue_length

2. 备份恢复流程

  1. # 数据库备份
  2. pg_dump -U postgres -h 127.0.0.1 registry > registry_backup.sql
  3. # 存储备份
  4. rsync -avz /var/lib/harbor backup@192.168.1.20:/backup/harbor
  5. # 恢复测试
  6. docker-compose -f docker-compose.yml down
  7. rm -rf /var/lib/harbor/*
  8. # 恢复数据库和存储后重启

3. 性能优化建议

  1. 存储层:使用 SSD 存储元数据,HDD 存储镜像
  2. 网络层:启用 HTTP/2 协议减少连接开销
  3. 计算层:调整 max_jobs 参数(默认5)
    1. jobservice:
    2. max_job_workers: 10

七、常见问题解决方案

1. 登录失败排查

  1. # 检查认证服务状态
  2. docker ps | grep harbor-auth
  3. # 查看日志
  4. docker logs harbor-auth
  5. # 密码重置
  6. docker exec -it harbor-db psql -U postgres registry
  7. ALTER USER admin WITH PASSWORD 'NewPassword';

2. 镜像推送超时

  1. # 调整客户端超时设置
  2. echo '{"max-concurrent-uploads": 5}' > /etc/docker/daemon.json
  3. systemctl restart docker
  4. # 检查存储空间
  5. df -h /var/lib/harbor

八、升级与迁移指南

1. 版本升级流程

  1. # 备份当前配置
  2. cp harbor.yml harbor.yml.bak
  3. # 下载新版本
  4. wget https://github.com/goharbor/harbor/releases/download/v2.8.0/harbor-offline-installer-v2.8.0.tgz
  5. # 执行升级
  6. ./prepare --conf harbor.yml
  7. docker-compose -f docker-compose.yml up -d

2. 数据迁移步骤

  1. 停止服务:docker-compose down
  2. 迁移数据:rsync -avz /var/lib/harbor/ /new_path/
  3. 修改配置:更新 harbor.yml 中的存储路径
  4. 重启服务:docker-compose up -d

结语

Harbor 的部署不是简单的软件安装,而是需要结合企业实际需求进行架构设计。从单节点测试到生产级高可用集群,每个环节都需要严谨的规划。建议企业用户:

  1. 先在测试环境验证所有功能
  2. 制定完善的备份恢复策略
  3. 建立监控告警体系
  4. 定期进行安全审计

通过合理的配置和管理,Harbor 可以成为企业容器化转型的重要基础设施,为 CI/CD 流水线提供可靠的镜像支撑。