logo

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

作者:carzy2025.09.26 20:51浏览量:0

简介:本文详细阐述Harbor 2.9.0在ARM64架构下的离线安装包制作、部署流程及升级策略,提供从环境准备到服务验证的全流程操作指南,助力企业实现私有镜像仓库的自主可控部署。

一、背景与需求分析

随着ARM架构在数据中心和边缘计算场景的普及,Harbor作为主流私有镜像仓库,其ARM64版本支持成为关键需求。2.9.0版本引入了多架构镜像索引优化、存储配额增强等特性,但官方未提供完整的ARM64离线包,需手动构建。

典型应用场景包括:

  1. 国产化替代项目中的纯ARM环境部署
  2. 离线数据中心或专有云环境
  3. 混合架构集群中的镜像统一管理

二、离线安装包制作流程

1. 基础环境准备

  • 硬件要求:ARM64服务器(推荐8核16G+)
  • 系统要求:Ubuntu 20.04/22.04 LTS或CentOS 8 Stream
  • 依赖安装:
    ```bash

    Ubuntu示例

    sudo apt update
    sudo apt install -y docker.io make golang git

CentOS示例

sudo dnf install -y docker make golang git

  1. ## 2. 源码编译构建
  2. 1. 克隆Harbor源码(指定2.9.0版本):
  3. ```bash
  4. git clone https://github.com/goharbor/harbor.git
  5. cd harbor
  6. git checkout v2.9.0
  1. 修改Makefile启用ARM64编译:
    ```makefile

    修改前

    PLATFORM ?= linux-amd64

修改后

PLATFORM ?= linux-arm64

  1. 3. 执行编译(需连接外网下载依赖):
  2. ```bash
  3. make compile GOBUILDFLAGS="-mod=vendor"

3. 离线包制作

  1. 收集所有依赖文件:
    ```bash

    创建依赖目录

    mkdir -p offline-package/{bin,configs,templates}

复制编译产物

cp -r ./bin/harbor_ offline-package/bin/
cp ./make/
.yaml offline-package/configs/

打包Docker镜像(需提前pull基础镜像)

docker pull bitnami/postgresql:13-debian-10
docker save -o postgresql.tar bitnami/postgresql:13-debian-10

  1. 2. 生成安装脚本:
  2. ```bash
  3. cat > install.sh <<EOF
  4. #!/bin/bash
  5. # 加载Docker镜像
  6. docker load -i postgresql.tar
  7. # 安装Harbor服务
  8. cp -r configs/* /etc/harbor/
  9. systemctl enable harbor
  10. EOF
  1. 最终打包:
    1. tar -czvf harbor-2.9.0-arm64-offline.tar.gz \
    2. offline-package/ \
    3. install.sh \
    4. README.md

三、离线部署实施

1. 环境初始化

  1. # 系统参数调优
  2. cat >> /etc/sysctl.conf <<EOF
  3. vm.max_map_count=262144
  4. fs.file-max=65536
  5. EOF
  6. sysctl -p
  7. # 用户权限配置
  8. useradd -m harbor
  9. mkdir /data
  10. chown -R harbor:harbor /data

2. 服务部署

  1. 解压安装包:

    1. tar -xzvf harbor-2.9.0-arm64-offline.tar.gz -C /opt
    2. cd /opt/harbor-offline
  2. 修改配置文件:

    1. # harbor.yml示例配置
    2. hostname: registry.example.com
    3. http:
    4. port: 80
    5. https:
    6. certificate: /data/cert/server.crt
    7. private_key: /data/cert/server.key
    8. database:
    9. password: root123
    10. max_idle_conns: 50
    11. max_open_conns: 100
    12. storage_driver:
    13. name: filesystem
    14. filesystem:
    15. rootpath: /data/registry
  3. 执行安装:

    1. chmod +x install.sh
    2. ./install.sh --offline

3. 验证部署

  1. # 服务状态检查
  2. systemctl status harbor
  3. # 端口监听验证
  4. netstat -tulnp | grep 80
  5. # 客户端测试
  6. docker login registry.example.com
  7. docker pull nginx:alpine
  8. docker tag nginx:alpine registry.example.com/library/nginx:alpine
  9. docker push registry.example.com/library/nginx:alpine

四、升级部署策略

1. 升级前准备

  1. 数据备份:
    ```bash

    数据库备份

    docker exec -it harbor-db \
    pg_dump -U postgres -h 127.0.0.1 harbor > harbor_backup.sql

配置备份

cp /etc/harbor/harbor.yml /etc/harbor/harbor.yml.bak

  1. 2. 兼容性检查:
  2. - 验证存储驱动兼容性(filesystem/s3/azure等)
  3. - 检查认证插件版本(如OAuth2LDAP
  4. ## 2. 升级实施
  5. 1. 停止服务:
  6. ```bash
  7. cd /opt/harbor
  8. docker-compose down
  1. 替换二进制文件:
    ```bash

    解压新版本离线包

    tar -xzvf harbor-2.10.0-arm64-offline.tar.gz -C /tmp

覆盖执行文件

cp /tmp/harbor-offline/bin/harbor_* /opt/harbor/bin/

  1. 3. 数据库迁移:
  2. ```bash
  3. # 执行迁移脚本(如有)
  4. cd /opt/harbor/migrations/postgresql
  5. for script in *.up.sql; do
  6. docker exec -i harbor-db psql -U postgres -h 127.0.0.1 harbor < $script
  7. done
  1. 重启服务:
    1. cd /opt/harbor
    2. docker-compose up -d

3. 升级后验证

  1. 版本确认:

    1. curl -I http://registry.example.com/api/v2.0/systeminfo
    2. # 应返回HTTP 200且包含"harbor_version": "2.10.0"
  2. 功能测试:

  • 镜像推拉测试
  • 机器人账号API调用
  • 复制策略验证

五、常见问题处理

1. 依赖冲突解决

  • 现象:Docker镜像加载失败
  • 解决方案:
    1. # 检查镜像架构
    2. docker inspect --format='{{.Architecture}}' bitnami/postgresql:13-debian-10
    3. # 应返回"arm64",否则需重新pull正确版本

2. 性能优化建议

  1. 存储配置优化:

    1. # 修改storage配置
    2. storage_driver:
    3. name: filesystem
    4. filesystem:
    5. rootpath: /data/registry
    6. # 启用目录遍历缓存
    7. directory_traverse_cache: true
  2. 数据库调优:

    1. # /etc/postgresql/postgresql.conf修改项
    2. shared_buffers = 1GB
    3. work_mem = 8MB
    4. maintenance_work_mem = 512MB

3. 高可用方案

  1. 主从复制配置:

    1. # harbor.yml添加
    2. replication:
    3. - name: primary_to_standby
    4. url: http://standby-harbor:80
    5. disabled: false
  2. 负载均衡配置:

    1. # nginx.conf示例
    2. upstream harbor {
    3. server primary-harbor:80 max_fails=3 fail_timeout=30s;
    4. server standby-harbor:80 backup;
    5. }

六、最佳实践建议

  1. 版本管理策略:
  • 保持N-1版本备份(如部署2.10.0时保留2.9.0)
  • 建立版本升级矩阵,记录兼容性信息
  1. 监控告警设置:
    ```yaml

    prometheus配置示例

  • job_name: ‘harbor’
    static_configs:
    • targets: [‘harbor:9090’]
      metrics_path: ‘/metrics’
      ```
  1. 安全加固措施:
  • 启用自动TLS证书轮换
  • 配置镜像签名验证
  • 定期审计API调用日志

通过本文的详细指导,开发者可以系统掌握Harbor 2.9.0在ARM64架构下的离线部署全流程,从环境准备到高级配置均提供可落地的操作方案。实际部署中建议先在测试环境验证完整流程,再逐步推广到生产环境。

相关文章推荐

发表评论

活动