3.15. 创建 registry 存储
安装集群后,必须为 registry Operator 创建存储。
3.15.1. 安装过程中删除的镜像 registry
在不提供可共享对象存储的平台上,OpenShift Image Registry Operator bootstraps 本身为 Removed
。这允许 openshift-installer
在这些平台类型上完成安装。
安装后,您必须编辑 Image Registry Operator 配置,将 managementState
从 Removed
切换到 Managed
。完成此操作后,您必须配置存储。
3.15.2. 镜像 registry 存储配置
对于不提供默认存储的平台,Image Registry Operator 最初不可用。安装后,您必须将 registry 配置为使用存储,以便 Registry Operator 可用。
显示配置生产集群所需的持久性卷的说明。如果适用,显示有关将空目录配置为存储位置的说明,这仅适用于非生产集群。
提供了在升级过程中使用 Recreate
rollout 策略来允许镜像 registry 使用块存储类型的说明。
3.15.2.1. 为 VMware vSphere 配置 registry 存储
作为集群管理员,在安装后需要配置 registry 来使用存储。
先决条件
- 集群管理员权限。
- VMware vSphere 上有一个集群。
为集群置备的持久性存储,如 Red Hat OpenShift Data Foundation。
重要当您只有一个副本时,OpenShift Container Platform 支持对镜像 registry 存储的
ReadWriteOnce
访问。ReadWriteOnce
访问还要求 registry 使用Recreate
rollout 策略。要部署支持高可用性的镜像 registry,需要两个或多个副本,ReadWriteMany
访问。- 必须具有"100Gi"容量.
测试显示在 RHEL 中使用 NFS 服务器作为核心服务的存储后端的问题。这包括 OpenShift Container Registry 和 Quay,Prometheus 用于监控存储,以及 Elasticsearch 用于日志存储。因此,不建议使用 RHEL NFS 作为 PV 后端用于核心服务。
市场上的其他 NFS 实现可能没有这些问题。如需了解更多与此问题相关的信息,请联络相关的 NFS 厂商。
流程
要将 registry 配置为使用存储,修改
configs.imageregistry/cluster
资源中的spec.storage.pvc
。注意使用共享存储时,请查看您的安全设置以防止外部访问。
验证您没有 registry pod:
$ oc get pod -n openshift-image-registry -l docker-registry=default
输出示例
No resourses found in openshift-image-registry namespace
注意如果您的输出中有一个 registry pod,则不需要继续这个过程。
检查 registry 配置:
$ oc edit configs.imageregistry.operator.openshift.io
输出示例
storage: pvc: claim: 1
- 1
- 将
claim
字段留空以允许自动创建image-registry-storage
持久性卷声明(PVC)。PVC 基于默认存储类生成。但请注意,默认存储类可能会提供 ReadWriteOnce (RWO)卷,如 RADOS 块设备(RBD),这可能会在复制到多个副本时导致问题。
检查
clusteroperator
状态:$ oc get clusteroperator image-registry
输出示例
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE image-registry 4.7 True False False 6h50m
3.15.2.2. 为 VMware vSphere 配置块 registry 存储
要允许镜像 registry 在作为集群管理员升级过程中使用块存储类型,如 vSphere Virtual Machine Disk(VMDK),您可以使用 Recreate rollout 策略
。
支持块存储卷,但不建议在生产环境中用于镜像 registry。在块存储上配置 registry 的安装不具有高可用性,因为 registry 无法具有多个副本。
流程
输入以下命令将镜像 registry 存储设置为块存储类型,对 registry 进行补丁,使其使用
Recreate
rollout 策略,并只使用一个
副本运行:$ oc patch config.imageregistry.operator.openshift.io/cluster --type=merge -p '{"spec":{"rolloutStrategy":"Recreate","replicas":1}}'
为块存储设备置备 PV,并为该卷创建 PVC。请求的块卷使用 ReadWriteOnce(RWO)访问模式。
创建包含以下内容的
pvc.yaml
文件以定义 VMware vSpherePersistentVolumeClaim
对象:kind: PersistentVolumeClaim apiVersion: v1 metadata: name: image-registry-storage 1 namespace: openshift-image-registry 2 spec: accessModes: - ReadWriteOnce 3 resources: requests: storage: 100Gi 4
输入以下命令从文件创建
PersistentVolumeClaim
对象:$ oc create -f pvc.yaml -n openshift-image-registry
输入以下命令编辑 registry 配置,使其引用正确的 PVC:
$ oc edit config.imageregistry.operator.openshift.io -o yaml
输出示例
storage: pvc: claim: 1
- 1
- 通过创建自定义 PVC,您可以将
claim
字段留空,以便默认自动创建image-registry-storage
PVC。
有关配置 registry 存储以便引用正确的 PVC 的说明,请参阅 为 vSphere 配置 registry。