15.3. 使用 Red Hat Quay 代理远程 registry
以下流程描述了如何使用 Red Hat Quay 代理远程 registry。此流程设置为代理 quay.io,用户可使用 podman
从 quay.io 上的任何命名空间拉取任何公共镜像。
前提条件
-
config.yaml 中的
FEATURE_PROXY_CACHE
设置为true
。 - 分配 Member 团队角色。如需有关团队角色的更多信息,请参阅 Red Hat Quay 中的用户和组织。
流程
-
在 UI 上的 Quay 机构中,例如
cache-quayio
,单击左侧窗格的 Organization Settings。 可选:点 Add Storage Quota 为您的机构配置配额管理。有关配额管理的更多信息,请参阅配额管理。
注意在某些情况下,使用 Podman 拉取镜像可能会在 pull: 无法访问配额限制时返回以下错误:
unable to pull image: Error parsing image configuration: Error fetching blob: invalid status code from registry 403 (Forbidden)
。错误403
isaccurate 发生,因为 Podman 会在命名空间 上隐藏正确的 API 错误:Quota has been exceeded
。这个问题会在以后的 Podman 更新中解决。在 Remote Registry 中,输入要缓存的远程 registry 的名称,如
quay.io
,然后单击 Save。注意通过将命名空间添加到 远程 Registry 中(如
quay.io/<namespace
>),您的机构中的用户只能从该命名空间中代理。可选:添加 Remote Registry Username 和 Remote Registry Password。
注意如果您没有设置 Remote Registry Username 和 Remote Registry Password,则无法添加它而无需删除代理缓存并创建新的 registry。
可选:在 到期 字段中设置一个时间。
注意- 代理组织中缓存镜像的默认标签 Expiration 字段被设置为 86400 秒。在代理机构中,每次拉取标签时,标签过期会被刷新到 UI 的 Expiration 字段中设置的值。此功能与 Quay 的默认 单个标签过期 功能不同。在代理机构中,可以覆盖单个标签功能。发生这种情况时,会根据代理机构的 过期 字段重置单个标签的过期时间。
- 已过期的镜像会在分配的时间后消失,但仍存储在 Quay 中。镜像被完全删除或收集的时间取决于您组织的 Time Machine 设置。垃圾回收的默认时间为 14 天,除非另有指定。
- 点 Save。
在 CLI 中,从 registry 中拉取公共镜像,如 quay.io,作为代理缓存:
podman pull <registry_url>/<organization_name>/<quayio_namespace>/<image_name>
$ podman pull <registry_url>/<organization_name>/<quayio_namespace>/<image_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果您的组织已设置为从远程 registry 中的单个命名空间拉取,则需要从 URL 中省略远程 registry 命名空间。例如:
podman pull <registry_url>/<organization_name>/<image_name>
。
15.3.1. 在代理机构中利用存储配额限制 复制链接链接已复制到粘贴板!
在 Red Hat Quay 3.8 中,代理缓存功能已增强了为带标签镜像的自动运行功能。只有在代理的命名空间配置了配额限制时,才会自动检查镜像标签。目前,如果镜像大小大于某个机构的配额,则会从上传中跳过镜像,直到管理员创建必要的空间。现在,当镜像超过分配的空间时,自动检查增强标记了最早使用的标签删除。因此,新镜像标签会存储,而使用最少的镜像标签被标记为删除。
- 作为 auto-pruning 功能的一部分,标记为删除的标签最终由垃圾收集器(gc) worker 进程垃圾回收。因此,在此期间不会完全强制配额大小限制。
- 目前,计算命名空间配额大小不会考虑清单子的大小。这是一个已知问题,将在以后的 Red Hat Quay 版本中解决。
15.3.1.1. 在代理机构中测试存储配额限制功能 复制链接链接已复制到粘贴板!
使用以下步骤测试启用了代理缓存和存储配额限制的组织的自动运行功能。
前提条件
- 您的机构配置为充当代理机构。以下示例来自 quay.io 的代理:
-
在
config.yaml
文件中将FEATURE_PROXY_CACHE
设置为true
。 -
在
config.yaml
文件中,FEATURE_QUOTA_MANAGEMENT
被设置为true
。 -
您的组织配置了配额限制,如
150 MB
。
流程
将镜像从代理机构拉取(pull),例如:
podman pull quay-server.example.com/proxytest/projectquay/quay:3.7.9
$ podman pull quay-server.example.com/proxytest/projectquay/quay:3.7.9
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据存储库中的空间,您可能需要从代理机构中拉取其他镜像,例如:
podman pull quay-server.example.com/proxytest/projectquay/quay:3.6.2
$ podman pull quay-server.example.com/proxytest/projectquay/quay:3.6.2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 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
$ podman pull quay-server.example.com/proxytest/projectquay/quay:3.5.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
刷新 Red Hat Quay registry 的 Tags 页面。您推送的第一个镜像(如
quay:3.7.9
)应该可以自动使用。Tags 页面现在应当显示quay:3.6.2
和quay:3.5.1
。