华为鲲鹏/麒麟ARM服务器离线部署Harbor全实战指南
在金融、政务等对数据安全要求极高的行业,内网隔离环境下的容器镜像管理一直是技术团队的痛点。当标准解决方案依赖外网资源时,如何在华为鲲鹏920、麒麟等ARM架构服务器上快速搭建私有化Harbor仓库?本文将彻底解决这个难题——不仅提供预编译的ARM64镜像包,更涵盖从传输部署到故障排查的全链路实践细节。
1. 离线环境部署的核心挑战与解决方案
国产化ARM架构服务器在离线环境中部署Harbor时,会遇到三重典型障碍:
- 架构兼容性问题:官方Docker Hub镜像大多仅支持x86架构
- 依赖链断裂:无法实时下载安装包和系统依赖
- 证书与配置隔离:内网域名与公网证书体系不兼容
针对这些痛点,我们采用"预编译+全量打包"的方案:
# 预编译资源包内容结构 harbor-arm64-offline-pkg/ ├── docker-images/ # 10个ARM架构Harbor组件镜像 ├── binary-packages/ # Docker/docker-compose二进制文件 ├── certs/ # 自签名证书模板 └── install-scripts/ # 自动化部署脚本集提示:所有镜像已通过华为欧拉系统兼容性测试,适配Kunpeng-920芯片组
2. 离线安装前的系统准备
2.1 基础环境检查
在华为泰山服务器或类似ARM64设备上,需确认以下最低配置要求:
| 组件 | 最低版本 | 检测命令 |
|---|---|---|
| 操作系统 | EulerOS 2.8 | cat /etc/os-release |
| 内核版本 | 4.19+ | uname -r |
| 磁盘空间 | 100GB | df -h /data |
| 内存 | 8GB | free -h |
2.2 离线安装Docker引擎
对于无法连接外网的机器,需要提前准备Docker-CE的ARM64版本安装包:
# 本地安装Docker(示例为18.09.9版本) tar -zxvf docker-18.09.9-arm64.tar.gz cd docker-arm64/ rpm -ivh *.rpm --nodeps --force systemctl enable docker常见问题处理:
- 依赖缺失:将缺失的rpm包一并打包到离线介质
- SELinux冲突:临时关闭
setenforce 0或调整策略
3. Harbor离线安装全流程
3.1 传输与解压资源包
通过安全U盘或内部文件服务器获取离线安装包后:
# 建议部署目录结构 mkdir -p /opt/harbor/{data,logs,cert} tar -zxvf harbor-arm64-offline-pkg-2.6.1.tar.gz -C /opt/harbor3.2 关键配置调整
修改harbor.yml时需要特别注意:
hostname: internal.domain.com # 必须匹配内网DNS解析 data_volume: /opt/harbor/data # 存储路径需有足够权限 chart: absolute_url: disabled # 离线环境关闭chart远程下载 database: password: "Complex@Pass123" # 修改默认密码证书配置技巧:
- 使用内网CA签发的证书替换
/opt/harbor/cert下文件 - 无证书时可临时关闭HTTPS(不推荐生产环境)
3.3 镜像加载与启动
批量导入预编译镜像:
cd /opt/harbor/docker-images/ for img in *.tar; do docker load -i $img; done启动服务时的典型权限问题解决方案:
# 修复数据目录权限 chown -R 10000:10000 /opt/harbor/data # 检查内核参数 sysctl -w vm.max_map_count=2621444. 生产环境调优与维护
4.1 性能优化参数
在docker-compose.yml中调整关键服务资源限制:
services: core: deploy: resources: limits: cpus: '2' memory: 4G redis: command: ["--maxmemory 2gb"]4.2 备份恢复方案
离线环境需建立定期备份机制:
# 数据库备份 docker exec harbor-db pg_dump -U postgres registry > registry_$(date +%Y%m%d).sql # 镜像数据备份 rsync -avz /opt/harbor/data /backup/harbor-data-$(date +%Y%m%d)4.3 版本升级策略
ARM架构下的特殊注意事项:
- 提前获取新版本ARM镜像包
- 对比
harbor.yml配置差异 - 在测试环境验证数据迁移
5. 典型故障排查手册
以下是鲲鹏平台特有问题的解决方法:
问题1:容器频繁重启
- 检查
dmesg | grep -i error是否存在硬件兼容性告警 - 调整内核参数:
echo 2048 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
问题2:镜像推送失败
- 确认
registry服务存储空间:df -h /opt/harbor/data/registry - 检查防火墙规则:
iptables -L -n | grep 5000
问题3:UI访问卡顿
- 优化Nginx配置:
worker_processes设置为CPU核数 - 启用Gzip压缩:在
nginx.conf添加gzip on;
在实际政务云项目中,我们发现麒麟系统对OverlayFS的支持需要额外加载内核模块。通过modprobe overlay加载后,需在/etc/docker/daemon.json中明确指定存储驱动:
{ "storage-driver": "overlay2", "bip": "172.17.0.1/16" }