概述
harbor是什么呢?英文单词的意思是:港湾。港湾用来存放集装箱(货物的),而docker的由来正是借鉴了集装箱的原理,所以harbor是用于存放docker的镜像,作为镜像仓库使用。官方的说法是:harbor是一个用于存储和分发docker镜像的企业级registry服务器。
harbor镜像仓库是由vmware开源的一款企业级镜像仓库,它包括权限管理(rbac)、ldap、日志审核、管理界面、自我注册、镜像复制等诸多功能。
一、harbor特性
1、基于角色的访问控制:用户和存储库是通过“项目”组织的,用户可以对多个镜像仓库统一命名空间拥有不同的权限。
2、镜像复制:可以基于具有多个registry实例之间复制(同步)图像和图表。如果出现任何错误,harbor会自动重试复制。非常适合于负载平衡、高可用性、多数据中心、混合和多云场景。
3、ldap/ad支持:harbor与现有企业ldap/ad集成,用于用户身份验证和管理,并支持将ldap组导入harbor并为其分配适当的项目角色。
镜像删除和垃圾收集:镜像可以删除,其空间可以回收。
4、国际化:对多国语言支持(已拥有中文、英文、德文、日语和俄文);
5、图形化用户界面:用户可以轻松浏览、搜索存储库和管理项目。
6、审计管理:跟踪到存储库的所有操作。
7、restful api:用于大多数管理操作的restful api,易于与外部系统集成。一个嵌入式的swagger用户界面可用于探索和测试api。
简单部署:提供在线和离线安装程序。此外,可以安装到vsphere平台的(ova方式)虚拟设备。
二、harbor 组件
1、proxy:harbor的组件,如注册表、ui和令牌服务,都位于反向代理之后。代理将来自浏览器和docker客户机的请求转发到各种后端服务。
2、registry:负责存储docker镜像和处理docker推/拉命令。由于harbor需要对映像进行访问权限控制,registry将引导客户机访问令牌服务,以便为每个pull或push请求获取有效的令牌(token)。
3、core service:harbor的核心功能,主要提供以下服务:
1)ui:提供图像化的图形用户界面,帮助人户管理镜像和对用户授权。
2)webhook: 为了及时获取registry上images的状态变化的情况,在registry上配置webhook,把状态变化传递ui模块;
3)token令牌服务:负责根据用户在项目中的角色为每个docker push/pull命令颁发令牌。如果从docker客户机发送的请求中没有令牌,注册表将把请求重定向到令牌服务。
4、datebase:为了给core services提供数据库舒服,负责储存用户权限、审计日志、docker image分组信息等数据。
5、job services:提供镜像远程负责功能,能把本地镜像同步到其他harbor实例当中。
6、log collector:为了帮助监控harbor运行,负责手机其他组件的log,供日后分析。