8.3. 存储对象配置字段


存储字段定义存储容器镜像 blob 和清单的后端。Red Hat Quay 支持以下存储供应商:

  • Amazon Web Services (AWS) S3
  • AWS STS S3 (Security Token Service)
  • AWS CloudFront (CloudFront S3Storage)
  • Google Cloud Storage
  • Microsoft Azure Blob Storage
  • Swift Storage
  • Nutanix 对象存储
  • IBM Cloud Object Storage
  • NetApp ONTAP S3 对象存储
  • Hitachi Content Platform (HCP)对象存储
注意

许多支持的存储供应商都使用 RadosGWStorage 驱动程序,因为它们兼容 S3 的 API。

8.3.1. 存储配置字段

下表描述了 Red Hat Quay 的存储配置字段。配置后端存储时需要这些字段。

Expand
表 8.5. 存储配置字段
字段类型描述

DISTRIBUTED_STORAGE_CONFIG
(必需)

对象

配置 Red Hat Quay 中要使用的存储引擎。每个键代表存储引擎的唯一标识符。该值由一个元组(键、值)组成一个对象来描述存储引擎参数。

默认: []

DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS
(必需)

字符串数组

默认情况下,存储引擎(根据 ID 在 DISTRIBUTED_STORAGE_CONFIG中)的列表,这些镜像应完全复制到所有其他存储引擎。

DISTRIBUTED_STORAGE_PREFERENCE
(必需)

字符串数组

首选存储引擎(根据 ID 在 DISTRIBUTED_STORAGE_CONFIG中)首选引擎表示首先检查拉取,并且镜像被推送(push)到其中。

Default: False

MAXIMUM_LAYER_SIZE
(可选)

字符串

镜像层允许的最大值。

Pattern:^[0-9]+(G|M)$

示例:100G

Default: 20G

存储配置示例

DISTRIBUTED_STORAGE_CONFIG:
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - default
MAXIMUM_LAYER_SIZE: 100G
Copy to Clipboard Toggle word wrap

8.3.2. 本地存储

以下 YAML 显示了使用本地存储的示例配置。

重要

仅在部署 registry 进行 概念验证 时使用本地存储。它不适用于生产环境。使用本地存储时,您必须在启动 registry 时将 registry 映射到容器中的 datastorage 路径。如需更多信息,请参阅 概念验证 - 部署 Red Hat Quay

本地存储示例

DISTRIBUTED_STORAGE_CONFIG:
  default:
    - LocalStorage
    - storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - default
Copy to Clipboard Toggle word wrap

8.3.3. Red Hat OpenShift Data Foundation

以下 YAML 显示了使用 Red Hat OpenShift Data Foundation 的示例配置:

DISTRIBUTED_STORAGE_CONFIG:
  rhocsStorage:
    - RHOCSStorage
    - access_key: <access_key_here>
      secret_key: <secret_key_here>
      bucket_name: <bucket_name>
      hostname: <hostname>
      is_secure: 'true'
      port: '443'
      storage_path: /datastorage/registry
      maximum_chunk_size_mb: 100 
1

      server_side_assembly: true 
2
Copy to Clipboard Toggle word wrap
1
定义最终副本的最大块大小(以 MB 为单位)。如果将 server_side_assembly 设为 False,则无效。
2
可选。Red Hat Quay 是否应该尝试使用服务器端装配和最终块的副本,而不是客户端装配。默认值为 True

8.3.4. Ceph 对象网关(RadosGW)存储示例

Red Hat Quay 支持使用 Ceph 对象网关(RadosGW)作为对象存储后端。radosgw 是 Red Hat Ceph Storage 的一个组件,它是专为私有架构设计的存储平台。Red Hat Ceph Storage 提供 S3 兼容 REST API,用于与 Ceph 交互。

注意

radosgw 是一个与内部兼容 S3 的存储解决方案。它实施 S3 API,并且需要相同的身份验证字段,如 access_keysecret_keybucket_name。有关 Ceph 对象网关和 S3 API 的更多信息,请参阅 Ceph 对象网关

以下 YAML 显示了使用 RadosGW 的示例配置。

带有常规 s3 访问示例的 radosgw

DISTRIBUTED_STORAGE_CONFIG:
  radosGWStorage: 
1

    - RadosGWStorage
    - access_key: <access_key_here>
      bucket_name: <bucket_name_here>
      hostname: <hostname_here>
      is_secure: true
      port: '443'
      secret_key: <secret_key_here>
      storage_path: /datastorage/registry
      maximum_chunk_size_mb: 100 
2

      server_side_assembly: true 
3
Copy to Clipboard Toggle word wrap

1
用于常规 s3 访问。请注意,一般的 s3 访问不严格仅限于 Amazon Web Services (AWS) s3,可用于 RadosGW 或其他存储服务。有关使用 AWS S3 驱动程序的常规 s3 访问示例,请参阅"AWS S3 存储"。
2
可选。定义最终副本的最大块大小(以 MB 为单位)。如果将 server_side_assembly 设为 False,则无效。
3
可选。Red Hat Quay 是否应该尝试使用服务器端装配和最终块的副本,而不是客户端装配。默认值为 True

8.3.5. 支持的 AWS 存储后端

Red Hat Quay 支持多个 Amazon Web Services (AWS)存储后端:

  • S3 storage :对使用 AWS 原生对象存储服务的 AWS S3 存储桶的标准支持。
  • STS S3 存储 :对 AWS 安全令牌服务(STS)的支持,以假定 IAM 角色,允许更安全的 S3 操作。
  • CloudFront S3 存储 :与 AWS CloudFront 集成,以便在仍使用 AWS S3 作为源时启用内容高可用性分布。

以下小节提供了 YAMLs 示例,以及每个 AWS 存储后端的附加信息。

8.3.5.1. Amazon Web Services S3 存储

Red Hat Quay 支持使用 AWS S3 作为对象存储后端。AWS S3 是一个对象存储服务,设计用于数据可用性、可扩展性、安全性和性能。以下 YAML 显示了使用 AWS S3 的示例配置。

AWS S3 示例

# ...
DISTRIBUTED_STORAGE_CONFIG:
  default:
    - S3Storage 
1

    - host: s3.us-east-2.amazonaws.com
      s3_access_key: ABCDEFGHIJKLMN
      s3_secret_key: OL3ABCDEFGHIJKLMN
      s3_bucket: quay_bucket
      s3_region: <region> 
2

      storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - default
# ...
Copy to Clipboard Toggle word wrap

1
S3Storage 存储驱动程序应该仅用于 AWS S3 存储桶。请注意,这与常规 S3 访问不同,可以使用 RadosGW 驱动程序或其他存储服务。例如,请参阅"示例 B: 使用 RadosGW 带有常规 S3 访问"。
2
Amazon Web Services 区域。默认为 us-east-1

8.3.5.2. Amazon Web Services STS S3 存储

AWS 安全令牌服务(STS)提供临时的、有有限权限的凭证来访问 AWS 资源,从而通过避免存储长期访问密钥来提高安全性。这在如 OpenShift Container Platform 等环境中很有用,其中可以通过 IAM 角色轮转或管理凭证。

以下 YAML 显示了在 OpenShift Container Platform 配置中使用带有 Red Hat Quay 的 AWS STS 的示例配置。

AWS STS S3 存储示例

# ...
DISTRIBUTED_STORAGE_CONFIG:
   default:
    - STSS3Storage
    - sts_role_arn: <role_arn> 
1

      s3_bucket: <s3_bucket_name>
      storage_path: <storage_path>
      sts_user_access_key: <s3_user_access_key> 
2

      sts_user_secret_key: <s3_user_secret_key> 
3

      s3_region: <region> 
4

DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - default
# ...
Copy to Clipboard Toggle word wrap

1
唯一的 Amazon 资源名称(ARN)。
2
生成的 AWS S3 用户访问密钥。
3
生成的 AWS S3 用户 secret 密钥。
4
Amazon Web Services 区域。默认为 us-east-1

8.3.5.3. AWS CloudFront 存储

AWS CloudFront 是一个内容交付网络(CDN)服务,该服务缓存并更接近用户分发内容,以提高性能和降低延迟。Red Hat Quay 支持 CloudFrontedS3Storage 驱动程序的 CloudFront,它通过 CloudFront 发行版启用对 S3 存储桶的安全、签名访问。

在为 Red Hat Quay 部署配置 AWS CloudFront 时,请使用以下示例。

注意
  • 在配置 AWS Cloudfront 存储时,必须满足以下条件才能正确使用 Red Hat Quay:

    • 您必须设置一个 Origin 路径,该路径config.yaml 文件中定义的 Red Hat Quay 的存储路径一致。如果无法满足这一要求,在拉取镜像时会导致 403 错误。如需更多信息,请参阅 Origin 路径
    • 您必须配置 Bucket 策略和 跨源资源共享(CORS) 策略。

CloudFront S3 示例 YAML

DISTRIBUTED_STORAGE_CONFIG:
    default:
      - CloudFrontedS3Storage
      - cloudfront_distribution_domain: <CLOUDFRONT_DISTRIBUTION_DOMAIN>
        cloudfront_key_id: <CLOUDFRONT_KEY_ID>
        cloudfront_privatekey_filename: <CLOUDFRONT_PRIVATE_KEY_FILENAME>
        host: <S3_HOST>
        s3_access_key: <S3_ACCESS_KEY>
        s3_bucket: <S3_BUCKET_NAME>
        s3_secret_key: <S3_SECRET_KEY>
        storage_path: <STORAGE_PATH>
        s3_region: <S3_REGION>
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS:
  - default
DISTRIBUTED_STORAGE_PREFERENCE:
  - default
Copy to Clipboard Toggle word wrap

bucket 策略示例

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<AWS_ACCOUNT_ID>:user/CloudFront Origin Access Identity <CLOUDFRONT_OAI_ID>" 
1
 
2

            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<S3_BUCKET_NAME>/*" 
3

        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<AWS_ACCOUNT_ID>:user/CloudFront Origin Access Identity <CLOUDFRONT_OAI_ID>" 
4
 
5

            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::<S3_BUCKET_NAME>"
        }
    ]
}
Copy to Clipboard Toggle word wrap

1 4
拥有 CloudFront OAI 和 S3 存储桶的 AWS 帐户的标识符或帐户 ID。
2 5
用于访问 S3 存储桶的 CloudFront Origin Access Identity (OAI)。
3
指定 CloudFront 可以访问 S3 存储桶内的所有对象(configured)。

8.3.6. Google Cloud Storage

Red Hat Quay 支持使用 Google Cloud Storage (GCS)作为对象存储后端。与 Red Hat Quay 一起使用时,它提供了一个云原生解决方案来存储容器镜像和工件。

以下 YAML 显示了使用 Google Cloud Storage 的示例配置。

Google Cloud Storage 示例

DISTRIBUTED_STORAGE_CONFIG:
    googleCloudStorage:
        - GoogleCloudStorage
        - access_key: <access_key>
          bucket_name: <bucket_name>
          secret_key: <secret_key>
          storage_path: /datastorage/registry
          boto_timeout: 120 
1

DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - googleCloudStorage
Copy to Clipboard Toggle word wrap

1
可选。从连接时抛出超时异常的时间(以秒为单位)。默认值为 60 秒。另外,还包括时间(以秒为单位),直到尝试进行连接时抛出超时异常。默认值为 60 秒。

8.3.7. Microsoft Azure Blob Storage

Red Hat Quay 支持使用 Microsoft Azure Blob Storage 作为对象存储后端。Azure Blob 存储可用于以安全且云原生的方式持久保留容器镜像、元数据和其他工件。

以下 YAML 显示了使用 Azure Storage 的示例配置。

Microsoft Azure Blob Storage 示例

DISTRIBUTED_STORAGE_CONFIG:
  azureStorage:
    - AzureStorage
    - azure_account_name: <azure_account_name>
      azure_container: <azure_container_name>
      storage_path: /datastorage/registry
      azure_account_key: <azure_account_key>
      sas_token: some/path/
      endpoint_url: https://[account-name].blob.core.usgovcloudapi.net 
1

DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - azureStorage
Copy to Clipboard Toggle word wrap

1
Azure 存储的 endpoint_url 参数是可选的,可用于 Microsoft Azure Government(MAG)端点。如果留空,则 endpoint_url 将连接到普通的 Azure 区域。

从 Red Hat Quay 3.7 开始,您必须使用 MAG Blob 服务的主端点。使用 MAG Blob 服务的 Secondary 端点将导致以下错误: AuthenticationErrorDetail:Can not found the claimed account when attempt to GetProperties for the account whusc8-secondary.

8.3.8. Swift 对象存储

Red Hat Quay 支持使用 Red Hat OpenStack Platform (RHOSP) Object Storage 服务 或 Swift 作为对象存储后端。Swift 提供类似 S3 的功能,具有自己的 API 和身份验证机制。

以下 YAML 显示了使用 Swift 存储的示例配置。

Swift 对象存储示例

DISTRIBUTED_STORAGE_CONFIG:
  swiftStorage:
    - SwiftStorage
    - swift_user: <swift_username>
      swift_password: <swift_password>
      swift_container: <swift_container>
      auth_url: https://example.org/swift/v1/quay
      auth_version: 3
      os_options:
        tenant_id: <osp_tenant_id>
        user_domain_name: <osp_domain_name>
      ca_cert_path: /conf/stack/swift.cert"
      storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - swiftStorage
Copy to Clipboard Toggle word wrap

8.3.9. Nutanix Objects 存储

Red Hat Quay 支持 Nutanix Objects Storage 作为对象存储后端。Nutanix Object Storage 适合使用 Nutanix 运行私有云基础架构的组织。

以下 YAML 显示了使用 Nutanix 对象存储的示例配置。

Nutanix Objects 存储示例

DISTRIBUTED_STORAGE_CONFIG:
  nutanixStorage: # storage config name
    - RadosGWStorage # actual driver
    - access_key: <access_key>
      secret_key: <secret_key>
      bucket_name: <bucket_name>
      hostname: <hostname>
      is_secure: 'true'
      port: '443'
      storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE: # must contain name of the storage config
    - nutanixStorage
Copy to Clipboard Toggle word wrap

8.3.10. IBM Cloud Object Storage

Red Hat Quay 支持 IBM Cloud Object Storage 作为对象存储后端。IBM Cloud Object Storage 适用于需要 IBM Cloud 上可扩展和安全存储的云原生应用程序。

以下 YAML 显示了使用 IBM Cloud Object Storage 的示例配置。

IBM Cloud Object Storage

DISTRIBUTED_STORAGE_CONFIG:
  default:
  - IBMCloudStorage # actual driver
  - access_key: <access_key> # parameters
    secret_key: <secret_key>
    bucket_name: <bucket_name>
    hostname: <hostname>
    is_secure: 'true'
    port: '443'
    storage_path: /datastorage/registry
    maximum_chunk_size_mb: 100mb 
1

    minimum_chunk_size_mb: 5mb 
2

DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS:
- default
DISTRIBUTED_STORAGE_PREFERENCE:
- default
Copy to Clipboard Toggle word wrap

1
可选。建议设置为 100mb
2
可选。默认值为 5mb。不要在不需要 咨询红帽 支持的情况下调整此字段,因为它可能会带来意外的结果。

8.3.11. NetApp ONTAP S3 对象存储

Red Hat Quay 支持使用 NetApp ONTAP S3 作为对象存储后端。

以下 YAML 显示了使用 NetApp ONTAP S3 的示例配置。

NetApp ONTAP S3 示例

DISTRIBUTED_STORAGE_CONFIG:
  local_us:
  - RadosGWStorage
  - access_key: <access_key>
    bucket_name: <bucket_name>
    hostname: <host_url_address>
    is_secure: true
    port: <port>
    secret_key: <secret_key>
    storage_path: /datastorage/registry
    signature_version: v4
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS:
- local_us
DISTRIBUTED_STORAGE_PREFERENCE:
- local_us
Copy to Clipboard Toggle word wrap

8.3.12. Hitachi Content Platform 对象存储

Red Hat Quay 支持使用 Hitachi Content Platform (HCP) 作为对象存储后端。

以下 YAML 显示了使用 HCP 进行对象存储的示例配置。

HCP 存储配置示例

DISTRIBUTED_STORAGE_CONFIG:
  hcp_us:
  - RadosGWStorage
  - access_key: <access_key>
    bucket_name: <bucket_name>
    hostname: <hitachi_hostname_example>
    is_secure: true
    secret_key: <secret_key>
    storage_path: /datastorage/registry
    signature_version: v4
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS:
- hcp_us
DISTRIBUTED_STORAGE_PREFERENCE:
- hcp_us
Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat