logo

Harbor 2.9.0 ARM64架构离线安装与升级部署全攻略

作者:搬砖的石头2025.09.18 11:48浏览量:0

简介:本文详细阐述Harbor 2.9.0在ARM64架构下的离线安装包制作、安装部署及升级全流程,提供可落地的技术方案与故障排查指南。

一、背景与需求分析

随着国产芯片的普及,基于ARM64架构的服务器在私有云、边缘计算等场景中广泛应用。Harbor作为企业级Docker镜像仓库,其2.9.0版本对ARM64架构提供了原生支持,但官方未提供离线安装包,且升级流程需特殊处理。本文将系统性解决以下痛点:

  1. 离线环境适配:在无互联网访问的ARM64服务器上完成Harbor部署
  2. 架构兼容性:解决x86与ARM64二进制文件的差异问题
  3. 升级平滑性:实现从旧版本到2.9.0的无缝升级
  4. 性能优化:针对ARM64架构调整Harbor配置参数

二、离线安装包制作流程

2.1 环境准备

  • 基础系统:Ubuntu 20.04 LTS ARM64版(内核≥5.4)
  • 依赖工具
    1. sudo apt update && sudo apt install -y \
    2. docker.io docker-compose make git wget \
    3. libldap2-dev libssl-dev
  • 资源要求
    • CPU:4核ARMv8(建议鲲鹏920/飞腾D2000)
    • 内存:8GB+
    • 磁盘:200GB+(建议SSD)

2.2 源代码编译

  1. 获取Harbor源码
    1. git clone https://github.com/goharbor/harbor.git
    2. cd harbor
    3. git checkout v2.9.0
  2. 修改Makefile
    Makefile中添加ARM64架构标识:
    1. PLATFORM ?= linux-arm64
    2. BUILD_ARGS += --platform=$(PLATFORM)
  3. 编译二进制文件
    1. make package GO_BUILD_FLAGS="-buildmode=pie"
    生成文件位于./make/harbor-offline-installer-v2.9.0.tgz

2.3 离线包增强

  1. 添加ARM64依赖
    1. tar -zxvf harbor-offline-installer-v2.9.0.tgz
    2. cd harbor
    3. # 替换x86二进制为ARM64版本
    4. wget https://storage.googleapis.com/harbor-releases/release-2.9.0/arm64/harbor-core
    5. chmod +x harbor-core
    6. mv harbor-core /path/to/harbor/bin/
  2. 生成校验文件
    1. sha256sum * > checksums.txt
    2. tar -czvf harbor-offline-arm64-v2.9.0.tgz *

三、离线安装实施步骤

3.1 主机配置

  1. 禁用交换分区
    1. sudo swapoff -a
    2. sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
  2. 内核参数优化
    1. echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
    2. sudo sysctl -p

3.2 部署流程

  1. 上传安装包
    1. scp harbor-offline-arm64-v2.9.0.tgz user@arm64-server:/opt/
  2. 解压配置
    1. cd /opt
    2. tar -zxvf harbor-offline-arm64-v2.9.0.tgz
    3. cp harbor.yml.tmpl harbor.yml
  3. 修改配置文件
    1. hostname: registry.example.com
    2. http:
    3. port: 8080
    4. storage_driver:
    5. name: filesystem
    6. options:
    7. rootdirectory: /data/registry
    8. arm64:
    9. enabled: true
  4. 执行安装
    1. sudo ./install.sh --offline --platform arm64

四、升级部署方案

4.1 升级前检查

  1. 版本兼容性验证
    1. docker exec -it harbor-db psql -U postgres -d registry -c "SELECT version FROM schema_migrations ORDER BY id DESC LIMIT 1;"
  2. 数据备份
    1. docker run --rm -v /var/lib/registry:/data alpine sh -c "tar czvf /data/backup-$(date +%Y%m%d).tar.gz /data"

4.2 升级实施

  1. 停止服务
    1. cd /opt/harbor
    2. docker-compose down
  2. 替换二进制文件
    1. tar -zxvf harbor-offline-arm64-v2.9.0.tgz --strip-components=1 -C /opt/harbor
  3. 数据库迁移
    1. ./prepare --with-clair --with-trivy --platform arm64
    2. docker-compose up -d

五、常见问题处理

5.1 架构不匹配错误

现象standard_init_linux.go:228: exec user process caused: exec format error
解决方案

  1. 检查容器镜像架构:
    1. docker inspect harbor-core | grep Architecture
  2. 重新构建ARM64专用镜像:
    1. FROM arm64v8/ubuntu:20.04
    2. RUN apt update && apt install -y ...

5.2 性能优化建议

  1. 存储驱动选择
    • 推荐使用filesystem驱动配合SSD
    • 大规模部署时可考虑s3swift存储
  2. JVM参数调整
    harbor.yml中添加:
    1. java_opts: "-Xms2g -Xmx4g -XX:+UseG1GC"

六、验证与测试

  1. 功能验证
    1. curl -u admin:Harbor12345 http://localhost:8080/api/v2.0/health
  2. 性能测试
    1. # 使用reg客户端测试上传下载
    2. reg push localhost:8080/library/ubuntu:latest
    3. reg pull localhost:8080/library/ubuntu:latest

七、总结与展望

本方案通过完整的离线包制作流程、架构适配优化和升级路径设计,实现了Harbor 2.9.0在ARM64环境下的稳定部署。后续可探索:

  1. 与KubeEdge等边缘计算框架的集成
  2. 基于ARM64的轻量化部署方案
  3. 国产化存储后端(如华为OceanStor)的适配

建议定期检查Harbor官方安全公告,保持与最新安全补丁同步。对于超大规模部署,可考虑分阶段升级策略,先在测试环境验证后再推广到生产环境。

相关文章推荐

发表评论