在CentOS 7上构建企业级Harbor镜像仓库:完整部署指南与优化实践

一、环境准备与前置条件

1.1 系统基础要求

Harbor官方推荐使用CentOS 7.x系列作为部署环境,需确保系统已安装最新补丁(通过yum update -y完成)。建议配置至少4核CPU、8GB内存及50GB磁盘空间,对于生产环境建议采用独立物理机或高配虚拟机。

1.2 网络与防火墙配置

Harbor默认使用80/443端口(HTTP/HTTPS),需在防火墙规则中放行:

  1. firewall-cmd --permanent --add-port=80/tcp
  2. firewall-cmd --permanent --add-port=443/tcp
  3. firewall-cmd --reload

若使用非标准端口,需同步修改Harbor配置文件中的ui_url_protocolport参数。

1.3 依赖组件安装

Docker引擎部署

  1. # 安装依赖包
  2. yum install -y yum-utils device-mapper-persistent-data lvm2
  3. # 添加Docker官方仓库
  4. yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  5. # 安装Docker CE
  6. yum install -y docker-ce docker-ce-cli containerd.io
  7. # 启动并设置开机自启
  8. systemctl enable --now docker

Docker Compose安装

  1. curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  2. chmod +x /usr/local/bin/docker-compose

二、Harbor核心组件安装

2.1 下载与解压

从Harbor官方Release页面获取最新版本(建议使用v2.x+稳定版):

  1. wget https://github.com/goharbor/harbor/releases/download/v2.9.0/harbor-offline-installer-v2.9.0.tgz
  2. tar xzf harbor-offline-installer-v2.9.0.tgz -C /opt

2.2 证书配置(HTTPS场景)

生成自签名证书(生产环境建议使用CA签发证书):

  1. mkdir -p /data/cert/
  2. openssl req -newkey rsa:4096 -nodes -sha256 -keyout /data/cert/harbor.key \
  3. -x509 -days 3650 -out /data/cert/harbor.crt \
  4. -subj "/C=CN/ST=Beijing/L=Beijing/O=example/CN=harbor.example.com"

将证书文件复制到Harbor配置目录:

  1. cp /data/cert/harbor.* /opt/harbor/

2.3 配置文件修改

编辑/opt/harbor/harbor.yml,关键参数说明:

  1. hostname: harbor.example.com # 必须与证书CN一致
  2. http:
  3. port: 80
  4. https:
  5. port: 443
  6. certificate: /opt/harbor/harbor.crt
  7. private_key: /opt/harbor/harbor.key
  8. harbor_admin_password: Harbor12345 # 初始管理员密码
  9. database:
  10. password: root123 # 数据库密码
  11. storage_driver:
  12. name: filesystem # 可选:aws/gcs/azure等

2.4 安装执行

  1. cd /opt/harbor
  2. ./prepare # 生成配置文件
  3. ./install.sh --with-trivy --with-chartmuseum # 安装核心组件及可选插件

安装完成后验证服务状态:

  1. docker-compose ps

三、Harbor高级配置与管理

3.1 用户与权限管理

通过Web界面(https://harbor.example.com)创建项目,配置细粒度权限:

  • 用户角色:开发者、维护者、管理员
  • 仓库权限:拉取、推送、删除、管理
  • 系统级权限:系统配置、用户管理、日志审计

3.2 镜像复制策略

配置跨区域镜像同步:

  1. 在”System Management”->”Replications”创建规则
  2. 设置源/目标项目、过滤规则、触发方式
  3. 配置带宽限制(如--limit 100m

3.3 漏洞扫描配置

启用Trivy扫描器:

  1. # 在harbor.yml中添加
  2. trivy:
  3. ignore_unfixed: false
  4. skip_update: false
  5. insecure: false

执行扫描:

  1. docker exec -it <trivy-container> trivy image --severity CRITICAL,HIGH <image-name>

四、运维优化实践

4.1 日志集中管理

配置ELK或Fluentd收集Harbor日志:

  1. # docker-compose.override.yml示例
  2. log_driver: syslog
  3. log_options:
  4. syslog-address: "tcp://127.0.0.1:514"
  5. tag: "harbor"

4.2 备份与恢复策略

  1. # 备份配置与数据库
  2. docker exec -it harbor-db pg_dump -U postgres -F c registry > registry_backup.dump
  3. cp /opt/harbor/harbor.yml /backup/
  4. # 恢复流程
  5. docker-compose down
  6. cp registry_backup.dump /var/lib/docker/volumes/harbor-db/_data/
  7. docker-compose up -d

4.3 性能调优参数

  • 数据库连接池:max_connections = 200
  • Redis内存限制:maxmemory 2gb
  • 存储驱动优化:fs.async_enabled = true

五、常见问题解决方案

5.1 证书验证失败

错误现象:x509: certificate signed by unknown authority
解决方案:

  1. # 将自签名证书添加到系统信任链
  2. cp /data/cert/harbor.crt /etc/pki/ca-trust/source/anchors/
  3. update-ca-trust

5.2 存储空间不足

扩容方案:

  1. 扩展LVM逻辑卷:
    1. lvextend -L +20G /dev/mapper/centos-root
    2. resize2fs /dev/mapper/centos-root
  2. 配置存储驱动自动清理:
    1. # 在harbor.yml中添加
    2. storage_service:
    3. redis:
    4. url: redis://harbor-redis:6379
    5. namespace: harbor_storage
    6. cleanup_interval: 3600 # 每小时清理一次

5.3 高可用部署

建议采用以下架构:

  • 前端负载均衡:Nginx/HAProxy
  • 数据库主从:PostgreSQL流复制
  • 存储冗余:NFS/Ceph集群
  • 缓存层:Redis Sentinel

六、升级与维护

6.1 版本升级流程

  1. # 1. 备份当前环境
  2. docker-compose down
  3. tar czf harbor_backup_$(date +%Y%m%d).tar.gz /data/
  4. # 2. 下载新版本并解压
  5. # 3. 修改harbor.yml中兼容性参数
  6. # 4. 执行升级
  7. ./prepare
  8. ./install.sh --with-clair --upgrade

6.2 安全加固建议

  • 定期轮换管理员密码
  • 启用双因素认证
  • 限制Web界面IP访问
  • 关闭不必要的服务端口

通过本指南的系统部署,开发者可在CentOS 7环境中快速构建企业级镜像仓库,实现容器镜像的集中管理、安全存储和高效分发。实际生产环境中建议结合监控系统(如Prometheus+Grafana)实现可视化运维,并通过CI/CD流水线集成Harbor API实现自动化镜像管理。