开源Registry项目Harbor源代码结构解析

本文详细介绍了开源Registry项目Harbor,包括项目概览,主要组件的构成,以及深入的源码结构分析,帮助读者理解Harbor的内部工作机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上周我们介绍了Harbor开源企业级容器Registry的架构,获得了社区很多朋友的反馈和建议,再次一并感谢,希望和大家一起,共同建设一个优秀的开源项目。本文请Harbor项目工程师尹文开介绍源码结构,帮助开发和运维人员理解代码的工作原理。

Harbor项目概览

容器应用的开发和运行离不开可靠的镜像管理。从安全和效率等方面考虑,在企业私有环境内部署的Registry服务是非常必要的。Harbor( https://github.com/vmware/harbo r)是由VMware中国研发团队为企业用户设计的Registry Server开源项目,包括了权限管理(RBAC)、图形管理界面、LDAP/AD集成、审计、自我注册、HA等企业必需的功能,同时针对中国用户的特点,原生支持中文,并计划实现镜像复制(roadmap)等功能。

本文主要介绍Harbor项目的源码结构,帮助开发和运维人员理解其工作原理。

主要组件

Harbor系统由五个容器组成:Proxy、Core Services(包含UI, tokenservice和webhook)、Database、Registry和Log Collector。

Proxy提供反向代理服务,用户的不同请求由Proxy分发到后端的UI或者Registry。Harbor中使用的是官方的nginx镜像。
Core Services是Harbor项目的核心组件,主要提供权限管理、审计、管理界面UI、token service以及可供其他系统调用的API等功能。
Database提供数据持久化服务,采用了官方的mysql镜像。
Registry是Docker官方的开源的Registry镜像,主要提供镜像的存储和分发功能。
Log Collector负责收集其他容器的日志并进行日志轮转。

各个容器之间的关系如下图所示:
关系

源码结构

以下所述主要为Core Services组件的源码结构,通过根目录下的Dockerfile可以构建出Core Services的镜像。另外Deploy目录下的db和log分别对应Database和Log Collector的Dockerfile镜像构建文件,而Nginx和Registry则都是采用的官方镜像。

| -- api (Harbor提供的外部调用的API)
| -- auth (认证模块,目前提供两种方式:数据库和LDAP)
| -- db (数据库认证)
| -- ldap (LDAP认证)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值