搜索

3.6. 镜像存储

download PDF

本节详细介绍了 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 中使用的存储引擎的配置。每个键代表存储引擎的唯一标识符。该值由一个元组(key, value)组成,组成一个描述存储引擎参数的对象。

Default: []

DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS
(Required)

字符串数组

存储引擎列表(按 DISTRIBUTED_STORAGE_CONFIG的 ID),其镜像应完全复制到所有其他存储引擎。

DISTRIBUTED_STORAGE_PREFERENCE
(Required)

字符串数组

首选存储引擎(按 DISTRIBUTED_STORAGE_CONFIG中的 ID)。首选引擎意味着首先检查拉取和镜像被推送到它。

默认: 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. OpenShift Container Storage/NooBaa

以下 YAML 显示了使用 OpenShift 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
      maximum_chunk_size_mb: 100 1
      server_side_assembly: true 2
1
定义最终副本的最大块大小(以 MB 为单位)。如果 server_side_assembly 设为 false,则无效。
2
Red Hat Quay 是否应该尝试使用服务器端装配和最终块的副本,而不是客户端装配。默认值为 true

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
      maximum_chunk_size_mb: 100 1
      server_side_assembly: true 2

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

示例 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
      maximum_chunk_size_mb: 100 2
      server_side_assembly: true 3

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

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
      s3_region: <region> 2
      storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - default
# ...
1
S3Storage 存储驱动程序应该仅用于 AWS S3 存储桶。请注意,这与常规 S3 访问不同,可以使用 RadosGW 驱动程序或其他存储服务。例如,请参阅"示例 B: 使用 RadosGW 带有常规 S3 访问"。
2
可选。Amazon Web Services 区域。默认为 us-east-1

3.6.6.1. AWS STS S3 存储

以下 YAML 显示了在 OpenShift Container Platform 配置中使用 Amazon Web Services (AWS)安全令牌服务(STS)的示例配置。

# ...
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
# ...
1
唯一的 Amazon 资源名称(ARN)。
2
生成的 AWS S3 用户访问密钥。
3
生成的 AWS S3 用户 secret 密钥。
4
可选。Amazon Web Services 区域。默认为 us-east-1

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
          boto_timeout: 120 1
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
    - googleCloudStorage
1
可选。从连接时抛出超时异常的时间(以秒为单位)。默认值为 60 秒。另外,还包括时间(以秒为单位),直到尝试进行连接时抛出超时异常。默认值为 60 秒。

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 服务的 Secondary 端点将导致以下错误: AuthenticationErrorDetail:Cannot find the claimed account when trying 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

3.6.11. IBM Cloud 对象存储

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

DISTRIBUTED_STORAGE_CONFIG:
  default:
  - IBMCloudStorage #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
    maximum_chunk_size_mb: 100mb 1
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS:
- default
DISTRIBUTED_STORAGE_PREFERENCE:
- default
1
可选。建议设置为 100mb
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.