创建复制规则
在创建复制规则之前,必须存在复制端点。要创建端点,请按照创建复制端点中的说明进行操作。
-
使用具有 Harbor 系统管理员权限的帐户登录到 Harbor 界面。
-
展开 管理,然后选择 复制。
-
单击 新建复制规则。
-
为复制规则提供名称和描述。
-
选择 基于推送 或 基于拉取 的复制,具体取决于您要将镜像复制到远程注册中心还是从远程注册中心复制。
-
如果您正在创建基于拉取的规则,请使用 源注册中心 下拉菜单从配置的复制端点中选择。
-
对于 源资源过滤器,确定要复制的镜像。
- 名称:通过输入镜像名称或片段来复制具有给定名称的资源。
- 标签:通过输入标签名称或片段来复制具有给定标签的资源。您还可以为此过滤器指定匹配/排除。
- 标签:通过使用下拉菜单从可用标签中选择,来复制具有给定标签的资源。您还可以为此过滤器指定匹配/排除。
- 资源:复制镜像、制品或全部。制品包含镜像和其他 OCI 兼容资源。
名称过滤器和标签过滤器支持以下模式
- *:匹配任何非分隔符字符
/
的序列。 - **:匹配任何字符序列,包括路径分隔符
/
。请注意,双星号必须作为路径组件单独出现。诸如 /path** 之类的模式无效,将被视为与 /path* 相同,但 /path*/** 应该可以实现所需的结果。 - ?:匹配任何单个非分隔符字符
/
。 - {alt1,…}:如果逗号分隔的替代项之一匹配,则匹配字符序列。
注意: 如果您想复制 Docker Hub 的官方镜像,则必须添加
library
。例如,library/hello-world
匹配官方的 hello-world 镜像。模式 字符串(匹配或不匹配) library/*
library/hello-world
(是)
library/my/hello-world
(否)library/**
library/hello-world
(是)
library/my/hello-world
(是){library,goharbor}/**
library/hello-world
(是)
goharbor/harbor-core
(是)
google/hello-world
(否)1.?
1.0
(是)
1.01
(否) -
如果您正在创建基于推送的复制规则,请使用 目标注册中心 下拉菜单从配置的复制端点中选择。
-
对于 目标命名空间,在文本框中输入要在其中复制资源的命名空间的名称。如果您不输入命名空间,资源将放置在与源注册中心相同的命名空间中。
-
使用目标扁平化下拉列表选择您希望 Harbor 在复制镜像时如何处理镜像层级结构。根据您的选择,当将镜像复制到您选择的目标命名空间时,Harbor 将从镜像层级结构中删除相同数量的级别,从左侧开始。
- 扁平化所有级别:从复制的镜像中删除所有层级结构。例如,
a/b/c/d/img
复制到namespace/img
。这是 v2.2 及更早版本中复制的默认行为。升级到 v2.3.0 之前创建的所有复制规则在升级后都将默认使用此扁平化选项。 - 不扁平化:复制镜像时使用相同的层级结构。例如,
a/b/c/d/img
复制到namespace/a/b/c/d/img
。 - 扁平化 1 级别:从镜像层级结构中删除一个级别。例如,
a/b/c/d/img
复制到namespace/b/c/d/img
。这是默认选择。 - 扁平化 2 级别:从镜像层级结构中删除两个级别。例如,
a/b/c/d/img
复制到namespace/c/d/img
- 扁平化 3 级别:从镜像层级结构中删除三个级别。例如,
a/b/c/d/img
复制到namespace/d/img
- 扁平化所有级别:从复制的镜像中删除所有层级结构。例如,
-
使用触发模式下拉菜单选择如何以及何时运行规则。
- 手动:在需要时手动复制资源。注意:删除操作不会被复制。
- 定时:通过定义 cron 作业定期复制资源。注意:删除操作不会被复制。
- 基于事件:当新资源被推送到项目,或者镜像被重新标记时,它会立即复制到远程注册中心。如果您选择 当本地删除时删除远程资源,如果您删除一个镜像,它将自动从复制目标中删除。
您可以根据应用于镜像的标签过滤用于复制的镜像。但是,更改镜像上的标签不会触发复制。基于事件的复制仅限于推送、重新标记和删除镜像。 -
可以选择设置每个复制任务的最大网络带宽,请注意并发执行的数量,每个 job-service pod 的默认值为 10。单位是千字节/秒,-1 代表无限带宽。
存在一个已知问题 15708,如果您将带宽限制得太慢,并停止复制作业,则可能需要相当长的时间才能真正释放作业 worker 以运行新作业。 -
可以选择选中覆盖复选框以强制复制的资源替换目标中具有相同名称的资源。
-
可以选择选中按块复制复选框以启用按块复制镜像 blob,目前仅支持源和目标注册中心均为 harbor 的情况,但您可以手动调用 harbor API 为其他类型的注册中心启用此功能。
按块复制尚未在 harbor 和其他类型注册中心之间经过官方验证。默认块大小为 10MB,您可以通过在 jobservice 中设置 envREPLICATION_CHUNK_SIZE
来覆盖它,该值应以字节为单位,例如10MB=1024*1024*10
,然后您应设置REPLICATION_CHUNK_SIZE=10485760
。 -
单击 保存 以创建复制规则。
下一步操作
创建复制规则后,请参阅手动运行复制。
在本页中
贡献