题图摄于美国加州:Point Lobo
开源企业级容器 Registry 项目 Harbor在v1.1版本新增管理员配置功能,本文讲述该功能的主要设计思想和给用户带来的便利,建议升级 Harbor 的用户阅读。作者尹文开为Harbor核心开发团队工程师。
简介
VMware 公司的开源企业级容器 Registry 项目 Harbor ,可帮助用户迅速搭建企业级的镜像仓库 registry 服务,它提供了管理图形界面, 基于角色的访问控制 RBAC,镜像远程复制(同步),AD/LDAP 集成等企业用户需求的功能,同时还原生支持中文,深受国内外用户的喜爱。
Harbor在最近发布的1.1版本中引入了一个全新的组件Admin Server,用来管理系统配置,并提供了相应的 WEB 页面和 API 来供用户操作,改进了之前需用户手动修改配置文件并手动重启系统的用户体验。
Admin Server新组件
在引入 Admin Server 组件之后,Harbor 的整体架构如下图所示:
当系统启动时,UI 和 Job Service 从 Admin Server 处读取各自所需的配置,完成自身启动过程。之后用户可以通过 WEB 界面或者通过 API 修改部分系统配置。修改后的配置会被写入到 Admin Server 中。其他组件重新读取Admin Server的配置信息就可以得到最新的配置。
和之前的版本不同,harbor.cfg 文件中的配置被分为两类,一类是必需的(madatory),如主机名称 hostname;另一类是可选的( optional ),如 LDAP 的配置。在 Harbor 初次启动时,Admin Server 从 harbor.cfg 文件读取配置并记录下来。之后重新启动Harbor的过程中,只有必需的配置会从 harbor.cfg 文件读取;其他可选的配置将不再生效,需要通过 Admin Server 的管理界面来修改。
Admin Server工作流程
新增的Admin Server的具体实现如下图所示:
用户可以通过 Admin Server 提供的 API 读写系统配置。读写的数据会经过加解密层进行相应的加密和解密。最终这些配置都会被持久化在底层相应的存储中。目前 Admin Server 实现了文件系统的驱动,其他类型的存储(例如 etcd )也可以很容易的进行扩展。
Admin Server的使用
之前的版本更新配置,需要修改harbor.cfg,然后停止并删除现有Harbor实例,再重新运行Harbor,比较繁琐。新版本的adminconsole可以使用户很方便地通过WEB界面配置认证、同步、邮件和系统等信息,修改立即生效,无需重启整个系统。
认证信息的配置页面如下图所示,目前支持两种认证模式:本地数据库和AD/LDAP 。当有新的用户注册或者使用AD/LDAP用户登录过系统后,为防止来自不同认证源的用户之间的冲突,认证模式将不再允许被修改。如果原有系统采用AD/LDAP认证模式,并且已经创建过用户,请务必在第一次启动新版本前,将harbor.cfg中的 auth_mode 配置成 ldap_auth 。否则无法在启动后切换到 LDAP/AD 认证。
在 “Replication” 选项页面,可以修改在同步镜像的过程中是否检查证书的合法性。如果远端 Harbor 使用的是自签名证书,请确保复选框没有被勾选。
升级注意事项
当用户的Harbor到升级v1.1.0时,在启动之前需要用新版本自带的模板重新配置harbor.cfg文件,切忌直接拷贝旧版本的 harbor.cfg 。其他详细步骤请参考升级文档:
https://github.com/vmware/harbor/blob/master/docs/migration_guide.md