為 Satellite 叢集設定 IBM Cloud Object Storage 驅動程式

瞭解如何將 IBM Cloud Object Storage 驅動程式部署至您的 Satellite 叢集,以便在多個 S3-compatible 雲端儲存供應商(包括 IBM、AWS、Wasabi 及 Azure )之間建立及存取資料。

在您可以將儲存範本部署到您所在位置的群集之前,請確定您已設定 Satellite Config,方法是在主控台中選擇 Enable cluster admin access for Satellite Config 選項,或在建立群集時包含 --enable-config-admin 選項。

您無法將 Satellite 儲存服務的範圍設定為資源群組。 但是,如果您要將位置和群集等其他資源範圍化為資源群組,則需要為帳戶中的所有資源新增 Satellite 讀取器和連結管理員角色。

必要條件

  1. 建立 Satellite 位置

  2. 在物件儲存體提供者中建立一組服務認證。

  3. 建立包含 s3 認證 的密鑰。

在叢集裡建立包含物件儲存體認證的密鑰

在包含服務認證的叢集裡建立 Kubernetes 密碼。

  1. 請根據您的物件儲存體提供者來遵循步驟,以在叢集裡建立密碼。 當您建立密碼時,所有值都會自動編碼為 base64。 在以下範例中,密鑰名稱是 cos-write-access

    • IBM Cloud Object Storage

      1. 找出您的服務執行個體 ID。

        ibmcloud resource service-instance <service_name> | grep GUID
        
      2. 在叢集裡建立密碼。

        oc create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=api-key=API-KEY --from-literal=service-instance-id=SERVICE-INSTANCE-ID
        
    • AWS 或 Wasabi

        oc create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=access-key=ACCESS-KEY-ID --from-literal=secret-key=SECRET-ACCESS-KEY
        ```
    
    
    
    
    

在主控台中建立及指派配置

  1. 檢閱 參數參照

  2. 從「位置」主控台,選取您要建立儲存體配置的位置。

  3. 選取 儲存體 > 建立儲存體配置

  4. 請輸入此設定的名稱。

  5. 請選擇儲存類型

  6. 選擇版本,然後按一下「下一步

  7. 如果您選取的 儲存體類型 接受自訂參數,請在 參數 標籤上輸入它們。

  8. 如果您選取的 儲存體類型 需要密鑰,請在 密鑰 標籤上輸入它們。

  9. 儲存類別 標籤上,檢閱配置所部署的儲存類別或建立自訂儲存類別。

  10. 指派給服務 標籤上,選取您要指派配置的服務。

  11. 按一下 完成 以指派儲存體配置。

在 CLI 中建立配置

  1. 檢閱您要使用之範本版本的 參數參照

  2. 登入 IBM Cloud CLI。

    ibmcloud login
    
  3. 列出 Satellite 位置,並記下 Managed from 直欄。

    ibmcloud sat location ls
    
  4. 將 Satellite 位置的 Managed from 區域設為目標。 例如,針對 wdc target us-east。 如需相關資訊,請參閱 Satellite 地區

    ibmcloud target -r us-east
    
  5. 如果您使用 default 以外的資源群組,請將它設為目標。

    ibmcloud target -g RESOURCE_GROUP
    
  6. 針對您要使用的範本版本,複製下列其中一個範例指令。 如需指令的相關資訊,請參閱 指令參考手冊 中的 ibmcloud sat storage config create

    建立 2.2 版配置的指令範例。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name ibm-object-storage-plugin --template-version 2.2 --param "helm-release-name=HELM-RELEASE-NAME"  --param "parameters=PARAMETERS"  --param "license=LICENSE"  --param "s3provider=S3PROVIDER"  --param "cos-storageclass=COS-STORAGECLASS"  --param "cos-endpoint=COS-ENDPOINT"
    
  7. 根據您要使用的設定來自訂指令。

  8. 執行此指令以建立配置。

  9. 請驗證已建立您的配置。

    ibmcloud sat storage config get --config CONFIG
    

在 API 中建立配置

  1. 產生 API 金鑰,然後要求重新整理記號。 如需更多資訊,請參閱 《 使用 API 金鑰產生 IBM Cloud IAM 憑證 》。

  2. 檢閱您要使用之範本版本的 參數參照

  3. 複製下列其中一個範例要求,並取代您要使用的變數。

    建立 2.2 版配置的要求範例。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"ibm-object-storage-plugin\", \"storage-template-version\": \"2.2\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"HELM-RELEASE-NAME\", { \"entry.name\": \"PARAMETERS\", { \"entry.name\": \"LICENSE\", { \"entry.name\": \"S3PROVIDER\", { \"entry.name\": \"COS-STORAGECLASS\", { \"entry.name\": \"COS-ENDPOINT\",\"user-secret-parameters\": }
    

在命令列介面 (CLI) 中建立作業

  1. 列出儲存空間配置,並記下您要指派給叢集的儲存空間配置。

    ibmcloud sat storage config ls
    
  2. 取得您要指派儲存體之叢集、叢集群組或服務的 ID。

    若要確認您的叢集已向 Satellite Config 註冊,或要建立群組,請參閱 《 設定叢集以配合 Satellite Config 使用 》。

    列出叢集群組的指令範例。

    ibmcloud sat group ls
    

    列出叢集的指令範例。

    ibmcloud oc cluster ls --provider satellite
    

    列出 Satellite 服務的指令範例。

    ibmcloud sat service ls --location LOCATION
    
  3. 將儲存空間配置指派給您先前擷取的叢集、群組或服務。 如需相關資訊,請參閱 ibmcloud sat storage assignment create 指令

    將配置指派給叢集群組的指令範例。

    ibmcloud sat storage assignment create --group GROUP --config CONFIG --name NAME
    

    將配置指派給叢集的範例指令。

    ibmcloud sat storage assignment create --cluster CLUSTER --config CONFIG --name NAME
    

    將配置指派給服務叢集的範例指令。

    ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME
    
  4. 請確認您的作業已建立。

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    

在應用程式介面 (API) 中建立儲存空間指派

  1. 複製下列其中一個範例要求。

    配置指派給叢集的要求範例。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignmentByCluster" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"CLUSTER-ID\", \"controller\": \"LOCATION-ID\", \"name\": \"ASSIGNMENT-NAME\"}"
    

    將配置指派給叢集群組的要求範例。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"string\", \"groups\": [ \"CLUSTER-GROUP\" ], \"name\": \"ASSIGNMENT-NAME\"}"
    
  2. 請將變數取代為您的詳細資料,然後執行要求。

  3. 請列出您的指派,以驗證已建立指派。

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignments" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

在主控台中更新儲存體指派

您可以使用 Satellite 主控台,將最新修補程式更新項目套用至您的指派。

  1. Satellite 主控台中的 位置 頁面,選取您的位置。

  2. 按一下 儲存體 標籤,以檢視您的配置。

  3. 請點選您要更新的設定。

  4. 按一下資訊 資訊 (i) 圖示,以套用最新修訂或修補程式。

  5. 選用: 啟用儲存體指派的自動修補程式更新。 啟用自動修補程式更新可確保您的指派一律具有最新的安全修正程式。

如果您啟用自動修補程式更新,仍然必須手動套用主要更新項目。

在 CLI 中手動升級指派

升級指派以使用最新儲存體範本修訂。

  1. 列出您的 Satellite 儲存體指派,記下您要升級的 Satellite 指派。

    ibmcloud sat storage assignment ls
    
  2. 列出 Satellite 儲存體範本,以查看最新可用的版本。

    ibmcloud sat storage template ls
    
  3. 升級 Satellite 指派。

    升級指派的指令範例。

    ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
    

在 CLI 中啟用配置及指派的自動修補程式更新

您可以使用 sat storage assignment autopatch enable CLI 來啟用指派的自動修補程式更新。 啟用自動修補程式更新會自動套用最新的儲存體範本修訂 (修補程式)。 您仍必須手動套用主要更新項目。

  1. 列出您的 Satellite 儲存體配置。 請記下該設定的 ID。

    ibmcloud sat storage assignment ls
    
  2. 執行下列其中一個範例指令,以啟用配置及其相關聯指派的自動修補程式更新。 請輸入您在上一步驟中取得的那個配置 ID。

    針對指派啟用自動修補程式更新的範例指令。

    ibmcloud sat storage assignment autopatch enable --config CONFIG  (--all | --assignment ASSIGNMENT-ID [--assignment ASSIGNMENT-ID])
    

    針對給定配置下的所有儲存體指派啟用自動修補程式更新的範例指令。

    ibmcloud sat storage assignment autopatch enable --config CONFIG --all
    

    針對特定配置下的所有指派停用自動修補程式更新的範例指令。

    ibmcloud sat storage assignment autopatch disable --config CONFIG --all
    

    針對單一指派及特定配置停用自動修補程式更新的範例指令。

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID
    

    針對多個指派及特定配置停用自動修補程式更新的範例指令。

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID --assignment ASSIGNMENT-ID
    

在 API 中升級配置和指派

您可以使用 /v2/storage/satellite/updateAssignment API,以新的叢集或叢集群組來更新您的指派。 將 updateConfigVersion 設為 true,以套用修訂更新。

  1. 複製下列範例要求,並取代您要更新之叢集群組及指派的變數。

    curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/updateAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"groups\": [ \"CLUSTER-GROUPS\" ], \"name\": \"ASSIGNMENT-NAME\", \"updateConfigVersion\": true, \"uuid\": \"ASSIGNMENT-ID\"}"
    
  2. 執行要求。

  3. 取得您指派的詳細資料,以驗證更新。

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

在 API 中針對指派啟用自動修補程式更新

您可以使用 /v2/storage/satellite/setAssignmentAutoupgrade API 來啟用指派的自動修補程式更新。 啟用自動修補程式更新會自動套用最新的儲存體範本修訂 (修補程式)。 您仍必須手動套用主要更新項目。

  1. 複製下列範例要求,並取代您要更新之叢集群組及指派的變數。

    curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/setAssignmentAutoupgrade" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d { "config": "string", "controller": "string", "autopatch": boolean,"assignment" : { "all": boolean, "uuid": ["string", "string", ...], } }
    
  2. 執行要求。

  3. 取得您指派的詳細資料,以驗證升級。

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

部署使用 IBM Cloud Object Storage 的應用程式

您可以使用 ibm-object-s3fs 驅動程式來建立可在叢集工作負載中使用的 PVC。

  1. 建立參照物件儲存空間配置的 PVC。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: demo #Enter a name for your PVC.
      namespace: default
      annotations:
      ibm.io/auto-create-bucket: "false"
      ibm.io/auto-delete-bucket: "false"
      ibm.io/bucket: BUCKET-NAME #Enter the name of your object storage bucket.
      ibm.io/secret-name: SECRET-NAME #Enter the name of the secret you created earlier.
      ibm.io/secret-namespace: NAMESPACE #Enter the namespace where you want to create the PVC.
    spec:
        accessModes:
        - ReadWriteOnce
        resources:
            requests:
                storage: 10Gi
        storageClassName: ibmc-s3fs-cos #The storage class that you want to use.
    
  2. 在叢集裡建立 PVC。

    oc apply -f pvc-cos.yaml
    
  3. 為裝載您所建立 PVC 的 Pod 建立 YAML 配置檔。

    apiVersion: v1
    kind: Pod
    metadata:
      name: demo-pod
      namespace: default
    spec:
      securityContext:
        runAsUser: 2000
        fsGroup: 2000
      volumes:
      - name: demo-vol
        persistentVolumeClaim:
            claimName: demo
      containers:
      - name: test
        image: nginxinc/nginx-unprivileged
        imagePullPolicy: Always
        volumeMounts:
        - name: demo-vol
          mountPath: /mnt/cosvol
    
  4. 在您的叢集中建立該 Pod。

    oc apply -f demo-pod.yaml
    
  5. 請確認該 Pod 已部署。 請注意,您的應用程式可能需要幾分鐘時間才會進入「Running」狀態。

    oc get pods
    
    NAME                                READY   STATUS    RESTARTS   AGE
    demo-pod                            1/1     Running   0          2m58s
    
  6. 登入 Pod,以驗證應用程式可以寫入您的區塊儲存空間磁區。

    oc exec demo-pod -- bash -c "touch /mnt/cosvol/test.txt && ls /mnt/cosvol" test.txt
    

使用主控台移除 IBM Cloud Object Storage 儲存體配置

  1. 從 Satellite 儲存體儀表板中,選取您要刪除的儲存體配置。
  2. 選取 動作 > 刪除
  3. 輸入儲存體配置的名稱。
  4. 選取刪除

使用指令行移除 IBM Cloud Object Storage 儲存體配置

如果您不再需要您的 IBM Cloud Object Storage 設定,您可以從群集移除您的應用程式、PVC、PV 和指派。

  1. 列出您的儲存體指派,並尋找您用於叢集的儲存體指派。

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    
  2. 移除指派。 移除指派之後,會從屬於儲存體指派一部分的所有叢集中移除驅動程式 Pod 及儲存體類別。

    ibmcloud sat storage assignment rm --assignment <assignment_ID>
    
  3. 驗證已從叢集中移除驅動程式。

    1. 叢集裡的儲存空間類別清單,並驗證已移除儲存空間類別。
        oc get sc
        ```
    1. 列出 `kube-system` 名稱空間中的 Pod,並驗證已移除儲存體驅動程式 Pod。
    
    ```sh {: pre}
        oc get pods -n kube-system | grep cos
        ```
    
  4. 選用項目: 移除儲存體配置。

    1. 列出儲存體配置。
        ibmcloud sat storage config ls
        ```
    1. 移除儲存體配置。
    
    ```sh {: pre}
        ibmcloud sat storage config rm --config <config_name>
        ```
    
    

Parameter Reference

2.2 參數參照

2.2 參考參數
顯示名稱 CLI 選項 類型 說明 預設值
版本名稱 helm-release-name 配置 Helm Chart 版本名稱。 ibm-object-storage-plugin
Helm Chart 其他參數 parameters 配置 Helm Chart 其他參數。 不適用
Object Storage 外掛程式授權 license 配置 Object Storage 外掛程式授權:Apache 授權 2.0版。 設為 'true' 以接受授權並安裝外掛程式。 不適用
Object Storage 提供者 s3provider 配置 可用的提供者有 'IBM'、'AWS' 和 'Wasabi'。 對於這些以外的提供者,您必須提供 'Object Storage service endpoint' 參數。 不適用
Object Storage 區域 cos-storageclass 配置 輸入物件儲存體所在的區域。 若為 IBM COS 區域,請參閱 https://ibm.biz/cos-endpoints-list。 若為 Wasabi,請參閱 https://ibm.biz/wasabi-endpoints。 若為 AWS,請參閱 https://ibm.biz/aws-endpoints。 不適用
Object Storage 服務端點 cos-endpoint 配置 Object Storage 服務端點。 使用 IBM、AWS 或 Wasabi 以外的 Object Storage 提供者時需要。 如果同時設定兩者,則會提供 'Object Storage provider' 和 'Object Storage Provider' 的喜好設定。 不適用

IBM Cloud Object Storage 的儲存類別參照

雲端物件儲存類別參考
儲存類別名稱 磁區連結模式 保留
ibm-s3fs-cos 立即
ibm-s3fs-cos-perf 立即

取得 IBM Cloud Object Storage 的協助及支援

當您使用 IBM Cloud Object Storage 時,請在開啟支援個案之前嘗試下列資源。

  1. 檢閱 Block Storage for VPC 文件 中的常見問題。
  2. 請檢閱 疑難排解文件,以進行疑難排解並解決一般問題。
  3. 移至 狀態頁面,以檢查 IBM Cloud 平台及資源的狀態。
  4. 檢閱 Stack Overflow,以查看其他使用者是否遇到相同的問題。 使用 ibm-cloudCOS 來標記任何問題。
  5. 如果您遇到 Block Storage for VPC問題,請向 IBM Cloud® 支援提交支援要求。