第 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 存储桶并自动配置存储,请进行以下操作。
- 设置一个 Bucket Lifecycle Policy用来终止已有一天之久的未完成的分段上传操作。
在
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 存储驱动程序文档。
参数 | 描述 |
---|---|
| 要在其中存储 registry 数据的存储桶名称。它是可选的,如果未提供会自动生成。 |
|
ChunkSizeMiB 是 S3 API 的多部分上传块的大小。默认值为 |
| 存储桶所在的 AWS 区。它是可选的,并根据已安装的 AWS 区域进行设置。 |
| RegionEndpoint 是 S3 兼容存储服务的端点。它是可选的,默认基于提供的 Region。 |
| VirtualHostedStyle 启用 S3 虚拟主机风格的存储桶路径,使用自定义的 RegionEndpoint。它是可选的,默认为 false。 设置此参数以将 OpenShift Container Platform 部署到隐藏的区域。 |
| 用来指定 registry 是否以加密的形式存储镜像。它是可选的,默认为 false。 |
| KeyID 是用于加密的 KMS 密钥 ID。它是可选的。encrypt 必须为 true,否则此参数将被忽略。 |
| CloudFront 将 Amazon Cloudfront 配置为 registry 中的存储中间件。它是可选的。 |
|
|
当 regionEndpoint
参数的值配置为 Rados 网关的 URL 时,必须指定显式端口。例如:
regionEndpoint: http://rook-ceph-rgw-ocs-storagecluster-cephobjectstore.openshift-storage.svc.cluster.local