预热镜像

在预热镜像之前,系统管理员必须先配置 P2P 提供商实例。请参阅在 Harbor 中配置 P2P 预热以了解更多信息。

在 Harbor 中,预热操作由策略驱动,并且作用域限定在创建策略的项目内。这意味着当项目管理员在指定项目下创建预热策略时,该策略仅适用于在该项目下管理的镜像。

创建预热策略

要预热镜像,您需要首先创建预热策略。

  1. 转到项目,然后从项目列表中打开您的项目。

  2. 打开 P2P 预热 选项卡,然后单击 + 新建策略 按钮以打开策略创建对话框。

    policy creation dialog

  3. 对于提供商,从下拉列表中选择一个预配置的预热提供商实例作为目标。

  4. 为策略输入合适的名称和描述(可选),以便识别和描述您正在创建的策略。

  5. 按照 doublestar 模式 设置仓库过滤器(必填)。

  6. 按照相同的 doublestar 模式 设置标签过滤器(必填)。

  7. 可选地,设置标签过滤器。只有具有匹配标签的镜像才会被放入候选列表。使用逗号分隔多个标签,例如:label1,label2,labeln,多个标签之间的关系是 AND

  8. 在某些情况下(部署安全性已配置),策略中可能会显示更多条件。

    extra criteria

    条件 仅签名镜像无 [严重级别] 及以上漏洞严重性的镜像 直接从项目配置的相应设置继承而来。它们无法在预热策略中更改,更改它们的唯一方法是通过项目配置。如果它们已配置,它们将显示在预热策略中,并在计算预热候选对象时考虑在内;否则,它们将被隐藏,并且对策略没有影响。
    • 如果 部署安全性 配置选项 启用内容信任 已设置,则 仅签名镜像 也将作为预热策略的条件提供。这意味着只有具有有效签名的镜像才会被预热。
    • 如果配置了漏洞扫描器,并且 部署安全性 配置选项 阻止拉取有漏洞的镜像 已设置,则 无 [严重级别] 及以上漏洞严重性的镜像 也将作为预热条件提供。使用此条件,只有漏洞严重性符合条件的镜像才能被考虑在内。
  9. 对于策略触发器,支持多种方式,请根据您的用例选择合适的触发器。

    • 手动:手动启动预热过程。
    • 计划:设置 CRON 风格的计划以定期启动预热过程。
      • 提供了一些预定义的 cron 计划模式:HourlyDailyWeekly
      • 按照 cron 指南 自定义您的 cron 计划
        • 例如:*/15 0 * * *,在每天午夜每 15 分钟执行策略
    • 基于事件:检查当相关事件发生时是否应预热镜像,事件包括
      • OnPush:当镜像已被推送到 Harbor 时
      • OnScanComplete:当镜像已成功扫描时(扫描失败时不执行任何操作)
      • OnLabel:当镜像已被标记标签时(删除标签时不执行任何操作)
    当事件发生时,预热过程不会立即启动。而是启动一个评估过程。评估过程将遍历事件发生的项目下现有的基于事件的预热策略,其中目标镜像绑定在事件中并被推送。如果目标镜像与某些基于事件的预热策略的预定义过滤器和条件匹配,则将执行匹配的具有固定源镜像的基于事件的预热策略以完成预热过程。
  10. 单击 添加 按钮以保存策略。

管理预热策略

  1. 转到项目,然后从项目列表中打开您的项目。

  2. 打开 P2P 预热 选项卡,所有现有的预热策略都列在数据网格视图中。

    preheat policy list

  3. 通过选中行前面的复选框来选择策略,单击 操作 以打开下拉菜单。

  4. 单击 执行 以立即启动所选策略的执行。

  5. 单击 停用/启用 以停用/启用所选策略。

    已停用的策略无法执行。
  6. 单击 编辑 以打开编辑对话框并对所选策略进行修改。

  7. 单击 删除 以删除所选策略。

    如果所选策略的执行仍在进行中,则删除将被拒绝。

管理预热策略的执行

  1. 通过单击行前面的单选按钮来选择策略。如果策略之前已执行过,则相关的执行将列在执行数据网格中。

    policy execution

  2. 对于每次执行,您可以找到以下数据

    • ID:执行的标识,带有指向详细页面的超链接
    • 状态:成功错误运行中
    • 触发器:执行的触发方式,可以是 手动计划基于事件
    • 开始时间:执行的开始时间(呈现为本地时间格式)
    • 持续时间:执行的总体持续时间
    • 成功率:每次执行可能包含多个任务,成功任务占总任务的百分比
    对于 错误 状态,旁边会有一个带有工具提示的小信息图标,其中包含错误消息。对于 成功 状态,如果策略中定义的过滤器和条件没有匹配的镜像,则旁边会放置一个带有工具提示的小信息图标,指示没有要预热的镜像。
  3. 单击 ID 超链接以打开执行的详细页面。

    execution details

    一个执行记录可能包含多个预热任务,因为多个镜像可能满足策略的条件。
  4. 除了常规信息外,您还可以找到按任务状态分组的简单指标

    • 成功:已完成的任务数
    • 失败:未能完成的任务数
    • 进行中:正在运行的任务数
    • 已停止:已停止的任务数
  5. 执行的所有相关任务都列在任务数据网格中。您可以找到任务的更详细信息

    • 制品:正在预热的制品
    • 状态:此预热任务的状态
    • 摘要:预热镜像的摘要
    • 类型:预热制品的制品类型
    • 开始时间:此预热任务的开始时间
    • 持续时间:此预热任务的总体持续时间
    • 日志:打开任务日志的超链接,用于查看此预热任务的更多详细信息
    Harbor 仅支持预热镜像,因此 类型 的值将始终为 image