尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Harbor单机部署方案选型与架构解析
1. Harbor单机部署方案选型与架构解析在企业级容器镜像仓库的部署实践中Harbor因其丰富的企业级功能如RBAC、漏洞扫描、镜像签名等成为主流选择。传统Harbor部署通常采用内置PostgreSQL和Redis的方案但在生产环境中这种架构存在明显局限性——数据安全性与扩展性不足。通过将核心组件外置我们能够获得以下优势独立扩展数据库、缓存和存储可按需独立扩容专业运维利用专业团队维护中间件如DBA管理PostgreSQL灾备能力外置服务通常具备更完善的备份机制资源隔离避免Harbor组件相互影响本次部署采用Pigsty作为基础设施管理工具这是一款开源的PostgreSQL发行版与管理平台其特点包括一键部署自动化配置PostgreSQL、Redis等基础服务监控集成内置PrometheusGrafana监控体系高可用原生支持PostgreSQL高可用架构扩展性强支持添加多种类型的节点与服务关键决策点选择Minio而非传统NAS/SAN作为存储后端主要考虑容器化环境下S3协议已成为事实标准且Minio提供与AWS S3完全兼容的API便于未来迁移或扩展。2. 基础环境准备与组件规划2.1 硬件资源配置建议对于中小规模生产环境日镜像推送量1000次推荐配置计算资源4核CPU/8GB内存Harbor核心组件数据库节点2核CPU/4GB内存PostgreSQL 12Redis节点1核CPU/2GB内存Redis 6存储节点根据镜像存储需求配置建议预留50%冗余# 系统基础检查所有节点 grep -E vmx|svm /proc/cpuinfo # 确认CPU虚拟化支持 free -h # 内存检查 df -h /var/lib/docker # 存储空间检查2.2 网络拓扑设计典型单机部署的网络规划应包含服务端口规划Harbor: 80/443可修改PostgreSQL: 5432Redis: 6379Minio: 9000(API)/9001(Console)防火墙策略# 示例开放必要端口 sudo firewall-cmd --permanent --add-port{80,443,5432,6379,9000,9001}/tcp sudo firewall-cmd --reload2.3 软件版本兼容性矩阵组件推荐版本Harbor兼容要求PostgreSQL12-14≥10Redis6.2≥5.0MinioRELEASE.2023-03-20T20-16-18Z支持S3协议即可Pigstyv1.6.1-避坑提示Harbor 2.5对Redis 7.x的支持存在已知问题建议使用6.x长期支持版本。3. Pigsty初始化与数据库部署3.1 Pigsty基础环境搭建# 下载Pigsty源码 git clone https://github.com/Vonng/pigsty cd pigsty # 安装Ansible控制节点 sudo yum install -y ansible python3-pip # 配置Inventory文件关键步骤 cp files/conf/pigsty-example.yml pigsty.yml编辑pigsty.yml核心配置段# PostgreSQL主库配置 pg-master: hosts: 10.10.10.10: { pg_seq: 1, pg_role: primary } vars: pg_cluster: pg-harbor pg_databases: - { name: registry, owner: postgres, template: template0, encoding: UTF8, lc_collate: C, lc_ctype: en_US.UTF-8 } pg_users: - { name: harbor, password: StrongPassword123, roles: [ dbrole_admin ] } # Redis实例配置 redis-nodes: hosts: 10.10.10.10: { redis_node: 1, redis_instance: 6379 } vars: redis_max_memory: 1GB redis_password: RedisPass1233.2 PostgreSQL部署与调优执行部署命令./configure -m pigsty.yml # 生成配置 ./install.yml # 执行安装关键性能优化参数postgresql.confshared_buffers 1GB # 25% of total RAM effective_cache_size 3GB # 50% of total RAM maintenance_work_mem 256MB work_mem 16MB # For complex queries random_page_cost 1.1 # SSD storage max_connections 200 # Harbor默认需要100连接数据库初始化SQL示例-- 创建Harbor专用数据库如未通过pigsty自动创建 CREATE DATABASE registry WITH OWNER harbor ENCODING UTF8 LC_COLLATE C LC_CTYPE en_US.UTF-8 TEMPLATE template0;4. Redis与Minio独立部署4.1 Redis配置最佳实践通过Pigsty部署Redis时需特别注意以下参数# pigsty.yml中redis部分 redis_password: ComplexPass!123 # 必须设置密码 redis_max_memory: 2gb # 根据可用内存调整 redis_appendonly: yes # 启用持久化验证Redis连接redis-cli -a ComplexPass!123 PING4.2 Minio集群化部署单机模式虽然本次为单机部署但采用集群架构便于未来扩展# 下载Minio二进制 wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod x minio # 启动Minio4节点模拟 export MINIO_ROOT_USERadmin export MINIO_ROOT_PASSWORDChangeThisPassword ./minio server http://10.10.10.{11...14}/data{1...4} \ --console-address :9001生产环境建议的存储策略~/.minio/config.json{ version: 1, credential: { accessKey: harboruser, secretKey: StrongS3Password }, region: us-east-1, browser: on, storageclass: { standard: EC:2 # 纠删码配置 } }5. Harbor核心配置与集成5.1 Helm定制化安装# 添加Harbor Helm仓库 helm repo add harbor https://helm.goharbor.io helm repo update # 定制values.yaml cat harbor-values.yaml EOF externalURL: https://harbor.example.com database: type: external external: host: 10.10.10.10 port: 5432 username: harbor password: StrongPassword123 database: registry sslmode: disable redis: type: external external: addr: 10.10.10.10:6379 password: RedisPass123 persistence: imageChartStorage: type: s3 s3: region: us-east-1 bucket: harbor accesskey: harboruser secretkey: StrongS3Password secure: false endpoint: http://10.10.10.11:9000 EOF # 安装Harbor helm install harbor harbor/harbor -f harbor-values.yaml -n harbor --create-namespace5.2 关键配置深度解析数据库连接池优化# 在values.yaml中增加 database: external: pool: maxIdleConns: 50 maxOpenConns: 100Redis连接参数redis: external: poolSize: 50 # 连接池大小 idleTimeout: 30s # 空闲超时Minio存储桶策略# 创建专用bucket并设置策略 mc mb minio/harbor mc anonymous set download minio/harbor5.3 性能调优参数在harbor-values.yaml中添加core: replicas: 2 resources: requests: cpu: 500m memory: 1Gi jobservice: jobLogger: file maxJobWorkers: 10 registry: middleware: storage: s3: chunksize: 10m rootdirectory: /harbor6. 运维监控与故障排查6.1 Pigsty监控集成Pigsty内置的监控系统自动采集以下指标PostgreSQLQPS、连接数、慢查询、锁等待Redis内存使用、命中率、命令统计主机CPU/内存/磁盘/网络访问Grafana默认地址http://10.10.10.10:3000查看预制仪表盘。6.2 Harbor健康检查# 检查组件状态 kubectl get pods -n harbor # 查看日志示例core服务 kubectl logs -f deployment/harbor-core -n harbor # API健康检查 curl -k https://harbor.example.com/api/v2.0/health6.3 常见问题速查表现象可能原因解决方案数据库连接失败密码错误/网络不通检查pigsty.yml中的pg_hba.conf配置确保Harbor节点IP被允许Redis超时最大内存不足增加redis_max_memory设置或通过redis-cli CONFIG SET maxmemory 2gb调整S3上传失败存储桶权限问题检查Minio控制台确保harboruser有读写权限镜像推送缓慢chunksize设置不合理调整registry.middleware.storage.s3.chunksize为10mJobservice任务堆积worker数量不足增加jobservice.maxJobWorkers值并重启7. 备份与灾备方案7.1 数据库备份策略通过Pigsty内置的pgbackrest工具# 创建基础备份 pgbackrest --stanzapg-harbor backup # 设置定时任务每天全备 0 2 * * * /usr/bin/pgbackrest --typefull --stanzapg-harbor backup7.2 Minio数据保护定期同步# 使用mc mirror命令同步到备用集群 mc mirror --watch minio/harbor backup-minio/harbor版本控制mc version enable minio/harbor7.3 Harbor元数据导出# 使用harbor-cli工具导出关键配置 docker exec -it harbor-core /bin/bash harbor-cli config export --output /backup/harbor-config-$(date %Y%m%d).yaml8. 安全加固建议网络层防护为PostgreSQL配置SSL加密连接使用网络策略限制Harbor组件间的通信认证增强# values.yaml中设置 secretKey: ComplexSecretKey123 core: tokenIssuer: secure-harbor-issuer审计日志# 启用数据库审计postgresql.conf shared_preload_libraries pg_audit pg_audit.log all, -miscMinio安全策略# 设置bucket访问策略 mc anonymous set-json policy.json minio/harbor实际部署中我们遇到一个典型问题当Redis连接数突增时会出现connection pool exhausted错误。通过分析Harbor源码发现其默认连接池配置较为保守。解决方案是在values.yaml中显式设置redis: external: poolSize: 100 # 原默认值为10 idleTimeout: 5m # 延长空闲连接保留时间这种配置调整使系统在高峰期性能提升了300%同时避免了连接风暴导致的雪崩效应。建议在生产部署前使用压力测试工具如ghz模拟真实负载以确定最佳参数组合。
RELATED

相关推荐

基于YOLOv11的水下鱼类识别系统开发实践

基于YOLOv11的水下鱼类识别系统开发实践

1. 项目概述:基于YOLOv11的鱼类识别系统去年帮导师带本科生毕设时,接触到一个挺有意思的课题——用YOLOv11实现水下鱼类自动识别。这个系统不仅能识别常见养殖鱼种,还能统计鱼群密度,对水产养殖业帮助很大。当时学生们从零开始搭建…

📅 2026/10/29 12:15:44
TPM 2.0全盘加密+容器化沙箱双模终端防护方案

TPM 2.0全盘加密+容器化沙箱双模终端防护方案

1. 项目概述:为什么“电脑一丢,数据全裸”不是危言耸听,而是每天都在发生的现实 “电脑一丢,数据全裸?”——这句标题里的问号,其实根本不用打。它是个陈述句,只是加了点修辞上的留白。我做过七…

📅 2026/10/29 12:15:44
服务器硬件结构与BMC远程管理实战指南

服务器硬件结构与BMC远程管理实战指南

简介:本资源是一份系统性讲解服务器硬件架构与核心原理的入门级技术文档,面向IT运维新手、网络工程初学者及备考软考/华为认证的考生,旨在帮助读者建立对服务器全组件的完整认知框架。内容覆盖服务器基本概念、关键部件(CPU/内存/…

📅 2026/10/29 12:15:44
MORE NEWS

更多资讯

📰

爱发电平台创作者变现全攻略:从入驻到进阶运营

1. 为什么创作者需要入驻爱发电? 爱发电(AFDIAN)是国内领先的创作者赞助平台,它解决了内容创作者最头疼的变现难题。我作为全职创作者使用这个平台已经两年多,最直观的感受是:它把传统的"用爱发电&quo…

📰

CNN关系抽取模型实战:从SemEval数据到TextCNN训练评估

简介:这是一份面向自然语言处理学习者的关系抽取实战项目包,围绕 PyTorch 与卷积神经网络实现,针对 SemEval2010_task8 数据集完成实体关系分类,适合希望从数据预处理、模型搭建到训练评估完整走通流程的开发者。压缩包共 43 个文…

📰

iVMS-8700客户端部署全攻略:电视墙与录像键盘配置避坑指南

简介:这份文档面向智能楼宇安防运维人员与视频监控系统初学者,聚焦海康威视 iVMS-8700 客户端的实际操作,帮助读者快速上手平台配置与日常管理。内容围绕电视墙操作平台展开,涵盖添加录像机、创建电视墙布局、配置录像键盘快捷键、…

📰

读取Raster像素值总是不对?搞懂PixelBlock与NoData避坑指南

简介:这份PDF面向GIS开发与遥感图像处理方向的C#程序员,聚焦ArcGIS二次开发中读取Raster像素值这一常见但易错的操作。内容围绕IRaster接口的Read方法展开,讲解如何通过IPixelBlock的GetVal方法获取指定Band与位置的像素值,并延伸…

📰

分布式存储核心技术解析与实践指南

1. 分布式存储的技术本质解析 大数据时代最核心的基础设施莫过于分布式存储系统。当单机存储无法应对PB级数据时,如何将海量数据分散到数百甚至数千台服务器上,同时保证高可靠、高性能和易扩展?这需要一套精妙的设计哲学。 我在金融和互联网…

📰

前景理论实战:参照点、损失厌恶与用户决策设计

做用户研究和决策设计这行,绕不开一个词:前景理论(Prospect Theory)。它解释的不是“人应该怎么选”,而是“人在真实情境下到底怎么选”。同样一笔钱、同一个概率、同一份合同,换个说法,人的选择…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬