14.5. 在 Red Hat Quay UI 中建立配额

以下流程描述了如何报告存储消耗并建立存储配额限制。

先决条件

  • Red Hat Quay registry。
  • 超级用户帐户。
  • 有足够的存储来满足配额限制的需求。

流程

  1. 创建新机构或选择一个现有组织。最初,没有配置配额,如 Organization Settings 选项卡中可以看到:

    No Quota Configured

  2. 以超级用户身份登录 registry,再导航到 Super User Admin Panel 上的 Manage Organizations 选项卡。点击您要为其创建存储配额限制的机构的 Options 图标:

    Organization options

  3. 单击 Configure Quota,再输入初始配额,例如 10 MB。然后点 ApplyClose

    Initial quota

  4. 检查在超级用户面板的 Manage Organizations 选项卡中是否显示 0 (10 MB ):

    Initial consumed quota

    所消耗的配额信息也可直接在 Organization 页面中可用:

    初始消耗的配额

    Initial consumed quota

  5. 要将配额增加到 100MB,请导航到超级用户面板上的 Manage Organizations 选项卡。单击 Options 图标,再选择 Configure Quota,将配额设置为 100 MB。点 Apply,然后点 Close

    Increase quota

  6. 输入以下命令拉取示例镜像:

    $ podman pull ubuntu:18.04
  7. 输入以下命令标记示例镜像:

    $ podman tag docker.io/library/ubuntu:18.04 example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org/testorg/ubuntu:18.04
  8. 输入以下命令将示例镜像推送到机构:

    $ podman push --tls-verify=false example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org/testorg/ubuntu:18.04
  9. 在超级用户面板中,会显示每个机构消耗的配额:

    Total Quota Consumed for first image

  10. Organization 页面显示镜像使用的配额的总比例:

    第一个镜像使用的总配额

    Total Quota Consumed for first image

  11. 输入以下命令拉取第二个示例镜像:

    $ podman pull nginx
  12. 输入以下命令标记第二个镜像:

    $ podman tag docker.io/library/nginx example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org/testorg/nginx
  13. 输入以下命令将第二个镜像推送到机构:

    $ podman push --tls-verify=false example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org/testorg/nginx
  14. Organization 页面显示该机构中每个存储库使用的配额的总比例:

    每个软件仓库使用的总配额

    Total Quota Consumed for each repository

  15. 创建 拒绝 和警告 限制:

    从超级用户面板中,导航到 Manage Organizations 选项卡。单击机构的 Options 图标,然后选择 Configure Quota。在 Quota Policy 部分,将 Action 类型设置为 Reject,将 Quota Threshold 设置为 80 并点 Add Limit

    Reject limit

  16. 要创建 警告 限制,请选择 Warning 作为 Action 类型,将 Quota Threshold 设置为 70,然后点 Add Limit

    Warning limit

  17. 点配额弹出窗口中的 Close。这些限制可在 Organization 页面的 Settings 选项卡中查看,但不能编辑:

    Quota policy in organization settings

  18. 推送超过拒绝限制的镜像:

    由于 reject 限制(80%)已设置为低于当前存储库大小(~83%),因此下一个推送的镜像会自动被拒绝。

    镜像拉取示例

    $ podman pull ubuntu:20.04
    
    $ podman tag docker.io/library/ubuntu:20.04 example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org/testorg/ubuntu:20.04
    
    $ podman push --tls-verify=false example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org/testorg/ubuntu:20.04

    超过配额时的输出示例

    Getting image source signatures
    Copying blob d4dfaa212623 [--------------------------------------] 8.0b / 3.5KiB
    Copying blob cba97cc5811c [--------------------------------------] 8.0b / 15.0KiB
    Copying blob 0c78fac124da [--------------------------------------] 8.0b / 71.8MiB
    WARN[0002] failed, retrying in 1s ... (1/3). Error: Error writing blob: Error initiating layer upload to /v2/testorg/ubuntu/blobs/uploads/ in example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org: denied: Quota has been exceeded on namespace
    Getting image source signatures
    Copying blob d4dfaa212623 [--------------------------------------] 8.0b / 3.5KiB
    Copying blob cba97cc5811c [--------------------------------------] 8.0b / 15.0KiB
    Copying blob 0c78fac124da [--------------------------------------] 8.0b / 71.8MiB
    WARN[0005] failed, retrying in 1s ... (2/3). Error: Error writing blob: Error initiating layer upload to /v2/testorg/ubuntu/blobs/uploads/ in example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org: denied: Quota has been exceeded on namespace
    Getting image source signatures
    Copying blob d4dfaa212623 [--------------------------------------] 8.0b / 3.5KiB
    Copying blob cba97cc5811c [--------------------------------------] 8.0b / 15.0KiB
    Copying blob 0c78fac124da [--------------------------------------] 8.0b / 71.8MiB
    WARN[0009] failed, retrying in 1s ... (3/3). Error: Error writing blob: Error initiating layer upload to /v2/testorg/ubuntu/blobs/uploads/ in example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org: denied: Quota has been exceeded on namespace
    Getting image source signatures
    Copying blob d4dfaa212623 [--------------------------------------] 8.0b / 3.5KiB
    Copying blob cba97cc5811c [--------------------------------------] 8.0b / 15.0KiB
    Copying blob 0c78fac124da [--------------------------------------] 8.0b / 71.8MiB
    Error: Error writing blob: Error initiating layer upload to /v2/testorg/ubuntu/blobs/uploads/ in example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org: denied: Quota has been exceeded on namespace

  19. 超过限制时,会在 UI 中显示通知:

    配额通知

    Quota notifications