配置项目配额

为了控制资源使用,作为 Harbor 系统管理员,您可以设置项目配额。您可以限制项目可以消耗的存储容量。您可以设置全局应用于所有项目的默认配额。

默认配额适用于在您设置或更改默认配额之后创建的项目。默认配额不适用于在您设置之前已存在的项目。

您还可以为单个项目设置配额。如果您设置了全局默认配额,并且为单个项目设置了不同的配额,则应用每个项目的配额。

默认情况下,所有项目的存储使用配额都是无限制的。

  1. 选择 项目配额 视图。

    Project quotas

  2. 要为所有项目设置全局默认配额,请单击 编辑

    Project quotas

    1. 对于 默认存储消耗,输入任何项目可以消耗的最大存储量,从下拉菜单中选择 MiBGiBTiB,或者输入 -1 将默认值设置为无限制。

      Project quotas

    2. 单击 确定

  3. 要为单个项目设置配额,请选择项目,然后单击 编辑

    Project quotas

    1. 对于 默认存储消耗,输入此单个项目可以消耗的最大存储量,从下拉菜单中选择 MiBGiBTiB

设置配额后,您可以查看每个项目已消耗的配额量。

Project quotas

Harbor 如何计算资源使用量

在设置项目配额时,了解 Harbor 如何计算存储使用量非常有用,尤其是在与镜像推送、重新标记和垃圾回收相关的方面。

  • 当从 Docker 客户端推送 blob 和清单时,Harbor 会计算镜像大小。

    当用户推送镜像时,清单会在所有关联的 blob 成功推送到注册表后最后推送。如果并发推送多个镜像,并且所有镜像的配额中剩余的标签数量不足,则按照清单到达的顺序接受镜像。因此,尝试推送镜像可能不会因超出配额而被立即拒绝。这是因为在发起推送时标签配额还有可用量,但当清单到达时,配额已耗尽。
  • 共享 blob 每个项目只计算一次。在 Docker 中,blob 共享是全局定义的。在 Harbor 中,blob 共享是在项目级别定义的。因此,总存储使用量可能大于实际磁盘容量。

  • 重新标记镜像会预留和释放资源

    • 如果您在项目内重新标记镜像,则存储使用量不会更改,因为没有新的 blob 或清单。
    • 如果您将镜像从一个项目重新标记到另一个项目,则存储使用量将会增加。
  • 在垃圾回收期间,Harbor 会释放项目中未标记 blob 使用的存储空间。

  • Helm chart 大小不计算在内。