Translated message

A translation of this page exists in English.

与容器镜像拉取相关的防火墙变化

已更新 -

红帽容器镜像 registry 会有变化,这意味着,您可能需要调整防火墙设置。 请在 2023 年 5 月 1 日前进行这一调整。

有什么变化

当前,所有的镜像清单和文件系统 blobs 都直接由 registry.redhat.io 和 registry.access.redhat.com 提供。 我们会对这个方式进行一些改变,文件系统 blobs 将由Quay.io 提供。 为了避免在拉取容器镜像时出现问题,您需要允许到以下主机名的外向 TCP 连接(端口 80 和 443)。

  • cdn.quay.io
  • cdn01.quay.io
  • cdn02.quay.io
  • cdn03.quay.io

任何特别允许向外连接到 registry.redhat.io 或 registry.access.redhat.com 的防火墙配置都需要根据这个更改进行更新。 在进行了相关的改变后,您可以象以前一样继续从registry.redhat.io 和 registry.access.redhat.com 拉取镜像。 您不需要 Quay.io 登录,也不需要以任何方式与 Quay.io registry 直接进行交互,就可以继续拉取红帽容器镜像。

如果您以前已根据 OpenShift 安装指南 进行了相关的操作,或因为某些原因需要使用 Quay.io registry,则在您的防火墙配置中可能已设置了允许到这些主机的外向连接。 其他来自 Red Hat registry 的产品同步或下载容器镜像,如 Red Hat Ansible Automation Platform (AAP) 或 Red Hat Satellite,可以也需要对其相关的防火墙或代理进行修改,以允许到上述主机的外向连接。

我们建议,在配置防火墙规则时使用主机名而不是 IP 地址。 更多信息请参阅 这篇文章

为什么会发生这个变化

自 2022 年 6 月起,Red Hat OpenShift operator 索引镜像 (redhat/redhat/operator-index) 会由其后端为 Quay.io 的 registry.redhat.io 提供。 OpenShift 本身已经需要可以访问 Quay.io registry 和CDN 主机,这一点在其安装说明中已有说明,因此当时的用户并不需要对这一变化采取任何行动。

现在,我们计划将它扩展到所有的红帽容器镜像。 这样做可以使用户受益于 Quay.io registry 的高可用性,同时简化了红帽提供容器镜像的方式,并为未来的增强功能铺平道路。

测试

在相关的 registry 发生变化前,您可以测试镜像拉取操作是否可以正常工作。 您可以尝试拉取 registry.redhat.io/redhat/redhat-operator-index:v4.12 镜像,它的文件系统 blob 已托管在 Quay.io 中。 请使用您的客户门户凭证运行以下命令:

podman login registry.redhat.io
podman pull registry.redhat.io/redhat/redhat-operator-index:v4.12
echo $?

如果镜像被成功拉取, echo $? 命令将显示 "0"。

其他信息

除了这一变化外,多数事情都和以前一样:

  • 容器镜像拉取的规范没有变化,所以您可以继续从registry.redhat.io 和 registry.access.redhat.com 拉取镜像。
  • 红帽容器镜像将继续以相同的方式和相同的密钥进行签名。
  • 容器拉取清单仍然由 registry.redhat.io 和registry.access.redhat.com 直接提供。 重定向到 Quay.io CDN 只针对于配置和文件系统的blob。
  • 通过其 sha256 摘要拉取镜像仍需要使用它的模式 2 摘要(请参阅这篇较早的文章)。
  • 镜像标签(tag)、模式 2 摘要、镜像 ID 和签名都没有变化。
  • 在相关变化发生前拉取的镜像仍然有效,不需要重新拉取。
  • 对于 OpenShift 或 Kubernetes 集群,不需要改变与ImageContentSourcePolicy 相关的内容。
  • 对于 OpenShift 或 Kubernetes 集群,不需要重新启动节点、改变缓存或进行任何形式的升级。

取决于您所使用的防火墙,允许到上述提到的主机名的外向连接可能会解决以下问题:

  • 在拉取镜像时出现连接拒绝的问题
  • 拉取镜像时出现 I/O 超时的 问题
  • 在 OpenShift 或 Kubernetes 集群内拉取镜像时出现ImagePullBackOff 状态

以下是在不同的防火墙配置下,"podman pull "可能会出现的错误示例。

Trying to pull [...]...
WARN[0033] Failed, retrying in 1s ... (1/3). Error: copying system image from manifest list: parsing image configuration: Get "https://cdn02.quay.io/sha256/[...]": dial tcp [...]: i/o timeout
WARN[0065] Failed, retrying in 1s ... (2/3). Error: copying system image from manifest list: parsing image configuration: Get "https://cdn02.quay.io/sha256/[...]": dial tcp [...]: i/o timeout
WARN[0099] Failed, retrying in 1s ... (3/3). Error: copying system image from manifest list: parsing image configuration: Get "https://cdn02.quay.io/sha256/[...]": dial tcp [...]: i/o timeout
Error: copying system image from manifest list: parsing image configuration: Get "https://cdn02.quay.io/sha256/[...]": dial tcp [...]: i/o timeout
Trying to pull [...]...
WARN[0033] Failed, retrying in 1s ... (1/3). Error: copying system image from manifest list: parsing image configuration: Get "https://cdn02.quay.io/sha256/[...]": dial tcp [...]: connect: connection refused
WARN[0065] Failed, retrying in 1s ... (2/3). Error: copying system image from manifest list: parsing image configuration: Get "https://cdn02.quay.io/sha256/[...]": dial tcp [...]: connect: connection refused
WARN[0099] Failed, retrying in 1s ... (3/3). Error: copying system image from manifest list: parsing image configuration: Get "https://cdn02.quay.io/sha256/[...]": dial tcp [...]: connect: connection refused
Error: copying system image from manifest list: parsing image configuration: Get "https://cdn02.quay.io/sha256/[...]": dial tcp [...]: connect: connection refused

获得帮助

您的红帽客户团队或红帽合作伙伴可以为您提供指导。 或者,请联系我们的支持专家: https://access.redhat.com/support/

Comments