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 中的用户和团队

流程

  1. 在 UI 上的 Quay 机构中,如 cache-quayio,单击左侧窗格的 Organization Settings
  2. 可选:点 Add Storage Quota 为您的机构配置配额管理。有关配额管理的更多信息,请参阅配额管理

    注意

    在某些情况下,当拉取过程中达到配额限制时,使用 Podman 拉取镜像可能会返回以下错误: Error resolve image configuration: Error fetching blob: invalid status code from registry 403 (Forbidden)。错误 403 不准确,并且发生,因为 Podman 隐藏了正确的 API 错误: Quota has been exceeded on namespace。在以后的 Podman 更新中会解决这个问题。

  3. Remote Registry 中输入要缓存的远程 registry 的名称,如 quay.io,然后点 Save

    注意

    通过在 Remote Registry 中添加命名空间,如 quay.io/<namespace >,您的机构中的用户只能从该命名空间中代理。

  4. 可选:添加 远程 Registry 用户名和 远程 Registry 密码

    注意

    如果您没有设置 Remote Registry UsernameRemote Registry Password,则无法在不删除代理缓存并创建新 registry 的情况下添加一个。

  5. 可选:在 Expiration 字段中设置一个时间。

    注意
    • 代理机构中缓存的镜像的默认标签 Expiration 字段设置为 86400 秒。在代理机构中,每次拉取标签时,标签过期会被刷新为 UI 的 Expiration 字段中设置的值。此功能与 Quay 的默认 独立标签过期 功能不同。在代理机构中,可以覆盖单独的标签功能。当发生这种情况时,会根据代理机构的 Expiration 字段重置各个标签的过期时间。
    • 已过期的镜像将在分配时间后消失,但仍存储在 Quay 中。镜像被完全删除或收集的时间取决于您的机构的 Time Machine 设置。除非另有指定,垃圾回收的默认时间为 14 天。
  6. 点击 Save
  7. 在 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>

15.3.1. 在代理机构中利用存储配额限制

在 Red Hat Quay 3.8 中,代理缓存功能已被改进,并带有标记镜像的自动运行功能。只有代理命名空间配置了配额限制时,才会自动运行镜像标签。目前,如果镜像大小大于机构的配额,则会跳过镜像上传,直到管理员创建必要的空间。现在,当推送镜像超过分配的空间时,自动运行增强标记最近用于删除的标签。因此,新镜像标签会被存储,而最早使用的镜像标签标记为删除。

重要
  • 作为自动运行功能的一部分,标记为删除的标签最终由垃圾收集器(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

流程

  1. 从代理机构中拉取镜像到您的存储库,例如:

    $ podman pull quay-server.example.com/proxytest/projectquay/quay:3.7.9
  2. 根据存储库中保留的空间,您可能需要从代理机构中拉取其他镜像,例如:

    $ podman pull quay-server.example.com/proxytest/projectquay/quay:3.6.2
  3. 在 Red Hat Quay registry UI 中,点存储库的名称。

    • 点导航窗格中的标签,并确保 quay:3.7.9quay:3.6.2 已标记。
  4. 拉取将导致存储库超过分配的配额的最后镜像,例如:

    $ podman pull quay-server.example.com/proxytest/projectquay/quay:3.5.1
  5. 刷新 Red Hat Quay registry 的 Tags 页面。您推送的第一个镜像,例如 quay:3.7.9 应该已被自动修剪。Tags 页面现在应该显示 quay:3.6.2quay:3.5.1
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.