Menu Close

第 3 章 设置和配置 registry

3.1. 为 AWS 用户置备的基础架构配置 registry

3.1.1. 为 Image Registry Operator 配置一个 secret

除了configs.imageregistry.operator.openshift.io及 ConfigMap 资源外,还可以通过openshift-image-registry命名空间中的独立的 secret 资源为 Operator 提供其他配置。

image-registry-private-configuration-user secret 提供了存储访问和管理所需的凭证。如果找到默认凭据,它将覆盖 Operator 使用的默认凭据。

对于 AWS 上的 S3 存储,secret 应该包含以下两个键:

  • REGISTRY_STORAGE_S3_ACCESSKEY
  • REGISTRY_STORAGE_S3_SECRETKEY

流程

  • 创建一个包括了所需键的 OpenShift Container Platform secret。

    $ oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=myaccesskey --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=mysecretkey --namespace openshift-image-registry

3.1.2. 为使用用户置备的基础架构的AWS配置registry存储

在安装过程中,使用您的云凭据就可以创建一个 Amazon S3 存储桶,Registry Operator 将会自动配置存储。

如果 Registry Operator 无法创建 S3 存储桶或自动配置存储,您可以按照以下流程创建 S3 存储桶并配置存储。

先决条件

  • 在带有用户置备的基础架构的 AWS 上有一个集群。
  • 对于 Amazon S3 存储,secret 应该包含以下两个键:

    • REGISTRY_STORAGE_S3_ACCESSKEY
    • REGISTRY_STORAGE_S3_SECRETKEY

流程

如果 Registry Operator 无法创建 S3 存储桶并自动配置存储,请进行以下操作。

  1. 设置一个 Bucket Lifecycle Policy用来终止已有一天之久的未完成的分段上传操作。
  2. configs.imageregistry.operator.openshift.io/cluster中中输入存储配置:

    $ oc edit configs.imageregistry.operator.openshift.io/cluster

    配置示例

    storage:
      s3:
        bucket: <bucket-name>
        region: <region-name>

警告

为了保护 AWS 中 registry 镜像的安全,阻止对 S3 存储桶的公共访问

3.1.3. AWS S3 的 Image Registry Operator 配置参数

以下配置参数可用于AWS S3 registry 存储。

ImageRegistryConfigStorageS3 包含用于配置 registry 以将 AWS S3 服务用于后端存储的信息。如需更多信息,请参阅 S3 存储驱动程序文档

参数描述

bucket

要在其中存储 registry 数据的存储桶名称。它是可选的,如果未提供会自动生成。

region

存储桶所在的 AWS 区。它是可选的,并根据已安装的 AWS 区域进行设置。

regionEndpoint

RegionEndpoint 是 S3 兼容存储服务的端点。它是可选的,默认基于提供的 Region。

virtualHostedStyle

VirtualHostedStyle 启用 S3 虚拟主机风格的存储桶路径,使用自定义的 RegionEndpoint。它是可选的,默认为 false。

设置此参数以将 OpenShift Container Platform 部署到隐藏的区域。

encrypt

用来指定 registry 是否以加密的形式存储镜像。它是可选的,默认为 false。

keyID

KeyID 是用于加密的 KMS 密钥 ID。它是可选的。encrypt 必须为 true,否则此参数将被忽略。

ImageRegistryConfigStorageS3CloudFront

CloudFront 将 Amazon Cloudfront 配置为 registry 中的存储中间件。它是可选的。

注意

regionEndpoint 参数的值配置为 Rados 网关的 URL 时,不得指定显式端口。例如:

regionEndpoint: http://rook-ceph-rgw-ocs-storagecluster-cephobjectstore.openshift-storage.svc.cluster.local