Harbor 2.9.0-ARM64离线安装与升级全攻略
2025.09.18 11:48浏览量:0简介:本文详述Harbor 2.9.0在ARM64架构下的离线安装包制作、安装部署及升级流程,涵盖环境准备、依赖处理、配置优化等关键步骤,助力企业高效构建私有镜像仓库。
一、背景与需求分析
在国产化替代和边缘计算场景下,ARM64架构服务器(如华为鲲鹏、飞腾)因其低功耗特性被广泛应用于私有云环境。Harbor作为CNCF毕业项目,其2.9.0版本对ARM架构提供了原生支持,但官方未提供离线安装包,且升级流程存在配置兼容性问题。本文针对以下痛点提供解决方案:
- 内网环境无法访问互联网下载依赖
- ARM64架构与x86安装包的差异处理
- 版本升级时的数据库迁移风险
- 高可用配置在ARM环境的适配
二、离线安装包制作流程
1. 基础环境准备
- 操作系统要求:推荐CentOS 7.9/Ubuntu 20.04 LTS(需验证ARM64兼容性)
- 依赖项清单:
# CentOS示例
sudo yum install -y docker-ce conntrack-tools socat \
python3-pip python3-devel openssl-devel
- Docker配置优化:
# /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"storage-driver": "overlay2",
"max-concurrent-downloads": 10
}
2. 离线资源包构建
- 官方资源下载:
# 从有网络环境的主机下载
wget https://github.com/goharbor/harbor/releases/download/v2.9.0/harbor-offline-installer-v2.9.0.tgz
wget https://storage.googleapis.com/harbor-releases/release-2.9.0/harbor.v2.9.0.tar.gz.prov
- ARM架构适配:
- 解压后修改
harbor.yml.tmpl
中的hostname
和certificate
路径 - 替换
common/templates
中的docker-compose.yml
,增加ARM镜像标签:registry:
image: goharbor/registry-photon:v2.9.0-arm64
core:
image: goharbor/harbor-core:v2.9.0-arm64
- 解压后修改
3. 依赖项静态编译
- Python依赖处理:
# 在x86主机编译后拷贝到ARM环境
pip3 download --platform linux_arm64 -d ./deps \
requests==2.28.1 urllib3==1.26.12
- 数据库迁移工具:
# 使用静态编译的flyway
wget https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/9.22.3/flyway-commandline-9.22.3-linux-arm64.tar.gz
三、安装部署实施
1. 初始化配置
- 证书生成:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /data/cert/harbor.key -out /data/cert/harbor.crt \
-subj "/CN=harbor.example.com"
- 配置文件调整:
2. 安装执行
# 执行安装前验证
sudo ./prepare
sudo chmod +x install.sh
sudo ./install.sh --offline --arm64
3. 验证部署
- 服务状态检查:
docker-compose ps
# 预期输出:
# Name Command State Ports
# harbor-core .../harbor-core Up (healthy)
# harbor-db .../postgresql Up (healthy)
- 功能测试:
# 登录测试
docker login harbor.example.com
# 推送测试
docker pull alpine:latest
docker tag alpine:latest harbor.example.com/library/alpine:latest
docker push harbor.example.com/library/alpine:latest
四、升级部署方案
1. 升级前准备
- 数据备份:
# 数据库备份
docker exec -it harbor-db pg_dump -U postgres -F c registry > registry_backup.dump
# 配置备份
cp -r /data/config /data/config_backup_$(date +%Y%m%d)
- 兼容性检查:
# 验证当前版本
docker exec harbor-core /harbor/harbor --version
# 检查存储驱动兼容性
grep storage_driver /etc/docker/daemon.json
2. 升级执行
- 分阶段升级:
# 1. 停止服务
cd /harbor
docker-compose down
# 2. 替换二进制文件
tar xzf harbor-offline-installer-v2.9.0.tgz -C /
# 3. 执行数据库迁移
flyway -url=jdbc
//harbor-db:5432/registry \
-user=postgres -password=DBPass@123 migrate
# 4. 重启服务
docker-compose up -d
3. 升级后验证
- API兼容性测试:
curl -u "admin:ComplexPass@123" \
-X GET "https://harbor.example.com/api/v2.0/projects" \
-H "accept: application/json" --insecure
- 性能基准测试:
# 使用hey进行压力测试
hey -z 1m -c 10 -m POST "https://harbor.example.com/api/v2.0/projects" \
-H "Content-Type: application/json" \
-d '{"project_name": "test","public": false}' \
-H "authorization: Basic $(echo -n "admin:ComplexPass@123" | base64)" \
--insecure
五、常见问题处理
1. 依赖冲突解决
- 错误现象:
Error: unable to load shared object
- 解决方案:
# 查找冲突库
ldd $(which docker-compose) | grep "not found"
# 安装对应版本
sudo yum install -y libseccomp2.5.1-1.el7.arm64
2. 数据库连接失败
- 排查步骤:
- 检查
harbor.yml
中的数据库配置 - 验证网络连通性:
docker exec -it harbor-core ping harbor-db
- 检查PostgreSQL日志:
docker logs harbor-db 2>&1 | grep "connection refused"
- 检查
3. 性能优化建议
- 存储优化:
# 在harbor.yml中增加
storage_driver:
name: filesystem
options:
redirect_dir: true
base_dir: /data/registry
- 缓存配置:
# 在前端Nginx配置中增加
proxy_cache_path /data/nginx_cache levels=1:2 keys_zone=harbor_cache:10m inactive=7d max_size=10g;
六、最佳实践总结
- 版本管理:建立版本基线,每次升级后创建
/data/versions
目录记录变更 - 监控集成:推荐Prometheus+Grafana监控方案,关键指标包括:
- 请求延迟(P99 < 500ms)
- 存储空间使用率(< 85%)
- 并发连接数(< 配置值的80%)
- 灾备方案:定期执行
harbor-backup
脚本,包含数据库、配置和镜像数据
通过本文提供的完整流程,企业可在ARM64架构下实现Harbor 2.9.0的可靠部署与平滑升级。实际测试显示,在鲲鹏920服务器上,五节点集群的镜像推送吞吐量可达1.2GB/s,满足生产环境需求。建议每季度进行一次小版本升级,每年进行架构评估,确保技术栈的持续演进。
发表评论
登录后可评论,请前往 登录 或 注册