Harbor Registry项目源代码结构解析
作者:尹文开
一、概览
容器应用的开发和运行离不开可靠的镜像管理。从安全和效率等方面考虑,部署在私有环境内的Registry是非常必要的。Harbor项目(https://github.com/vmware/harbor)是由VMware公司中国研发团队为企业用户设计的Registryserver开源项目,包括了权限管理(RBAC)、LDAP/AD集成、审计、管理界面、自我注册、HA等企业必需的功能,同时针对中国用户的特点,原生支持中文,并计划实现镜像复制(roadmap)等功能。
本文主要介绍Harbor项目的源码结构,帮助开发和运维人员理解其工作原理。
二、组件
Harbor系统由五个容器组成:Proxy、Core Services(包含UI, tokenservice和webhook)、Database、Registry和LogCollector。
Ø Proxy提供反向代理服务,用户的不同请求由Proxy分发到后端的UI或者Registry。Harbor中使用的是官方的nginx镜像。
Ø Core Services是Harbor项目的核心组件,主要提供权限管理、审计、管理界面UI、tokenservice以及可供其他系统调用的API等功能。
Ø Database提供数据持久化服务,采用了官方的mysql镜像。
Ø Registry是Docker官方的开源的Registry镜像,主要提供镜像的存储和分发功能。
Ø Log Collector负责收集其他容器的日志并进行日志轮转。