設定 Satellite 叢集的內部映像檔登錄
Satellite
依預設,內部登錄不會在 Satellite 叢集中執行,因為未針對內部登錄設定後端儲存體。 完成下列指導教學,以將 Satellite 叢集中的內部映像檔登錄配置為後端儲存體 IBM Cloud Object Storage。
本指導教學涵蓋使用 IBM Cloud Object Storage來設定映像檔登錄。 不過,您也可以在工作者節點上使用非持續性儲存空間。 如需相關資訊,請參閱 將映像檔儲存在工作者節點空目錄中。
建立符合需求的 IBM Cloud Object Storage 實例
- 在 IBM Cloud 主控台中,導覽至 資源 功能表並列出儲存空間實例。
- 識別 Object Storage 實例並尋找 位置 直欄。 如果已在 IBM Cloud中建立實例,則其位置會列為 廣域。
- 如果您沒有符合需求的「廣域」實例,請遵循步驟來建立一個。
- 從 IBM Cloud Object Storage中,按一下 建立實例。
- 在 選擇基礎架構下,選取 IBM Cloud 選項。
- 選取定價方案和服務名稱。
- 選擇儲存 Satellite 元件的資源群組。
- 按一下建立。 請注意,您的實例可能需要幾分鐘才能佈建好。
建立要用於映像檔登錄的儲存區
建立要在設定映像檔登錄時使用的儲存區。 您的儲存區必須配置區域備援。 如需建立儲存區的相關資訊,請參閱 設定 IBM Cloud Object Storage。
- 按一下您的 Object Storage 實例。
- 按一下建立儲存區。
- 選取 自訂儲存區的選項。
- 在 備援下,選取 地區。
- 從 位置 下拉功能表中,選擇最接近位置管理來源的區域。 例如,如果您的位置是從
wdc(華盛頓特區) 進行管理,請選擇us-east區域。 若要檢查管理 Satellite 位置的來源位置,請在 CLI 中執行ibmcloud sat location ls。 - 在 儲存類別下,選取 標準。
- 配置喜好設定的其餘種類。
- 按一下建立儲存區。
- 建立服務認證,讓叢集能夠與 Object Storage 實例進行通訊。
- 在導覽窗格中,按一下 服務認證,然後按一下 新建認證。
- 為新認證輸入名稱。
- 從下拉功能表中,選擇 撰寫者 角色。
- 按一下 進階選項,然後選取 包括 HMAC 認證的選項。
- 按一下新增。
- 在 服務認證 表格中,展開新的認證。 請注意
access_key_id和secret_access_key_id。 請勿與任何人共用這些認證。 要儲存的認證範例。"cos_hmac_keys": { "access_key_id": "1111111a1111111a11aa1a111111111a11aa1a111a11a1a1", "secret_access_key": "222222b222222b22bb2b22222222b22bb2b222b22b2b2" }
建立包含 COS 服務認證的密鑰
在 CLI 中,使用您建立並儲存的服務認證來建立密鑰。
- 登入您的帳戶。 適用的話,請將適當的資源群組設為目標。 設定叢集的環境定義。
- 建立該密鑰。
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
- 變更 Red Hat OpenShift Register 運算子的管理狀態。
oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}' - 編輯配置儲存體屬性,以將映像檔儲存在 Object Storage 儲存區中。
- 尋找並儲存 Satellite 位置的地區鏈結端點。 在輸出中,端點會列在 Address 直欄下。
輸出範例ibmcloud sat endpoint ls --location <location_name> | grep satellite-cosRegionalID Name Destination Type Address cavvku1p1h1gcfgk1kn1_uwokw satellite-cosRegional-cavvku1p1h1gcfgk1kn1 cloud TLS i11aa11a1a1a11a11-1a11a1aaa1a1a1a1a-c000.us-east.satellite.appdomian.cloud:11111 - 在 CLI 中開啟檔案編輯器。
oc edit configs.imageregistry.operator.openshift.io/cluster - 尋找要編輯的下列區段。
storage: emptyDir: {} managementState: Managed storageManaged: true - 將
emptyDir: {}取代為您的儲存區資訊及位置端點。新增儲存區及位置資訊之後的範例區段。s3: bucket: <bucket_name> region: <bucket_region> regionEndpoint: <location_link_endpoint> virtualHostedStyle: falsestorage: managementState: Managed s3: bucket: my_bucket region: us-east regionEndpoint: https://i11aa11a1a1a11a11-1a11a1aaa1a1a1a1a-c000.us-east.satellite.appdomian.cloud:11111 virtualHostedStyle: false storageManaged: true - 儲存並套用變更。
- 尋找並儲存 Satellite 位置的地區鏈結端點。 在輸出中,端點會列在 Address 直欄下。
驗證您的變更
檢查 openshift-image-registry 名稱空間中是否有以 image-registry- 開頭的 Pod,以驗證是否已配置映像檔登錄。
-
執行下列指令。
oc get pod -n openshift-image-registry -
檢閱輸出,並確認登錄 Pod 是
Running。輸出範例
NAME READY STATUS RESTARTS AGE image-registry-63p54b8add-vkjju 1/1 Running 0 16m