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

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

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

先决条件

  • 使用用户置备的 AWS 中有一个集群。
  • 对于 AWS 上的 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 存储。

参数描述

bucket

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

region

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

regionEndpoint

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

encrypt

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

keyID

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

ImageRegistryConfigStorageS3CloudFront

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