跳到主要内容

镜像仓库

Harbor是一个企业级的registry开源项目,一个镜像仓库服务,用于镜像仓库管理,用户可以把它类比为GitHub、Gitlab等代码托管工具,为集群绑定Harbor,需要保证集群能够访问该Harbor。

集群绑定Harbor

打开[管理工作台/平台设置/全局配置],可以看到有“默认Harbor”,此处用于整个平台绑定默认Harbor。添加新的集群后,集群会绑定默认Harbor,如果需要绑定其它Harbor,修改Harbor地址即可,如下图所示。

test

或者打开[管理工作台/集群管理],选择一个集群进入详情,可以看到“集群设置”下有“镜像服务”,此处用于当前集群绑定Harbor。如果需要绑定非默认Harbor,修改Harbor地址后按照提示修改配置即可。

创建仓库及授权

用户登录PaaS平台,点击[所有产品/容器服务/交付中心]菜单项,选择对应的集群项目,进入应用模板列表页面。

切换至“镜像仓库”,选择“新建仓库组”,输入镜像仓库名称,并选择私有或者是公开,单击<确定>即可创建仓库。

点击仓库组名称,进入后点击权限管理,搜索需要添加的用户名,并选择对应的角色,即可将用户添加到对应的仓库组中,并对仓库组有相应的权限。

导入镜像

(1) 用户登录PaaS平台,点击[所有产品/容器服务/交付中心]菜单项,选择对应的集群项目,进入应用模板列表页面。

(2) 切换至“镜像仓库”,默认进入所有仓库组列表页面。

(3) 单击<导入镜像>按钮,进入导入镜像配置页面,如下图所示。

test

(4) 选择对应的文件,支持扩展名为:tartar.gz,选择是否导入同一镜像仓库组,选择具体的仓库组,选择“使用系统解析的镜像名称和tag”、“自定义镜像名称和tag”。

(5) 对应参数配置完后,单击<开始导入>按钮,镜像导入成功。

导出镜像

(1) 用户登录PaaS平台,点击[所有产品/容器服务/交付中心]菜单项,选择对应的集群项目,进入应用模板列表页面。

(2) 切换至“镜像仓库”菜单项,默认进入所有仓库组列表页面。

(3) 单击<导出镜像>按钮,进入导出镜像配置页面,选择仓库组,按需配置对应的关键字,选择镜像创建时间段,如下图所示。

test

(4) 勾选对应的镜像,单击<选择版本>按钮,进入版本配置页面,如下图所示。

test

(5) 选择对应版本的镜像,单击<提交申请>按钮,镜像导出申请提交完成。

仓库组权限说明

仓库组创建权限

点击[管理工作台/集群管理/集群设置],可以选择所有人均可创建或者仅管理员可创建(此处为平台管理员)。

仓库组的公开与私有

点击[管理工作台/集群管理/集群管理],进入某个集群的详情后在“集群设置/镜像服务下”可以选择所有人均可创建或者仅管理员可创建(此处为平台管理员)。

公开的仓库将会允许任何人无需 dockerlogin操作就可执行 pull镜像操作,而 push操作只有管理员和开发人员可以进行 push操作。

私有仓库进行 pullpush操作前必须先登录,且仅允许添加在权限管理中的管理 员和开发人员进行镜像的 push操作,访客仅允许进行 pull操作。

如果多个集群绑定同一个Harbor,Harbor内的数据是一致的,包括仓库组内审计日志、权限管理、镜像同步、标签管理等。

用户角色及权限说明

仓库组:当前项目下,所有的镜像仓库。

信息
  • 公开仓库组,所有平台用户可见。
  • 私有仓库组,仓库组内添加的成员和平台管理员可见,其中仓库组内添加的开发人员、项目管理员、平台管理员可操作。

权限管理:维护管理当前项目下,成员及其权限。

信息
  • 公开仓库组,是该项目成员的可见,非该项目成员的不可见“权限管理”。
  • 私有仓库组,项目内所有成员可见,其中项目管理员可操作。

审计日志:展示当前项目下,镜像仓库中镜像版本使用流水记录。

信息
  • 公开仓库组,非当前项目成员的,不可见该页签。
  • 私有仓库组,项目内成员可见。

镜像同步:实现镜像仓库的跨仓库同步复制功能。

审计日志

可以查询到对镜像仓库的配置操作以及所有用户的 pullpush操作。

镜像同步

仅支持admin用户将已有的远程仓库或者本地仓库同步到指定的仓库,启用同步后,将实时监测远程仓库组变化,进行同步。

点击[所有产品/交付中心],切换至[镜像仓库/仓库管理/同步规则],点击“+添加规则”输入需要同步的远程镜像的信息和另一个仓库的信息可以创建同步规则,同步任务列表中可看到同步的进度。同步规则配置页面如下图所示。

test
  • 复制模式支持Push模式以及Pull模式。
  • Push模式:当前镜像仓库推送镜像到目标仓库,一般用于研发测试仓库推送镜像到生产仓库。
  • Pull模式:当前镜像仓库拉取目标仓库的镜像,一般用于生产仓库从测试仓库拉取镜像。

:::

同步管理

“同步管理”是对镜像同步功能的统一管理,仅系统管理员可见。

漏洞扫描

企业级的镜像安全产品,在企业里后端服务的安全等级是业务的重要指标,镜像安全提供了镜像漏洞扫描和镜像分层信息查看能力。

漏洞扫描可以扫描出镜像中每个组件包的安全漏洞和严重级别,严重级别超过管理员设置级别的镜像将无法拉取和部署,漏洞扫描结果支持导出至本地。平台还提供镜像Push自动扫描和定时扫描能力,无需用户手动扫描,轻松管理镜像安全问题。

手动扫描

点击[所有产品/交付中心],切换至[镜像仓库/仓库组]页面,点击要扫描的仓库组名称链接,单击要扫描镜像详情页进入漏洞扫描页面,如下图所示。

test

选择需要扫描的版本,已扫描过的镜像版本,将会显示上次扫描结果。如需再次扫描,点击“扫描”按钮即可。点击刷新即可查看最近扫描结果。

查看扫描结果

如上图所示,漏洞扫描页面,版本右侧“缺陷组件数”统计达到各漏洞级别的组件包数量,例如 5 个组件包达到“严重”级别。下方表格列出所有缺陷,展开可查看缺陷详细介绍,点击缺陷码可以跳转到 Linux等官方漏洞说明网站。

进入版本及接口页面,可以查看所有镜像版本的漏洞组件数,如下图所示。

test

鼠标移入缺陷组件数,可以显示详细缺陷统计,如下图所示。

test

设置仓库组镜像扫描策略

系统管理员、平台管理员和仓库组管理员登录后,进入仓库组详情查看漏洞扫描策略页面,如下图所示。

test

点击<编辑>,勾选“阻止潜在漏洞镜像部署”,选择阻止等级“严重”,保存后策略生。未扫描过的镜像版本和漏洞严重度达“严重”的镜像将不允许拉取和部署。

点击<编辑>,勾选“自动扫描镜像”保存,push到该仓库组的镜像,push完成将会自动扫描。

设置定时扫描

系统管理员、平台管理员,进入仓库管理的漏洞扫描页面,如下图所示。

test

点击<编辑>,可以设置全局定时扫描任务。点击下方<全局扫描>按钮,可以全局扫描一次。

设置镜像最大版本数

用户可以通过设置允许保留的最大版本数,保证镜像仓库中不会保留过多的版本数量,浪费存储资源。

打开镜像详情,切换到“版本及接口”,列表上方可以设置最大版本数量,如下图所示。

test

单击<编辑>按钮,输入最多版本数量,点击<保存>即可。

版本锁定

版本锁定功能可以保证被锁定版本不会因为设置最大版本数量而被自动清理,锁定版本的推送更新、手动删除不受版本锁定影响。

(1) 镜像详情进入“版本及接口”,在需要锁定的版本右侧操作中点击<锁定>,弹框如下图所示。

(2) 单击<确认锁定>,将会锁定该版本。

标签管理

镜像标签功能主要是为了标记镜像,可以适应一些复杂业务场景。例如部分厂商,除了镜像版本外,可能需要标记支持的客户等其它特殊信息。镜像标签可以在仓库组内或全局新建标签,然后给具体某个镜像版本打上标签即可。

新建全局标签

导航进入[镜像仓库/仓库管理/标签],点击“新建标签”,输入标签名称、颜色、描述,点击保存即可。

新建仓库组内标签

进入仓库组,到切换标签管理,点击“新建标签”,输入标签名称、颜色、描述,点击保存即可,如上图所示。

标记镜像版本

镜像仓库详情,进入“版本及接口”,选择需要打标签的镜像版本,右侧操作鼠标移入“配置标签”,选择全局标签或本仓库组标签,勾选需要使用的标签即可,如下图所示。

test

镜像仓库只读/清理/容量

镜像仓库只读主要是用于镜像仓库维护,可以配合仓库清理使用。

(1) 管理员导航进入[所有产品/交付中心],切换至[镜像仓库/仓库管理/仓库只读],勾选“镜像仓库只读”,单击<保存>即可,如下图所示。

test

(2) 取消勾选,单击<保存>,退出只读模式。

(3) 只读模式下,进入仓库清理页面,点击“清理仓库”。

(4) 点击复制图标,复制命令到Harbor所在机器上执行即可。清理仓库之后可以通过存储容量变化观察清理效果。

(5) 管理员进入镜像仓库后,可以看到仓库的存储容量,如下图所示。

test

镜像库删除

在镜像仓库组列表,选择一个镜像仓库,单击<删除>按钮,删除整个镜像仓库组。

在镜像详情版本列表中,右侧操作单击<删除>按钮,删除该版本。