13.3. 使用 Red Hat Quay 代理远程 registry
以下流程描述了如何使用 Red Hat Quay 代理远程 registry。此流程设置为 proxy quay.io,允许用户使用 podman
从 quay.io 上的任何命名空间中拉取任何公共镜像。
前提条件
-
config.yaml 中的
FEATURE_PROXY_CACHE
设置为true
。 - 分配 Member 团队角色。有关团队角色的更多信息,请参阅 Red Hat Quay 中的用户和机构。
流程
- 在 Red Hat Quay v2 UI 上,单击组织的名称,如 cache-org。
- 在导航窗格中,单击 Settings。
在 Remote Registry 框中,输入要缓存的远程 registry 的名称,如
quay.io
,然后点 Save。注意通过向 Remote Registry 添加命名空间(如
quay.io/<namespace
> ),您机构中的用户只能从该命名空间中代理。- 可选。在 Remote Registry username 框中,输入用于向上一步中指定的远程 registry 进行身份验证的用户名。对于上游的匿名拉取,您可以将此留空。如果您在创建时设置用户名,则无法在不删除代理缓存和创建新 registry 的情况下添加用户名。
- 可选。在 Remote registry 密码 框中,输入要在远程 registry 中进行身份验证的密码。对于上游的匿名拉取,您可以将此留空。如果您在创建时设置用户名,则无法在不删除代理缓存和创建新 registry 的情况下添加用户名。
可选。在 Expiration 字段中设置一个时间。
注意- 代理机构中缓存的镜像的默认标签 Expiration 字段被设置为 86400 秒。在代理机构中,每次拉取标签时,标签过期时间都会刷新为 UI 的 Expiration 字段中设置的值。此功能与 Quay 的默认 单个标签过期 功能不同。在代理机构中,可以覆盖单个标签功能。发生这种情况时,会根据代理机构的 Expiration 字段重置单个标签的过期时间。
- 过期的镜像将在分配的时间后消失,但仍然存储在 Red Hat Quay 中。镜像被完全删除或收集的时间取决于您的机构的 Time Machine 设置。垃圾回收的默认时间为 14 天,除非另有指定。
- 可选。如果要使用不安全的协议,请选中 http 框。如果没有选中,则使用 https 来请求远程 registry。
- 点击 Save。
验证
在 CLI 中,从指定的远程 registry (如
quay.io
)拉取公共镜像,充当代理缓存:$ podman pull <registry_url>/<organization_name>/<quayio_namespace>/<image_name>
重要如果将您的机构设置为从远程 registry 中的单个命名空间中拉取,则必须从 URL 中省略远程 registry 命名空间。例如,
podman pull <registry_url>/<organization_name>/<image_name>
。
13.3.1. 在代理机构中利用存储配额限制
在 Red Hat Quay 3.8 中,代理缓存功能已被改进,它带有用于标记镜像的自动运行功能。只有在代理命名空间配置了配额限制时,才会使用镜像标签的自动修剪。目前,如果镜像大小大于机构的配额,则会跳过镜像,直到管理员创建所需的空间为止。现在,当镜像推送超过分配空间时,自动运行增强会标记最早使用的标签被删除。因此,新的镜像标签会被存储,但最少使用的镜像标签被标记为删除。
- 作为自动运行功能的一部分,标记为删除的标签最终由垃圾收集器(gc) worker 进程收集。因此,在此期间不会完全强制配额大小限制。
- 目前,命名空间配额大小计算不会考虑清单子的大小。这是一个已知问题,并将在以后的 Red Hat Quay 版本中解决。
13.3.1.1. 在代理机构中测试存储配额限制功能
使用以下步骤测试启用了代理缓存和存储配额限制的机构自动运行功能。
先决条件
- 您的机构被配置为作为代理机构。以下示例来自 quay.io 的代理。
-
FEATURE_PROXY_CACHE
在config.yaml
文件中被设置为true
。 -
在
config.yaml
文件中,FEATURE_QUOTA_MANAGEMENT
设置为true
。 -
您的组织配置了配额限制,例如
150 MB
。
流程
从代理机构拉取镜像到存储库,例如:
$ podman pull quay-server.example.com/proxytest/projectquay/quay:3.7.9
根据存储库空间,您可能需要从代理机构中拉取其他镜像,例如:
$ podman pull quay-server.example.com/proxytest/projectquay/quay:3.6.2
在 Red Hat Quay registry UI 中,点存储库的名称。
-
点导航窗格中的标签,并确保
quay:3.7.9
和quay:3.6.2
已标记。
-
点导航窗格中的标签,并确保
拉取导致您的存储库超过分配配额的最后一个镜像,例如:
$ podman pull quay-server.example.com/proxytest/projectquay/quay:3.5.1
-
刷新 Red Hat Quay registry 的 Tags 页面。您推送的第一个镜像(如
quay:3.7.9
)应该已自动修剪。标签 页面现在应当显示quay:3.6.2
和quay:3.5.1
。