設定 Satellite 叢集的內部映像檔登錄

Satellite

依預設,內部登錄不會在 Satellite 叢集中執行,因為未針對內部登錄設定後端儲存體。 完成下列指導教學,以將 Satellite 叢集中的內部映像檔登錄配置為後端儲存體 IBM Cloud Object Storage。

本指導教學涵蓋使用 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 (華盛頓特區) 進行管理,請選擇 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 Register 運算子的管理狀態。
    oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}'
    
  2. 編輯配置儲存體屬性,以將映像檔儲存在 Object Storage 儲存區中。
    1. 尋找並儲存 Satellite 位置的地區鏈結端點。 在輸出中,端點會列在 Address 直欄下。
      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