搜索

4.2. 使用 Multicloud 对象网关作为 OpenShift Image Registry 后端存储

download PDF

您可以在 on-prem OpenShift 部署中使用 Multicloud Object Gateway (MCG)作为 OpenShift Container Platform (OCP) Image Registry 后端存储。

要将 MCG 配置为 OCP 镜像 registry 的后端存储,请按照流程中介绍的步骤操作。

先决条件

  • OCP Web 控制台的管理访问权限.
  • 使用 MCG 运行 OpenShift Data Foundation 集群。

流程

  1. 按照 Creating Object Bucket Claim 中的步骤创建 ObjectBucketClaim
  2. 创建 image-registry-private-configuration-user secret。

    1. 进入 OpenShift web-console。
    2. ObjectBucketClaim -→ ObjectBucketClaim Data
    3. ObjectBucketClaim 数据 中,在 openshift-image-registry namespace 中查找 MCG access keyMCG secret key
    4. 使用以下命令创建 secret:

      $ oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=<MCG Accesskey> --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=<MCG Secretkey> --namespace openshift-image-registry
  3. 将 Image Registry Operator 的 managementState 改为 Managed

    $ oc patch configs.imageregistry.operator.openshift.io/cluster --type merge -p '{"spec": {"managementState": "Managed"}}'
  4. 编辑 Image Registry Operator 配置文件的 spec.storage 部分:

    1. 从 Web 控制台获取 Object Bucket Claim Data 部分下的 unique-bucket-nameregionEndpoint或者也可以使用以下命令获取 regionEndpoint 和 unique-bucket-name 的信息:

       $ oc describe  noobaa
    2. regionEndpoint 添加为 http://<Endpoint-name>:<port> 如果

      • StorageClass 是 ceph-rgw 存储类,
      • 端点指向来自 openshift-storage 命名空间中的内部 SVC。
    3. 在对 Operator registry 配置文件进行更改后,image-registry pod 会生成。

      $ oc edit configs.imageregistry.operator.openshift.io -n openshift-image-registry
      apiVersion: imageregistry.operator.openshift.io/v1
      kind: Config
      metadata:
      [..]
      name: cluster
      spec:
      [..]
      storage:
      s3:
      
        bucket: <Unique-bucket-name>
      
        region: us-east-1 (Use this region as default)
      
        regionEndpoint: https://<Endpoint-name>:<port>
      
        virtualHostedStyle: false
  5. 将镜像 registry 设置重置为默认值。

    $ oc get pods -n openshift-image-registry

验证步骤

  • 运行以下命令检查是否成功将 MCG 配置为 OpenShift Image Registry 后端存储。

    $ oc get pods -n openshift-image-registry

    输出示例

    $ oc get pods -n openshift-image-registry
    
    NAME        	                                   READY   STATUS     RESTARTS    AGE
    
    cluster-image-registry-operator-56d78bc5fb-bxcgv   2/2 	   Running 	    0         44d
    image-pruner-1605830400-29r7k                  	   0/1 	   Completed    0         10h
    image-registry-b6c8f4596-ln88h                 	   1/1 	   Running 	    0         17d
    node-ca-2nxvz                                  	   1/1 	   Running    	0         44d
    node-ca-dtwjd                                  	   1/1 	   Running 	    0         44d
    node-ca-h92rj                                  	   1/1 	   Running 	    0         44d
    node-ca-k9bkd                                  	   1/1 	   Running 	    0         44d
    node-ca-stkzc                                  	   1/1 	   Running 	    0         44d
    node-ca-xn8h4                                  	   1/1 	   Running 	    0         44d

  • (可选)您也可以运行以下命令来验证是否将 MCG 配置为 OpenShift Image Registry 后端存储。

    $ oc describe pod <image-registry-name>

    输出示例

    $ oc describe pod image-registry-b6c8f4596-ln88h
    
    Environment:
    
          REGISTRY_STORAGE_S3_REGIONENDPOINT:      http://s3.openshift-storage.svc
    
          REGISTRY_STORAGE:                        s3
    
          REGISTRY_STORAGE_S3_BUCKET:              bucket-registry-mcg
    
          REGISTRY_STORAGE_S3_REGION:              us-east-1
    
          REGISTRY_STORAGE_S3_ENCRYPT:             true
    
          REGISTRY_STORAGE_S3_VIRTUALHOSTEDSTYLE:  false
    
          REGISTRY_STORAGE_S3_USEDUALSTACK:        true
    
          REGISTRY_STORAGE_S3_ACCESSKEY:           <set to the key 'REGISTRY_STORAGE_S3_ACCESSKEY' in secret 'image-registry-private-configuration'> Optional: false
    
          REGISTRY_STORAGE_S3_SECRETKEY:           <set to the key 'REGISTRY_STORAGE_S3_SECRETKEY' in secret 'image-registry-private-configuration'> Optional: false
    
          REGISTRY_HTTP_ADDR:                      :5000
    
          REGISTRY_HTTP_NET:                       tcp
    
          REGISTRY_HTTP_SECRET:                    57b943f691c878e342bac34e657b702bd6ca5488d51f839fecafa918a79a5fc6ed70184cab047601403c1f383e54d458744062dcaaa483816d82408bb56e686f
    
          REGISTRY_LOG_LEVEL:                      info
    
          REGISTRY_OPENSHIFT_QUOTA_ENABLED:        true
    
          REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR:   inmemory
    
          REGISTRY_STORAGE_DELETE_ENABLED:         true
    
          REGISTRY_OPENSHIFT_METRICS_ENABLED:      true
    
          REGISTRY_OPENSHIFT_SERVER_ADDR:          image-registry.openshift-image-registry.svc:5000
    
          REGISTRY_HTTP_TLS_CERTIFICATE:           /etc/secrets/tls.crt
    
          REGISTRY_HTTP_TLS_KEY:                   /etc/secrets/tls.key

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.