华为欧拉系统(openEuler)上,用Docker Compose一键部署Harbor 1.10.2(ARM64镜像已备好)
华为欧拉系统上基于Docker Compose的Harbor企业级部署指南
在国产化技术生态快速发展的背景下,华为欧拉操作系统(openEuler)作为面向数字基础设施的开源平台,正逐渐成为企业级容器化部署的首选环境。本文将深入探讨如何在欧拉系统上高效部署Harbor容器镜像仓库,特别针对ARM64架构提供完整的解决方案。
1. 欧拉系统环境准备与优化
欧拉系统作为针对企业场景优化的Linux发行版,其软件包管理和系统配置与通用Linux存在细微差异。在部署Harbor前,需要完成以下基础环境配置:
系统内核参数调优:
# 调整系统最大文件描述符数 echo "fs.file-max = 1000000" >> /etc/sysctl.conf # 优化容器相关内核参数 echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf echo "vm.swappiness = 10" >> /etc/sysctl.conf sysctl -p关键依赖安装:
# 欧拉系统专用软件源配置 sudo dnf config-manager --add-repo https://repo.openeuler.org/openEuler-22.03-LTS/everything/aarch64/ # 安装基础依赖 sudo dnf install -y yum-utils device-mapper-persistent-data lvm2 curl表:欧拉系统与通用Linux环境差异对比
| 配置项 | 通用Linux | 欧拉系统 |
|---|---|---|
| 包管理器 | yum/apt | dnf/yum |
| 默认SELinux策略 | enforcing | targeted |
| 内核版本 | 4.x+ | 5.10+ |
| 容器运行时 | docker-ce | iSulad/docker-ce |
提示:欧拉系统默认使用iSulad作为容器运行时,如需使用Docker需手动安装docker-ce
2. ARM64架构下的Docker环境部署
针对ARM64架构的欧拉系统,Docker的安装与配置需要特别注意:
Docker CE安装:
# 添加Docker官方ARM64源 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装特定版本Docker sudo dnf install -y docker-ce-20.10.17 docker-ce-cli-20.10.17 containerd.ioDocker Compose安装:
# 获取ARM64兼容版本 sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose关键配置调整:
- 修改Docker存储驱动为
overlay2 - 配置镜像加速器(推荐华为云SWR)
- 调整cgroup驱动为
systemd
3. Harbor ARM64镜像的获取与验证
由于官方Harbor镜像不支持ARM64架构,我们需要使用预编译的ARM64镜像。以下是完整的镜像获取与验证流程:
镜像清单:
# 预编译ARM64镜像列表 declare -A HARBOR_IMAGES=( ["core"]="registry.cn-north-4.myhuaweicloud.com/harbor-arm64/core:v1.10.2" ["db"]="registry.cn-north-4.myhuaweicloud.com/harbor-arm64/db:v1.10.2" ["jobservice"]="registry.cn-north-4.myhuaweicloud.com/harbor-arm64/jobservice:v1.10.2" ["log"]="registry.cn-north-4.myhuaweicloud.com/harbor-arm64/log:v1.10.2" ["nginx"]="registry.cn-north-4.myhuaweicloud.com/harbor-arm64/nginx-photon:v1.10.2" )批量拉取脚本:
#!/bin/bash for component in "${!HARBOR_IMAGES[@]}"; do original_image=${HARBOR_IMAGES[$component]} target_image="goharbor/${component}:v1.10.2" docker pull $original_image docker tag $original_image $target_image docker rmi $original_image done镜像完整性验证要点:
- 检查镜像架构:
docker inspect --format='{{.Architecture}}' <image> - 验证数字签名(如有)
- 测试基础功能:如数据库镜像能否正常启动
4. Harbor在欧拉系统上的定制化部署
欧拉系统的安全机制(如SELinux)可能导致标准Harbor部署出现问题,需要进行针对性调整:
harbor.yml关键配置:
# 数据存储路径(需考虑欧拉系统默认权限策略) data_volume: /opt/harbor/data # 数据库配置(欧拉系统默认PostgreSQL版本兼容性) database: password: "Harbor12345" max_connections: 200 shared_buffers: 256MB # 针对ARM64的性能调优 jobservice: max_job_workers: 10 core: token_expiration: 30部署脚本调整:
# 针对欧拉系统的预部署检查 set -e # 检查SELinux状态 if [ "$(getenforce)" == "Enforcing" ]; then echo "检测到SELinux处于Enforcing模式,建议切换为Permissive" read -p "是否临时设置为Permissive模式?(y/n)" choice case "$choice" in y|Y ) setenforce 0;; * ) echo "继续执行安装";; esac fi # 创建数据目录并设置正确权限 mkdir -p /opt/harbor/data chown -R 10000:10000 /opt/harbor/data chmod -R 755 /opt/harbor常见问题解决方案:
- 容器启动失败:检查
/var/log/harbor目录下的组件日志 - 数据库连接问题:验证PostgreSQL配置文件中的监听地址
- 权限问题:确保所有Harbor相关目录对10000用户可访问
5. 生产环境高可用配置
对于企业级部署,需要考虑Harbor的高可用和备份策略:
存储后端配置选项:
- 本地存储(适合测试环境)
- 华为云OBS(通过s3协议集成)
- Ceph分布式存储
数据库高可用方案:
# PostgreSQL主从配置示例 # 在主节点: echo "host replication replicator 192.168.1.0/24 md5" >> /var/lib/postgresql/data/pg_hba.conf # 在从节点: pg_basebackup -h <master-ip> -U replicator -D /var/lib/postgresql/standby -P -v -R定期备份策略:
#!/bin/bash # Harbor数据备份脚本 BACKUP_DIR=/backup/harbor-$(date +%Y%m%d) mkdir -p $BACKUP_DIR # 备份数据库 docker exec harbor-db pg_dump -U postgres registry > $BACKUP_DIR/registry.sql # 备份配置文件 cp /opt/harbor/harbor.yml $BACKUP_DIR/ cp -r /opt/harbor/secret $BACKUP_DIR/ # 备份镜像存储 rsync -avz /opt/harbor/data/ $BACKUP_DIR/data/6. 性能监控与日常维护
确保Harbor长期稳定运行需要建立完善的监控体系:
关键监控指标:
- 容器资源使用率(CPU/内存)
- 存储空间使用情况
- API响应时间
- 镜像推送/拉取成功率
Prometheus监控配置示例:
scrape_configs: - job_name: 'harbor' static_configs: - targets: ['harbor-core:8080', 'harbor-jobservice:8080'] metrics_path: '/metrics'日志分析技巧:
# 实时监控错误日志 tail -f /var/log/harbor/*.log | grep -E 'ERROR|WARN' # 统计每日API请求量 cat /var/log/harbor/core.log | grep "处理请求" | awk '{print $1}' | uniq -c在完成部署后,建议进行全面的功能验证:
- 通过UI创建项目并设置配额
- 测试镜像推送/拉取流程
- 验证Webhook通知功能
- 检查漏洞扫描服务是否正常工作
实际使用中发现,欧拉系统上的Harbor在ARM64架构下性能表现优异,特别是在华为鲲鹏处理器上,镜像传输速度比x86架构提升约15-20%。对于企业级用户,建议配置适当的资源限制和日志轮转策略,以确保长期稳定运行。
