設定您的 IBM Cloud Object Storage 實例
IBM Cloud Object Storage 是可裝載到應用程式的持續性高可用性儲存空間。 外掛程式是 Kubernetes Flex-Volume 外掛程式,可將 Cloud Object Storage 儲存區連接至叢集裡的 Pod。 儲存於 IBM Cloud Object Storage 的資料在傳輸過程中及靜態儲存時均經過加密,分散於多個地理位置,並可透過 HTTP 並使用 REST API 進行存取。
如果您要在沒有公用網路存取權的專用叢集裡使用 IBM Cloud Object Storage,則必須設定 IBM Cloud Object Storage 服務實例來進行 HMAC 鑑別。 如果您不要使用 HMAC 鑑別,則必須在埠 443 上開啟所有出埠網路資料流量,外掛程式才能在專用叢集裡適當地運作。
建立一個 IBM Cloud Object Storage 實例
您必須先在帳戶中佈建 IBM Cloud Object Storage 服務實例,才能在叢集裡開始使用物件儲存空間。
IBM Cloud Object Storage 外掛程式會使用任何 s3 API 端點。 例如,您可能希望使用本地的 Cloud Object Storage 伺服器(例如 Minio ),或是連線至您在其他雲端服務供應商處設定的 s3 API 端點,而非 IBM Cloud Object Storage 服務實例。
請遵循以下步驟來建立 IBM Cloud Object Storage 服務實例。 如果您計劃使用本機的 Cloud Object Storage 伺服器或其他的 s3 API 端點,請參閱該服務供應商的文件,以設定您的 Cloud Object Storage 實例。
- 開啟 IBM Cloud Object Storage 型錄頁面。
- 輸入服務實例的名稱(例如
cos-backup),然後選取您叢集所在的相同資源群組。 若要檢視您叢集的資源群組,請執行ibmcloud ks cluster get --cluster CLUSTER_NAME_OR_ID。 - 請查看各 方案選項以了解價格資訊,並選擇一個方案。
- 按一下建立。 即會開啟「服務詳細資料」頁面。
- 若要繼續設定 Object Storage 以與叢集搭配使用,請參閱 建立服務認證。
建立 IBM Cloud Object Storage 服務憑證
開始之前,請 建立 Object Storage 服務實例。
- 在 Object Storage 實例的服務詳細資料頁面導覽中,按一下 服務認證。
- 按一下新認證。 即會開啟對話框。
- 輸入認證的名稱。
- 從 角色 下拉清單中,針對您希望叢集裡儲存體使用者具有存取權的動作,選取 Object Storage 存取角色。 您必須至少選取 撰寫者 服務存取角色,才能使用
auto-create-bucket動態供應特性。 若您選擇「Reader」,則無法使用該憑證在 IBM Cloud Object Storage 上建立儲存桶並將資料寫入其中。 - (可選):點擊「進階選項」,並將「包含 HMAC 憑證」的開關切換至「開啟」,以建立 IBM Cloud Object Storage 服務的 HMAC 憑證。 HMAC 鑑別透過防止誤用過期或隨機建立的 OAuth2 記號,以在 OAuth2 鑑別中新增額外的安全層。 重要事項:如果您具有沒有公用存取權的僅限專用叢集,則必須使用 HMAC 鑑別,以透過專用網路存取 IBM Cloud Object Storage 服務。
- 按一下新增。 您的新憑證已存放在「服務憑證」資料表中。
- 按一下檢視認證。
- 請注意
apikey請使用 OAuth2 憑證來對 IBM Cloud Object Storage 服務進行驗證。 關於 HMAC 驗證,請參閱cos_hmac_keys區段中,請注意access_key_id以及secret_access_key。 - 將服務認證儲存至叢集的 Kubernetes 密碼,以存取 IBM Cloud Object Storage 服務實例。
建立物件儲存空間服務認證的密碼
若要存取 IBM Cloud Object Storage 服務實例以讀取及寫入資料,您必須將服務認證安全地儲存至 Kubernetes 密碼。 IBM Cloud Object Storage 外掛程式使用這些認證進行儲存區的每次讀取或寫入作業。
請遵循下列步驟,為 IBM Cloud Object Storage 服務實例的認證建立 Kubernetes 密碼。 如果您計劃使用本端 Cloud Object Storage 伺服器或不同的 s3 API 端點,請使用適當的認證來建立 Kubernetes 密碼。
必要條件
- 確保您具有叢集的 管理員 服務存取角色。
- 設定 KMS 提供者。
- 檢索
apikey,或是access_key_id以及secret_access_keyIBM Cloud Object Storage 服務憑證 的相關資訊。 請注意,服務認證必須足以滿足應用程式需要執行的儲存區作業。 例如,如果您的應用程式從儲存區讀取資料,則您在密鑰中看到的服務認證必須至少具有 讀者 許可權。
在叢集裡建立物件儲存空間密碼
完成下列步驟,以在叢集裡為 IBM Cloud Object Storage建立密鑰。
如果您想要在從叢集裡的 PVC 建立新儲存區時整合 Key Protect 加密,則必須在建立 IBM Cloud Object Storage 密鑰 時包括根金鑰 CRN。 請注意,Key Protect 加密無法新增至現有儲存區。 只有在您建立新的儲存區時,才能使用加密。 如果刪除用於加密的根金鑰,則無法存取相關聯儲存區中的所有檔案。
-
取得 IBM Cloud Object Storage 服務實例的 GUID。
ibmcloud resource service-instance <service_name> | grep GUID -
建立用來儲存服務認證的 Kubernetes 密碼。 請從下列其中一個範例中選擇,以建立您的密鑰。
- 使用 API 金鑰的
create secret指令範例。
kubectl create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=api-key=<api_key> --from-literal=service-instance-id=<service_instance_guid> ``` * 使用 HMAC 鑑別的 `create secret` 指令範例。 ```sh {: pre} kubectl create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=access-key=<access_key_ID> --from-literal=secret-key=<secret_access_key> ``` * 使用 KMS 提供者啟用加密的密鑰配置檔範例。 1. 將下列 YAML 儲存至檔案。 ```yaml {: codeblock} apiVersion: v1 data: access-key: xxx secret-key: xxx kp-root-key-crn: <CRN> # Key Protect or HPCS root key crn in base64 encoded format kind: Secret metadata: name: cos-write-access type: ibm/ibmc-s3fs ``` `api-key` : 輸入您稍早從 IBM Cloud Object Storage 服務認證中擷取的 API 金鑰。 若要使用 HMAC 驗證,請改為指定 ` `access-key` ` 和 ` `secret-key` `。 `access-key` : 輸入您稍早從 IBM Cloud Object Storage 服務認證中擷取的存取金鑰 ID。 若要使用「OAuth2」驗證,請改為指定 `api-key`。 `secret-key` : 輸入您稍早從 IBM Cloud Object Storage 服務認證中擷取的秘密存取金鑰。 若要使用「OAuth2」驗證,請改為指定 `api-key`。 `service-instance-id` : 輸入您稍早擷取的 IBM Cloud Object Storage 服務實例 GUID。 `kp-root-key-crn` : 輸入 base64 編碼 Key Protect 根金鑰 CRN,以使用 Key Protect 加密。 1. 將此秘訣應用於您的叢集。 ```sh {: pre} kubectl apply -f <secret_name> ``` - 使用 API 金鑰的
-
取得叢集裡的密碼並驗證輸出。
kubectl get secret輸出範例
NAME TYPE DATA AGE cos-write-access ibm/ibmc-s3fs 2 7d19h default-au-icr-io kubernetes.io/dockerconfigjson 1 55d default-de-icr-io kubernetes.io/dockerconfigjson 1 55d ... -
安裝 IBM Cloud Object Storage 外掛程式,或者如果您已安裝外掛程式,請 決定 IBM Cloud Object Storage 儲存區的配置。
-
選用: 將密碼新增至預設儲存空間類別。 儲存空間類別參照
為 COS 儲存分配受信任的設定檔
您可以使用受信任的設定檔來授權不同的 IBM Cloud 身分存取您帳戶中的資源,包括您的儲存解決方案。 可信賴的設定檔可集中存取控制、消除對長期使用的 API 金鑰的需求,並允許您將權限的範圍精確到特定任務所需的最小值。 如需詳細資訊,請參閱 設定儲存元件的可信設定檔。
限制
- IBM Cloud Object Storage 基於
s3fs-fuse檔案系統。 您可以檢閱s3fs-fuse儲存庫中的限制清單。 - 若要以非 root 使用者身分存取 IBM Cloud Object Storage 中的檔案,您必須將部署中的
runAsUser和fsGroup值設為相同的值。