14.5. 在 Red Hat Quay UI 中建立配额
以下流程描述了如何报告存储消耗并建立存储配额限制。
先决条件
- 一个 Red Hat Quay registry。
- 超级用户帐户。
- 有足够的存储来满足配额限制的需求。
流程
创建新机构或选择现有机构。最初,没有配置配额,如 Organization Settings 选项卡中所示:
以超级用户身份登录 registry,再前往 Super User Admin Panel 上的 Manage Organizations 选项卡。点您要为其创建存储配额限制的机构 Options 图标:
单击 Configure Quota 并输入初始配额,例如 10 MB。然后点击 应用 和关闭 :
检查超级用户面板中的 Manage Organizations 标签页上显示有 0 of 10 MB 的配额:
使用的配额信息也可以在机构页面中直接获得:
初始使用的配额
若要将配额增加到 100MB,可导航到超级用户面板上的 Manage Organizations 选项卡。单击 Options 图标并选择 Configure Quota,将配额设置为 100 MB。点击 应用,然后关闭 :
输入以下命令拉取示例镜像:
$ podman pull ubuntu:18.04
输入以下命令标记示例镜像:
$ podman tag docker.io/library/ubuntu:18.04 example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org/testorg/ubuntu:18.04
输入以下命令将示例镜像推送到机构:
$ podman push --tls-verify=false example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org/testorg/ubuntu:18.04
在超级用户面板中会显示每个机构消耗的配额:
机构页面显示镜像使用的配额的总比例:
第一个镜像使用的总配额
输入以下命令拉取第二个示例镜像:
$ podman pull nginx
输入以下命令标记第二个镜像:
$ podman tag docker.io/library/nginx example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org/testorg/nginx
输入以下命令将第二个镜像推送到机构:
$ podman push --tls-verify=false example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org/testorg/nginx
机构页面显示该机构中每个存储库使用的配额总量:
每个存储库的总配额
创建 reject 和 warning 限制:
从超级用户面板中,前往 Manage Organizations 选项卡。单击 组织的 Options 图标,然后选择 Configure Quota。在 Quota Policy 部分中,将 Action 类型设置为 Reject,将 Quota Threshold 设置为 80,然后单击 Add Limit :
要创建 警告 限制,请选择 Warning 作为 Action 类型,将 Quota Threshold 设置为 70,然后单击 Add Limit :
在配额弹出窗口中点 Close。限制可在 机构 页面的 Settings 选项卡中查看,但不可编辑:
推送超过拒绝限制的镜像:
由于 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
超过限制时,UI 中会显示通知:
配额通知