3.2. 配置对象存储
在安装 Red Hat Quay 前,您需要配置对象存储,无论您是否允许 Red Hat Quay Operator 管理存储或自己管理它。
如果您希望 Red Hat Quay Operator 负责管理存储,请参阅 Managed 存储中的部分来安装和配置 NooBaa 和 Red Hat OpenShift Data Foundation Operator。
如果您使用单独的存储解决方案,请在配置 Operator 时将 objectstorage 设置为 unmanaged。请参见以下部分。非受管存储,以了解配置现有存储的详细信息。
3.2.1. 使用非受管存储 复制链接链接已复制到粘贴板!
本节为方便起见,为非受管存储提供了配置示例。有关如何设置对象存储的完整说明,请参阅 Red Hat Quay 配置指南。
3.2.1.1. AWS S3 存储 复制链接链接已复制到粘贴板!
在为 Red Hat Quay 部署配置 AWS S3 存储时,请使用以下示例。
3.2.1.2. AWS Cloudfront 存储 复制链接链接已复制到粘贴板!
在为 Red Hat Quay 部署配置 AWS Cloudfront 时,请使用以下示例。
在配置 AWS Cloudfront 存储时,必须满足以下条件才能正确使用 Red Hat Quay:
-
您必须设置一个 Origin 路径,该路径 与
config.yaml文件中定义的 Red Hat Quay 的存储路径一致。如果无法满足这一要求,在拉取镜像时会导致403错误。如需更多信息,请参阅 Origin 路径。 - 您必须配置 Bucket 策略和 跨源资源共享(CORS) 策略。
-
您必须设置一个 Origin 路径,该路径 与
CloudFront S3 示例 YAML
bucket 策略示例
3.2.1.3. Google Cloud 存储 复制链接链接已复制到粘贴板!
在为 Red Hat Quay 部署配置 Google Cloud 存储时,请使用以下示例。
- 1
- 可选。从连接时抛出超时异常的时间(以秒为单位)。默认值为
60秒。另外,还包括时间(以秒为单位),直到尝试进行连接时抛出超时异常。默认值为60秒。
3.2.1.4. Microsoft Azure 存储 复制链接链接已复制到粘贴板!
在为 Red Hat Quay 部署配置 Microsoft Azure 存储时,请使用以下示例。
- 1
- Microsoft Azure 存储的
endpoint_url参数是可选的,可用于 Microsoft Azure Government (MAG)端点。如果留空,则endpoint_url将连接到正常的 Microsoft Azure 区域。从 Red Hat Quay 3.7 开始,您必须使用 MAG Blob 服务的主端点。使用 MAG Blob 服务的二级端点将导致以下错误:
AuthenticationErrorDetail:Cannot find the claimed account when trying the account whusc8-secondary。
3.2.1.5. Ceph/RadosGW 存储 复制链接链接已复制到粘贴板!
在为 Red Hat Quay 部署配置 Ceph/RadosGW 存储时,请使用以下示例。
3.2.1.6. Swift 存储 复制链接链接已复制到粘贴板!
在为 Red Hat Quay 部署配置 Swift 存储时,请使用以下示例。
3.2.1.7. NooBaa 非受管存储 复制链接链接已复制到粘贴板!
使用以下步骤将 NooBaa 部署为您的非受管存储配置。
流程
-
在 Red Hat Quay 控制台中,导航到 Storage
Object Bucket Claims,在 Red Hat Quay 控制台中创建一个 NooBaa Object Bucket Claim。 - 检索 Object Bucket Claim 数据详情,包括 Access Key, Bucket Name, Endpoint (hostname)和 Secret Key。
创建
config.yaml配置文件,该文件使用 Object Bucket Claim 的信息:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
有关配置对象 Bucket 声明的更多信息,请参阅 Object Bucket Claim。
3.2.2. 使用非受管 NooBaa 实例 复制链接链接已复制到粘贴板!
使用以下步骤将非受管 NooBaa 实例用于 Red Hat Quay 部署。
流程
-
在控制台的 Storage
Object Bucket Claims 中创建 NooBaa Object Bucket Claim。 -
检索 Object Bucket Claim 数据详细信息,包括
Access Key、Bucket Name、Endpoint (hostname)和Secret Key。 使用 Object Bucket Claim 的信息创建
config.yaml配置文件。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3. 受管存储 复制链接链接已复制到粘贴板!
如果您希望 Red Hat Quay Operator 管理 Red Hat Quay 的对象存储,您的集群需要能够通过 ObjectBucketClaim API 提供对象存储。使用 Red Hat OpenShift Data Foundation Operator,有两个支持的选项:
由本地 Kubernetes
PersistentVolume存储支持的 Multi-Cloud Object Gateway 的独立实例- 不提供高可用性
- 包括在 Red Hat Quay 订阅中
- Red Hat OpenShift Data Foundation 不需要单独的订阅
使用扩展对象服务和 Ceph 的生产环境部署 Red Hat OpenShift Data Foundation
- 高可用性
- Red Hat OpenShift Data Foundation 需要单独的订阅
要使用 standalone 实例选项,请继续阅读以下内容。对于 Red Hat OpenShift Data Foundation 的生产环境部署,请参阅 官方文档。
Object storage 磁盘空间由 Red Hat Quay Operator 自动分配 50 GiB。这个数字代表了大多数中小型 Red Hat Quay 安装的可用存储,但可能不足以满足您的用例。Red Hat OpenShift Data Foundation 重新定义大小目前没有被 Red Hat Quay Operator 处理。如需了解更多详细信息,请参见以下有关重新定义受管存储大小的部分。
作为 Red Hat Quay 订阅的一部分,用户可以使用 Red Hat OpenShift Data Foundation Operator 的 Multicloud Object Gateway 组件(以前称为 OpenShift Container Storage Operator)。此网关组件允许您为基于 Kubernetes PersistentVolume的块存储支持的 Red Hat Quay 提供 S3 兼容对象存储接口。使用量仅限于由 Operator 管理的 Red Hat Quay 部署,以及 multicloud Object Gateway 实例的确切规格,如下所述。
因为 Red Hat Quay 不支持本地文件系统存储,所以用户可以使用网关与 Kubernetes PersistentVolume 存储结合使用,以提供受支持的部署。PersistentVolume 直接在网关实例上挂载,作为对象存储的后备存储,支持任何基于块的 StorageClass。
按照 PersistentVolume 的性质,这不是横向扩展、高度可用的解决方案,且不会取代 Red Hat OpenShift Data Foundation 等横向扩展的存储系统。只有网关的一个实例正在运行。如果因为重新调度、更新或计划外停机而运行网关的 pod 不可用,这会导致连接的 Red Hat Quay 实例的临时降级。
使用 Red Hat OpenShift Data Foundation 在 OpenShift Container Platform 上部署 Red Hat Quay 需要您下载 Local Storage Operator、Red Hat OpenShift Data Foundation Operator,然后使用 OpenShift Container Platform UI 部署独立多云对象网关。有关这些步骤,请参阅以下 Red Hat OpenShift Data Foundation 文档: