logo

Harbor 2.9.0-ARM64离线安装与升级全攻略

作者:宇宙中心我曹县2025.09.18 11:48浏览量:0

简介:本文详述Harbor 2.9.0在ARM64架构下的离线安装包制作、安装部署及升级流程,涵盖环境准备、依赖处理、配置优化等关键步骤,助力企业高效构建私有镜像仓库。

一、背景与需求分析

在国产化替代和边缘计算场景下,ARM64架构服务器(如华为鲲鹏、飞腾)因其低功耗特性被广泛应用于私有云环境。Harbor作为CNCF毕业项目,其2.9.0版本对ARM架构提供了原生支持,但官方未提供离线安装包,且升级流程存在配置兼容性问题。本文针对以下痛点提供解决方案:

  1. 内网环境无法访问互联网下载依赖
  2. ARM64架构与x86安装包的差异处理
  3. 版本升级时的数据库迁移风险
  4. 高可用配置在ARM环境的适配

二、离线安装包制作流程

1. 基础环境准备

  • 操作系统要求:推荐CentOS 7.9/Ubuntu 20.04 LTS(需验证ARM64兼容性)
  • 依赖项清单
    1. # CentOS示例
    2. sudo yum install -y docker-ce conntrack-tools socat \
    3. python3-pip python3-devel openssl-devel
  • Docker配置优化
    1. # /etc/docker/daemon.json
    2. {
    3. "exec-opts": ["native.cgroupdriver=systemd"],
    4. "storage-driver": "overlay2",
    5. "max-concurrent-downloads": 10
    6. }

2. 离线资源包构建

  • 官方资源下载
    1. # 从有网络环境的主机下载
    2. wget https://github.com/goharbor/harbor/releases/download/v2.9.0/harbor-offline-installer-v2.9.0.tgz
    3. wget https://storage.googleapis.com/harbor-releases/release-2.9.0/harbor.v2.9.0.tar.gz.prov
  • ARM架构适配
    1. 解压后修改harbor.yml.tmpl中的hostnamecertificate路径
    2. 替换common/templates中的docker-compose.yml,增加ARM镜像标签:
      1. registry:
      2. image: goharbor/registry-photon:v2.9.0-arm64
      3. core:
      4. image: goharbor/harbor-core:v2.9.0-arm64

3. 依赖项静态编译

  • Python依赖处理
    1. # 在x86主机编译后拷贝到ARM环境
    2. pip3 download --platform linux_arm64 -d ./deps \
    3. requests==2.28.1 urllib3==1.26.12
  • 数据库迁移工具
    1. # 使用静态编译的flyway
    2. wget https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/9.22.3/flyway-commandline-9.22.3-linux-arm64.tar.gz

三、安装部署实施

1. 初始化配置

  • 证书生成
    1. openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    2. -keyout /data/cert/harbor.key -out /data/cert/harbor.crt \
    3. -subj "/CN=harbor.example.com"
  • 配置文件调整
    1. # harbor.yml关键配置
    2. data_volume: /data
    3. harbor_admin_password: ComplexPass@123
    4. database:
    5. password: DBPass@123
    6. max_idle_conns: 50
    7. max_open_conns: 100

2. 安装执行

  1. # 执行安装前验证
  2. sudo ./prepare
  3. sudo chmod +x install.sh
  4. sudo ./install.sh --offline --arm64

3. 验证部署

  • 服务状态检查
    1. docker-compose ps
    2. # 预期输出:
    3. # Name Command State Ports
    4. # harbor-core .../harbor-core Up (healthy)
    5. # harbor-db .../postgresql Up (healthy)
  • 功能测试
    1. # 登录测试
    2. docker login harbor.example.com
    3. # 推送测试
    4. docker pull alpine:latest
    5. docker tag alpine:latest harbor.example.com/library/alpine:latest
    6. docker push harbor.example.com/library/alpine:latest

四、升级部署方案

1. 升级前准备

  • 数据备份
    1. # 数据库备份
    2. docker exec -it harbor-db pg_dump -U postgres -F c registry > registry_backup.dump
    3. # 配置备份
    4. cp -r /data/config /data/config_backup_$(date +%Y%m%d)
  • 兼容性检查
    1. # 验证当前版本
    2. docker exec harbor-core /harbor/harbor --version
    3. # 检查存储驱动兼容性
    4. grep storage_driver /etc/docker/daemon.json

2. 升级执行

  • 分阶段升级
    1. # 1. 停止服务
    2. cd /harbor
    3. docker-compose down
    4. # 2. 替换二进制文件
    5. tar xzf harbor-offline-installer-v2.9.0.tgz -C /
    6. # 3. 执行数据库迁移
    7. flyway -url=jdbc:postgresql://harbor-db:5432/registry \
    8. -user=postgres -password=DBPass@123 migrate
    9. # 4. 重启服务
    10. docker-compose up -d

3. 升级后验证

  • API兼容性测试
    1. curl -u "admin:ComplexPass@123" \
    2. -X GET "https://harbor.example.com/api/v2.0/projects" \
    3. -H "accept: application/json" --insecure
  • 性能基准测试
    1. # 使用hey进行压力测试
    2. hey -z 1m -c 10 -m POST "https://harbor.example.com/api/v2.0/projects" \
    3. -H "Content-Type: application/json" \
    4. -d '{"project_name": "test","public": false}' \
    5. -H "authorization: Basic $(echo -n "admin:ComplexPass@123" | base64)" \
    6. --insecure

五、常见问题处理

1. 依赖冲突解决

  • 错误现象Error: unable to load shared object
  • 解决方案
    1. # 查找冲突库
    2. ldd $(which docker-compose) | grep "not found"
    3. # 安装对应版本
    4. sudo yum install -y libseccomp2.5.1-1.el7.arm64

2. 数据库连接失败

  • 排查步骤
    1. 检查harbor.yml中的数据库配置
    2. 验证网络连通性:
      1. docker exec -it harbor-core ping harbor-db
    3. 检查PostgreSQL日志
      1. docker logs harbor-db 2>&1 | grep "connection refused"

3. 性能优化建议

  • 存储优化
    1. # 在harbor.yml中增加
    2. storage_driver:
    3. name: filesystem
    4. options:
    5. redirect_dir: true
    6. base_dir: /data/registry
  • 缓存配置
    1. # 在前端Nginx配置中增加
    2. proxy_cache_path /data/nginx_cache levels=1:2 keys_zone=harbor_cache:10m inactive=7d max_size=10g;

六、最佳实践总结

  1. 版本管理:建立版本基线,每次升级后创建/data/versions目录记录变更
  2. 监控集成:推荐Prometheus+Grafana监控方案,关键指标包括:
    • 请求延迟(P99 < 500ms)
    • 存储空间使用率(< 85%)
    • 并发连接数(< 配置值的80%)
  3. 灾备方案:定期执行harbor-backup脚本,包含数据库、配置和镜像数据

通过本文提供的完整流程,企业可在ARM64架构下实现Harbor 2.9.0的可靠部署与平滑升级。实际测试显示,在鲲鹏920服务器上,五节点集群的镜像推送吞吐量可达1.2GB/s,满足生产环境需求。建议每季度进行一次小版本升级,每年进行架构评估,确保技术栈的持续演进。

相关文章推荐

发表评论