IBM Cloud Docs
为 Satellite 集群设置内部映像注册表

为 Satellite 集群设置内部映像注册表

Satellite

缺省情况下,内部注册表不会在 Satellite 集群中运行,因为没有为内部注册表设置支持存储器。 完成以下教程以使用 IBM Cloud Object Storage 作为支持存储器来配置 Satellite 集群中的内部映像注册表。

本教程介绍了如何使用 IBM Cloud Object Storage来设置映像注册表。 但是,您还可以在工作程序节点上使用非持久存储器。 有关更多信息,请参阅 在工作程序节点空目录中存储映像

创建满足需求的 IBM Cloud Object Storage 实例

  1. 在 IBM Cloud 控制台中,浏览到 资源 菜单并列出存储实例。
  2. 识别 Object Storage 实例并找到 位置 列。 如果在 IBM Cloud中创建了实例,那么其位置将列示为 全局
  3. 如果您没有满足需求的全局实例,请执行创建一个全局实例的步骤。
    1. 从 IBM Cloud Object Storage中,单击 创建实例
    2. 选择基础结构下,选择 IBM Cloud 选项。
    3. 选择定价套餐和服务名称。
    4. 选择存储 Satellite 组件的资源组。
    5. 单击创建。 请注意,您的实例可能需要几分钟时间才能完成配置。

创建要用于映像注册表的存储区

创建要在设置映像注册表时使用的存储区。 您的存储区必须配置为具有区域弹性。 有关创建存储区的更多信息,请参阅 设置 IBM Cloud Object Storage

  1. 点击您的 Object Storage 实例。
  2. 单击创建存储区
  3. 选择 定制存储区选项。
  4. 弹性下,选择 区域
  5. 位置 下拉菜单中,选择最接近从中管理位置的区域。 例如,如果您的位置是从 wdc (Washington,DC) 进行管理,请选择 us-east 区域。 要检查 Satellite 位置的管理位置,请在 CLI 中运行 ibmcloud sat location ls
  6. 存储类下,选择 标准
  7. 配置首选项的其余类别。
  8. 单击创建存储区
  9. 创建服务凭证,使集群能够与 Object Storage 实例进行通信。
  10. 在导航窗格中,单击 服务凭证,然后单击 新建凭证
  11. 请为新凭证输入名称。
  12. 从下拉菜单中,选择 写入者 角色。
  13. 单击 高级选项,然后选择 包含 HMAC 凭证选项。
  14. 单击添加
  15. 服务凭证 表中,展开新凭证。 请注意 access_key_idsecret_access_key_id。 请勿与任何人共享这些凭证。 要保存的凭证示例。
    "cos_hmac_keys": {
        "access_key_id": "1111111a1111111a11aa1a111111111a11aa1a111a11a1a1",
        "secret_access_key": "222222b222222b22bb2b22222222b22bb2b222b22b2b2"
    }
    

创建包含 COS 服务凭证的私钥

在 CLI 中,使用您创建并保存的服务凭证创建私钥。

  1. 登录您的账户。 如果适用,请将相应的资源组设定为目标。 设置集群的上下文。
  2. 创建私钥。
    oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=<access_key_id> --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=<secret_access_key> --namespace openshift-image-registry
    

更新 Red Hat OpenShift 注册表操作程序 CRD

  1. 更改 Red Hat OpenShift 注册操作程序的管理状态。
    oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}'
    
  2. 编辑配置存储器属性以将映像存储在 Object Storage 存储区中。
    1. 查找并保存 Satellite 位置的区域链接端点。 在输出中,端点列示在 地址 列下。
      ibmcloud sat endpoint ls --location <location_name> | grep satellite-cosRegional
      
      示例输出
      ID                           Name                                              Destination Type   Address       
      cavvku1p1h1gcfgk1kn1_uwokw   satellite-cosRegional-cavvku1p1h1gcfgk1kn1        cloud              TLS   i11aa11a1a1a11a11-1a11a1aaa1a1a1a1a-c000.us-east.satellite.appdomian.cloud:11111
      
    2. 在 CLI 中打开文件编辑器。
      oc edit configs.imageregistry.operator.openshift.io/cluster
      
    3. 查找要编辑的以下部分。
      storage:
          emptyDir: {}
          managementState: Managed
      storageManaged: true
      
    4. emptyDir: {} 替换为存储区信息和位置端点。
      s3:
        bucket: <bucket_name>
        region: <bucket_region>
        regionEndpoint: <location_link_endpoint>
        virtualHostedStyle: false
      
      添加存储区和位置信息后的示例部分。
        storage:
          managementState: Managed
          s3:
            bucket: my_bucket
            region: us-east
            regionEndpoint: https://i11aa11a1a1a11a11-1a11a1aaa1a1a1a1a-c000.us-east.satellite.appdomian.cloud:11111
            virtualHostedStyle: false
        storageManaged: true
      
    5. 保存并应用更改。

验证更改

通过在 openshift-image-registry 名称空间中检查以 image-registry- 开头的 pod,验证是否配置了映像注册表。

  1. 运行以下命令。

    oc get pod -n openshift-image-registry
    
  2. 查看输出并确认注册表 pod 为 Running

    示例输出

    NAME                                               READY   STATUS      RESTARTS      AGE
    image-registry-63p54b8add-vkjju                    1/1      Running      0              16m