×

OpenShift Container Platform 可以从您的源代码构建镜像、部署它们并管理它们的整个生命周期。它提供一个内部集成的容器镜像仓库,可以部署在您的 OpenShift Container Platform 环境中以本地管理镜像。本概述包含与 OpenShift Container Platform 常用的镜像仓库相关的参考信息和链接,重点关注 OpenShift 镜像仓库。

OpenShift 镜像仓库常用术语表

此词汇表定义了镜像内容中使用的常用术语。

容器

轻量级可执行镜像,包含软件及其所有依赖项。由于容器虚拟化了操作系统,您可以在数据中心、公有云或私有云或本地主机上运行容器。

镜像仓库

镜像仓库是相关容器镜像和标识镜像的标签的集合。

镜像仓库副本

镜像仓库副本是一个保存 OpenShift Container Platform 镜像副本的仓库。

命名空间

命名空间隔离单个集群内的资源组。

Pod

Pod 是 Kubernetes 中最小的逻辑单元。一个 Pod 由一个或多个在工作节点上运行的容器组成。

私有镜像仓库

仓库是一个实现了容器镜像仓库 API 的服务器。私有镜像仓库是一个需要身份验证才能允许用户访问其内容的仓库。

公共镜像仓库

仓库是一个实现了容器镜像仓库 API 的服务器。公共镜像仓库是一个公开其内容的仓库。

Quay.io

Red Hat 提供和维护的公共 Red Hat Quay 容器镜像仓库实例,它为 OpenShift Container Platform 集群提供大部分容器镜像和 Operators。

OpenShift 镜像仓库

OpenShift 镜像仓库是由 OpenShift Container Platform 提供的用于管理镜像的仓库。

仓库身份验证

要将镜像推送到和从私有镜像仓库中拉取镜像,仓库需要使用凭据对用户进行身份验证。

路由

公开服务以允许外部用户和应用程序访问 OpenShift Container Platform 实例中的 Pod。

缩容

减少副本数量。

扩容

增加副本数量。

服务

服务公开一组 Pod 上运行的应用程序。

集成的 OpenShift 镜像仓库

OpenShift Container Platform 提供一个内置的容器镜像仓库,它作为集群上的标准工作负载运行。该仓库由一个基础设施 Operator 配置和管理。它为用户提供了一种开箱即用的解决方案来管理运行其工作负载的镜像,并且运行在现有的集群基础设施之上。此仓库可以像任何其他集群工作负载一样进行扩容或缩容,不需要特定的基础设施配置。此外,它还集成到集群用户身份验证和授权系统中,这意味着创建和检索镜像的访问权限是通过定义镜像资源上的用户权限来控制的。

该仓库通常用作在集群上构建的镜像的发布目标,以及作为在集群上运行的工作负载的镜像来源。当一个新的镜像被推送到仓库时,集群会收到关于新镜像的通知,其他组件可以对更新的镜像做出反应并使用它。

镜像数据存储在两个位置。实际的镜像数据存储在可配置的存储位置,例如云存储或文件系统卷。镜像元数据(由标准集群 API 公开并用于执行访问控制)存储为标准 API 资源,特别是镜像和镜像流。

第三方镜像仓库

OpenShift Container Platform 可以使用来自第三方镜像仓库的镜像创建容器,但这些镜像仓库不太可能提供与集成的 OpenShift 镜像仓库相同的镜像通知支持。在这种情况下,OpenShift Container Platform 将在创建镜像流时从远程仓库获取标签。要刷新已获取的标签,请运行 `oc import-image `。当检测到新镜像时,将发生前面描述的构建和部署反应。

身份验证

OpenShift Container Platform 可以与镜像仓库通信,使用用户提供的凭据访问私有镜像仓库。这允许 OpenShift Container Platform 将镜像推送到和从私有仓库中拉取镜像。

使用 Podman 进行仓库身份验证

某些容器镜像仓库需要访问授权。Podman 是一个用于管理容器和容器镜像以及与镜像仓库交互的开源工具。您可以使用 Podman 认证您的凭据,拉取仓库镜像,并将本地镜像存储在本地文件系统中。以下是使用 Podman 认证仓库的通用示例。

步骤
  1. 使用 Red Hat 生态系统目录 搜索 Red Hat 仓库中的特定容器镜像,并选择所需的镜像。

  2. 单击**获取此镜像**以查找容器镜像的命令。

  3. 运行以下命令并输入您的用户名和密码进行身份验证以登录

    $ podman login registry.redhat.io
     Username:<your_registry_account_username>
     Password:<your_registry_account_password>
  4. 下载镜像并通过运行以下命令将其保存在本地

    $ podman pull registry.redhat.io/<repository_name>

Red Hat Quay 镜像仓库

如果您需要企业级的容器镜像仓库,Red Hat Quay 可作为托管服务以及可在您自己的数据中心或云环境中安装的软件提供。Red Hat Quay 的高级功能包括地理复制、镜像扫描和回滚镜像的能力。

访问 Quay.io 网站设置您自己的托管 Quay 镜像仓库帐户。之后,按照 Quay 教程登录 Quay 镜像仓库并开始管理您的镜像。

您可以像任何远程容器镜像仓库一样从 OpenShift Container Platform 访问您的 Red Hat Quay 镜像仓库。

启用身份验证的 Red Hat 镜像仓库

Red Hat 生态系统目录的“容器镜像”部分中提供的所有容器镜像都托管在镜像仓库 `registry.redhat.io` 上。

镜像仓库 `registry.redhat.io` 需要身份验证才能访问 OpenShift Container Platform 上的镜像和托管内容。迁移到新仓库后,现有仓库将在一段时间内可用。

OpenShift Container Platform 从 `registry.redhat.io` 拉取镜像,因此您必须配置您的集群以使用它。

新仓库使用标准 OAuth 机制进行身份验证,方法如下:

  • **身份验证令牌。**由管理员生成的令牌是服务帐户,使系统能够对容器镜像仓库进行身份验证。服务帐户不受用户帐户更改的影响,因此令牌身份验证方法可靠且具有弹性。这是生产集群唯一支持的身份验证选项。

  • **Web 用户名和密码。**这是您用于登录 `access.redhat.com` 等资源的标准凭据集。虽然可以使用此身份验证方法与 OpenShift Container Platform 配合使用,但不支持用于生产部署。将此身份验证方法限制在 OpenShift Container Platform 外部的独立项目中。

您可以使用您的凭据(用户名和密码或身份验证令牌)使用 `podman login` 访问新仓库上的内容。

所有镜像流都指向使用安装拉取密钥进行身份验证的新仓库。

您必须将凭据放置在以下任一位置:

  • openshift 命名空间。您的凭据必须存在于openshift命名空间中,以便openshift命名空间中的镜像流可以导入。

  • 您的主机。您的凭据必须存在于您的主机上,因为Kubernetes在拉取镜像时会使用您主机上的凭据。

其他资源