港口码头工人私有仓库简介及部署

港是一个用于存储和分发码头工人镜像的企业级注册服务器,通过添加一些企业必需的功能特性,例如安全,标识和管理等,扩展了开源码头工人分布。作为一个企业级私有注册服务器,港口提供了更好的性能和安全。提升用户使用注册表构建和运行环境传输镜像的效率.Harbor支持安装在多个注册表节点的镜像资源复制,镜像全部保存在私有注册表中,确保数据和知识产权在公司内部网络中管控。另外,港口也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

<李>

:用户与码头工人镜像仓库通过”项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(项目)里有不同的权限。

<李>

:镜像可以在多个注册表实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。

<李>

:用户可以通过浏览器来浏览,检索当前码头工人镜像仓库,管理项目和命名空间。

<李>

:港口可以集成企业内部已有/LDAP的广告,用于鉴权认证管理。

<李>

:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

<李>

:已拥有英文,中文,德文,日文和俄文的本地化版本。更多的语言将会添加进来。

<李>

: RESTful API提供给管理员对于港口更多的操控,使得与其它管理软件集成变得更容易。

<李>

:提供在线和离线两种安装工具,也可以安装到vSphere平台(卵子方式)虚拟设备。


港在架构上主要由6个组件构成:

<李>

:港口的注册表,UI,令牌等服务,通过一个前置的反向代理统一接收浏览器,码头工人客户端的请求,并将请求转发给后端不同的服务。

<李>

:负责储存码头工人镜像,并处理码头工人推/拉命令。由于我们要对用户进行访问控制,即不同用户对码头工人形象有不同的读写权限,注册表会指向一个象征性的服务,强制用户的每次码头工人拉/推请求都要携带一个合法的令牌,注册表会通过公钥对令牌进行解密验证。

<李>

:这是港口的核心功能,主要提供以下服务:

<李>

:提供图形化界面,帮助用户管理注册表上的镜像(图片),并对用户进行授权。

<李>

:为了及时获取注册表上图像状态变化的情况,在注册表上配置webhook,把状态变化传递给UI模块。

<李>

:负责根据用户权限给每个码头工人推/拉命令签发牌。码头工人客户端向Regi吗?士的宁服务发起的请求,如果不包含令牌,会被重定向到这里,获得令牌后再重新向注册表中进行请求。

<李>

:为核心服务提供数据库服务,负责储存用户权限,审计日志,码头工人形象分组信息等数据。

<李>

:提供镜像远程复制功能,可以把本地镜像同步到其他港实例中。

<李>

:为了帮助监控港运行,负责收集其他组件的日志,供日后进行分析。

各组件之间的关系

奥胪饭と烁鬯接胁挚饧蚪榧安渴?

港的每个组件都是以码头工人容器的形式构建的,官方也是使用码头工人组合来对它进行部署。用于部署港的码头工人组成模板位于港口/docker-compose。yml,打开这个模板文件,发现港是由7个容器组成的;

: nginx负责流量转发和安全验证,对外提供的流量都是从nginx中转,所以开放https的443端口,它将流量分发到后端的ui和正在码头工人镜像存储的码头工人注册。

: harbor-jobservice是港口的工作管理模块,工作在港里面主要是为了镜像仓库之前同步使用的;

: harbor-ui是web管理页面,主要是前端的页面和后端凝乳的接口;

:注册表就是码头工人原生的仓库,负责保存镜像。

: harbor-adminserver是港系统管理接口,可以修改系统配置以及获取系统信息。

这几个容器通过码头工人链接的形式连接在一起,在容器之间通过容器名字互相访问。对终端用户而言,只需要暴露代理(即nginx)的服务端口。

: harbor-db是港口的数据库,这里保存了系统的工作以及项目,人员权限管理。由于本港口的认证也是通过数据,在生产环节大多对接到企业的ldap中;

:驻港日记是港口的日志服务,统一管理港的日志。通过检查可以看出容器统一将日志输出的syslog。

港口码头工人私有仓库简介及部署