第 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 存储。

镜像 registry spec.storage.s3 配置参数包含用于将 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,否则此参数将被忽略。

cloudFront

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

trustedCA

trustedCA 引用的配置映射的命名空间是 openshift-config。配置映射中的捆绑包键是 ca-bundle.crt。它是可选的。

注意

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

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