logo

Harbor 2.9.0-arm64架构离线安装与升级部署全指南

作者:沙与沫2025.09.26 20:51浏览量:42

简介:本文详细介绍Harbor 2.9.0在arm64架构下的离线安装包制作、部署及升级方法,涵盖依赖准备、离线包构建、服务部署与配置优化等全流程,为企业提供高可用容器镜像仓库解决方案。

一、背景与需求分析

随着arm64架构在云计算和边缘计算领域的普及,企业对于基于arm64架构的容器镜像仓库需求日益增长。Harbor作为CNCF毕业的开源项目,已成为企业级镜像仓库的首选。然而,在离线环境中部署Harbor 2.9.0-arm64版本时,开发者常面临依赖缺失、配置复杂、升级困难等问题。本文将系统阐述从离线安装包制作到服务升级的全流程,帮助企业快速构建安全可靠的镜像仓库。

二、环境准备与依赖管理

1. 基础环境要求

  • 操作系统:Ubuntu 20.04/22.04 LTS(arm64版本)
  • 硬件配置:最低4核CPU、8GB内存、50GB存储空间
  • 网络要求:内网环境需配置本地DNS解析

2. 依赖包收集

使用dpkgapt工具收集所有依赖:

  1. # 创建依赖收集目录
  2. mkdir -p harbor-offline/deps
  3. cd harbor-offline/deps
  4. # 收集基础依赖
  5. apt-get download docker-ce docker-ce-cli containerd.io
  6. apt-get download libssl1.1 ca-certificates
  7. # 收集Harbor特定依赖
  8. wget https://github.com/goharbor/harbor/releases/download/v2.9.0/harbor-offline-installer-v2.9.0.tgz

关键点:需验证所有包在arm64架构下的兼容性,可通过file命令检查二进制文件架构:

  1. file docker-ce-cli
  2. # 应输出:ELF 64-bit LSB executable, ARM aarch64

三、离线安装包制作

1. 安装包结构规划

  1. harbor-offline-arm64/
  2. ├── deps/ # 所有依赖包
  3. ├── harbor/ # Harbor核心文件
  4. ├── install.sh # 修改后的安装脚本
  5. ├── harbor.yml.tmpl # 模板配置文件
  6. └── common/ # 公共脚本
  7. └── docs/ # 离线部署文档

2. 安装脚本适配

修改原install.sh中的依赖检查逻辑,添加arm64架构判断:

  1. # 在检查依赖前添加架构验证
  2. ARCH=$(uname -m)
  3. if [ "$ARCH" != "aarch64" ]; then
  4. echo "Error: Only aarch64 architecture is supported"
  5. exit 1
  6. fi
  7. # 替换apt安装命令为本地安装
  8. function install_deps() {
  9. echo "Installing dependencies from local packages..."
  10. dpkg -i ./deps/*.deb || apt-get install -f -y
  11. }

3. 配置模板优化

harbor.yml.tmpl中预设arm64优化参数:

  1. # 存储驱动配置
  2. storage_driver:
  3. name: filesystem
  4. options:
  5. base_dir: /data
  6. # arm64专用优化
  7. max_threads: 4
  8. # 数据库配置
  9. database:
  10. password: Harbor12345
  11. max_idle_conns: 50
  12. max_open_conns: 100

四、离线部署实施

1. 传输与解压

将制作好的离线包传输至目标服务器后解压:

  1. tar -xzvf harbor-offline-arm64-v2.9.0.tar.gz -C /opt
  2. cd /opt/harbor

2. 配置定制化

根据企业环境修改harbor.yml

  1. hostname: registry.internal.com
  2. http:
  3. port: 8080
  4. https:
  5. certificate: /data/cert/server.crt
  6. private_key: /data/cert/server.key
  7. harbor_admin_password: Admin@123

3. 服务启动与验证

  1. # 初始化数据库
  2. ./prepare
  3. # 启动服务
  4. docker-compose up -d
  5. # 验证服务状态
  6. curl -I http://localhost:8080/api/v2.0/health
  7. # 应返回HTTP 200

五、升级部署策略

1. 升级前准备

  • 数据备份
    1. docker-compose down
    2. tar -czvf harbor-data-backup-$(date +%Y%m%d).tar.gz /data
  • 兼容性检查:使用harbor-pre-upgrade工具验证配置

2. 增量升级包制作

对比新旧版本差异,仅打包变更文件:

  1. # 示例:core/app/handlers/api_handler.go修改
  2. @@ -102,7 +102,7 @@
  3. func (h *APIHandler) ListProjects(w http.ResponseWriter, r *http.Request) {
  4. // arm64优化:增加内存缓存
  5. - if runtime.GOARCH == "arm64" {
  6. + if strings.Contains(runtime.GOARCH, "arm") {
  7. h.cacheProjects()
  8. }
  9. ...

3. 升级执行流程

  1. # 1. 下载新版本离线包
  2. # 2. 停止服务
  3. docker-compose down
  4. # 3. 替换二进制文件
  5. cp -r new-version/bin/* /opt/harbor/bin/
  6. # 4. 数据库迁移
  7. /opt/harbor/upgrade.sh --inplace
  8. # 5. 启动服务
  9. docker-compose up -d

六、运维优化建议

  1. 性能调优

    • 调整core.go中的goroutine数量:runtime.GOMAXPROCS(8)
    • 启用存储缓存:在harbor.yml中设置cache_enabled: true
  2. 安全加固

    • 定期轮换证书:openssl req -newkey rsa:4096 -x509 -days 365
    • 启用审计日志audit_log_enabled: true
  3. 监控集成

    1. # Prometheus监控配置
    2. metrics:
    3. enabled: true
    4. core:
    5. path: /metrics
    6. port: 9090

七、常见问题处理

  1. 依赖冲突

    • 现象:dpkg: error processing archive
    • 解决:dpkg --configure -a后重试
  2. 存储性能问题

    • 优化方案:
      1. # 调整文件系统挂载参数
      2. echo "/dev/sdb1 /data xfs defaults,noatime,nodiratime 0 0" >> /etc/fstab
      3. mount -o remount /data
  3. 升级后服务无法启动

    • 检查日志:docker-compose logs -f
    • 常见原因:数据库版本不兼容,需执行harbor-db-migrate

总结

本文系统阐述了Harbor 2.9.0在arm64架构下的离线部署全流程,从环境准备、安装包制作到升级策略,提供了可落地的实施方案。通过架构适配优化、配置模板预设和运维建议,帮助企业构建高可用的容器镜像仓库。实际部署中,建议结合企业具体环境进行参数调优,并建立完善的备份恢复机制。

相关文章推荐

发表评论

活动