3.6. 镜像存储

本节详细介绍了 Red Hat Quay 中提供的镜像存储功能和配置字段。

3.6.1. 镜像存储功能

下表描述了 Red Hat Quay 的镜像存储功能:

表 3.5. 存储配置功能

字段类型描述

FEATURE_REPO_MIRROR

布尔值

如果设置为 true,请启用存储库镜像。

默认: false

FEATURE_PROXY_STORAGE

布尔值

是否通过 NGINX 代理存储中的所有直接下载 URL。

默认: false

FEATURE_STORAGE_REPLICATION

布尔值

是否在存储引擎之间自动复制。

默认: false

3.6.2. 镜像存储配置字段

下表描述了 Red Hat Quay 的镜像存储配置字段:

表 3.6. 存储配置字段

字段类型描述

DISTRIBUTED_STORAGE_CONFIG
(Required)

对象

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

默认: []

DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS
(Required)

字符串数组

存储引擎列表(由 DISTRIBUTED_STORAGE_CONFIG中的 ID)应默认完全复制到所有其他存储引擎。

DISTRIBUTED_STORAGE_PREFERENCE
(Required)

字符串数组

要使用的首选存储引擎(按 DISTRIBUTED_STORAGE_CONFIG的 ID)。首选引擎表示首先检查拉取,并且镜像被推送(push)到其中。

默认: false

MAXIMUM_LAYER_SIZE

字符串

镜像层允许的最大值。

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

示例:100G

Default: 20G

3.6.3. 本地存储

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

DISTRIBUTED_STORAGE_CONFIG:
  default:
    - LocalStorage
    - storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - default

3.6.4. OCS/NooBaa

以下 YAML 显示了一个使用 Open Container Storage/NooBaa 实例的配置示例:

DISTRIBUTED_STORAGE_CONFIG:
  rhocsStorage:
    - RHOCSStorage
    - access_key: access_key_here
      secret_key: secret_key_here
      bucket_name: quay-datastore-9b2108a3-29f5-43f2-a9d5-2872174f9a56
      hostname: s3.openshift-storage.svc.cluster.local
      is_secure: 'true'
      port: '443'
      storage_path: /datastorage/registry

3.6.5. Ceph/RadosGW 存储

以下示例显示了在使用 Ceph/RadosGW 时可能的两个 YAML 配置。

示例 A:使用带有 radosGWStorage 驱动程序的 RadosGWW

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

示例 B:使用带有常规 s3 访问的 RadosGW

DISTRIBUTED_STORAGE_CONFIG:
  s3Storage: 1
    - RadosGWStorage
    - access_key: <access_key_here>
      bucket_name: <bucket_name_here>
      hostname: <hostname_here>
      is_secure: true
      secret_key: <secret_key_here>
      storage_path: /datastorage/registry

1
用于常规 s3 访问。请注意,一般的 s3 访问不严格仅限于 Amazon Web Services (AWS) 3,可用于 RadosGW 或其他存储服务。有关使用 AWS S3 驱动程序的常规 s3 访问示例,请参阅"AWS S3 存储"。

3.6.6. AWS S3 存储

以下 YAML 显示了使用 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
      storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - s3Storage
1
S3Storage 存储驱动程序应该仅用于 AWS S3 存储桶。请注意,这与常规 S3 访问不同,可以使用 RadosGW 驱动程序或其他存储服务。例如,请参阅"示例 B: 使用 RadosGW 带有常规 S3 访问"。

3.6.7. Google Cloud Storage

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

DISTRIBUTED_STORAGE_CONFIG:
    googleCloudStorage:
        - GoogleCloudStorage
        - access_key: GOOGQIMFB3ABCDEFGHIJKLMN
          bucket_name: quay-bucket
          secret_key: FhDAYe2HeuAKfvZCAGyOioNaaRABCDEFGHIJKLMN
          storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - googleCloudStorage

3.6.8. Azure Storage

以下 YAML 显示了一个使用 Azure Storage 的示例配置:

DISTRIBUTED_STORAGE_CONFIG:
  azureStorage:
    - AzureStorage
    - azure_account_name: azure_account_name_here
      azure_container: azure_container_here
      storage_path: /datastorage/registry
      azure_account_key: azure_account_key_here
      sas_token: some/path/
      endpoint_url: https://[account-name].blob.core.usgovcloudapi.net 1
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - azureStorage
1
Azure 存储的 endpoint_url 参数是可选的,可用于 Microsoft Azure Government (MAG)端点。如果留空,endpoint_url 将连接到普通的 Azure 区域。

从 Red Hat Quay 3.7 开始,您必须使用 MAG Blob 服务的主端点。使用 MAG Blob 服务的二级端点将导致以下错误: AuthenticationErrorDetail:Cannot find the claimed account when to getProperties for the account whusc8-secondary.

3.6.9. Swift 存储

以下 YAML 显示了一个使用 Swift 存储的示例配置:

DISTRIBUTED_STORAGE_CONFIG:
  swiftStorage:
    - SwiftStorage
    - swift_user: swift_user_here
      swift_password: swift_password_here
      swift_container: swift_container_here
      auth_url: https://example.org/swift/v1/quay
      auth_version: 1
      ca_cert_path: /conf/stack/swift.cert"
      storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - swiftStorage

3.6.10. Nutanix 对象存储

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

DISTRIBUTED_STORAGE_CONFIG:
  nutanixStorage: #storage config name
    - RadosGWStorage #actual driver
    - access_key: access_key_here #parameters
      secret_key: secret_key_here
      bucket_name: bucket_name_here
      hostname: hostname_here
      is_secure: 'true'
      port: '443'
      storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE: #must contain name of the storage config
    - nutanixStorage