IBM Cloud Docs
IBM Cloud Object Storage プラグインのインストール

IBM Cloud Object Storage プラグインのインストール

仮想プライベート・クラウド クラシック・インフラストラクチャー

IBM Cloud Object Storageプラグインをインストールして、IBM Cloud Object Storageに定義済みのストレージクラスを設定します。 これらのストレージ・クラスを使用すると、アプリ用に IBM Cloud Object Storage をプロビジョンするための PVC を作成できます。

Helm 経由でのプラグインのインストール

前提条件
IBM Cloud Object Storage プラグインには、少なくとも 0.2 vCPU と 128 MB のメモリーが必要です。

始める前に: アカウントにログインします。 該当する場合は、適切なリソース・グループをターゲットにします。 クラスターのコンテキストを設定します。

ibmc Helm プラグインと ibm-object-storage-plugin をインストールする:

  1. ワーカー・ノードを最新のセキュリティー設定で実行するために、ワーカー・ノードに、使用しているマイナー・バージョンに対する最新パッチが適用されていることを確認します。 パッチのバージョンから、ワーカー・ノードの root のパスワードが更新されたかどうかも確認できます。

    過去 90 日以内に更新の適用もワーカー・ノードの再ロードも行っていない場合は、ワーカー・ノードの root のパスワードの有効期限が切れているので、ストレージ・プラグインのインストールが失敗する可能性があります。

    1. ワーカー・ノードの現在のパッチ・バージョンをリストします。

      ibmcloud ks worker ls --cluster <cluster_name_or_ID>
      

      出力例

      OK
      ID                                                  Public IP        Private IP     Machine Type           State    Status   Zone    Version
      kube-dal10-crb1a23b456789ac1b20b2nc1e12b345ab-w26   169.xx.xxx.xxx    10.xxx.xx.xxx   b3c.4x16.encrypted     normal   Ready    dal10   1.32_1523*
      

      ワーカー・ノードで、最新のパッチ・バージョンが適用されていない場合は、CLI 出力の *Version** 列にアスタリスク (**) が表示されます。

    2. Kubernetes のバージョン情報 を参照して、最新の変更を確認してください。

    3. ワーカー・ノードを再ロードして、最新のパッチ・バージョンを適用します。 ワーカーノードをリロードする前に、ibmcloud ks worker reload コマンドの 指示に従って、ワーカーノード上で実行中のポッドを安全に再スケジュールしてください。 再ロード中に、ワーカー・ノード・マシンが最新のイメージで更新されるので、 ワーカー・ノードの外部に保管していないデータは削除されることに注意してください。

  2. 変更ログを調べて、クラスターのバージョンとアーキテクチャーのサポートを確認してください。

  3. こちらの手順に従って、バージョン 3 の Helm クライアントをローカル・マシンにインストールします。

    IBM Cloud アカウントで VRFサービス・エンドポイントを 有効にしている場合、プライベート IBM Cloud Helm リポジトリーを使用して、イメージ・プル・トラフィックをプライベート・ネットワーク上に維持できます。 アカウントで VRF またはサービス・エンドポイントを有効にできない場合は、パブリック Helm リポジトリーを使用します。

  4. IBM Cloud Helm リポジトリーをクラスターに追加します。

    helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
    
  5. Helm リポジトリーを更新して、このリポジトリー内のすべての Helm チャートの最新バージョンを取得します。

    helm repo update
    
  6. 以前に IBM Cloud Object Storage Helm プラグインをインストールした場合は、ibmc プラグインを削除します。

    helm plugin uninstall ibmc
    
  7. Helm チャートをダウンロードして、現行ディレクトリーにチャートをアンパックします。

    helm fetch --untar ibm-helm/ibm-object-storage-plugin
    

    出力に「Error: failed to untar: a file or directory with the name ibm-object-storage-plugin already exists」と表示された場合は、ibm-object-storage-plugin ディレクトリーを削除して、helm fetch コマンドを再実行してください。

  8. 初めてプラグインをインストールする場合は、 IBM Cloud Object Storage Helm プラグイン ibmc をインストールしてください。 プラグインは、クラスター・ロケーションを自動的に取得し、ストレージ・クラス内の IBM Cloud Object Storage バケットの API エンドポイントを設定します。 Windowsをオペレーティングシステムとして使用している場合は、この手順をスキップしてください。

    ibmc プラグインは Windows ではサポートされていません。

    1. Helm プラグインをインストールします。

      helm plugin install ./ibm-object-storage-plugin/helm-ibmc
      
    2. ibmc プラグインが正常にインストールされていることを確認します。

      helm ibmc --help
      

      出力例

      Helm version: v3.13.1+g3547a4b
      Install or upgrade Helm charts in IBM K8S Service(IKS)
      Usage:
      helm ibmc [command]
      Available Commands:
      install           Install a Helm chart
      upgrade           Upgrade the release to a new version of the Helm chart
      Available Flags:
      -h, --help        (Optional) This text.
      -u, --update      (Optional) Update this plugin to the latest version
      Example Usage:
          Install: helm ibmc install ibm-object-storage-plugin ibm-helm/ibm-object-storage-plugin
          Upgrade: helm ibmc upgrade [RELEASE] ibm-helm/ibm-object-storage-plugin
      Note:
          1. It is always recommended to install latest version of ibm-object-storage-plugin chart.
          2. It is always recommended to have 'kubectl' client up-to-date.
      
    3. オプション :出力にエラー Error: fork/exec /home/iksadmin/.helm/plugins/helm-ibmc/ibmc.sh: permission denied が表示された場合は、以下のコマンドを実行する。

      chmod 755 /Users/<user_name>/Library/helm/plugins/helm-ibmc/ibmc.sh
      

      その後、 ibmc --help コマンドを再試行してください。

      helm ibmc --help
      
  9. オプション : IBM Cloud Object Storage サービスの認証情報を保持する Kubernetes シークレットのみにアクセスできるように IBM Cloud Object Storage プラグインを制限する。 デフォルトでは、プラグインはクラスター内のすべての Kubernetes シークレットにアクセスできます。

    1. IBM Cloud Object Storage サービス・インスタンスを作成します

    2. Kubernetes シークレットへの IBM Cloud Object Storage サービス資格情報を保管します)。

    3. ディレクトリーを ibm-object-storage-plugin ディレクトリーに変更します。

      cd ibm-object-storage-plugin
      
    4. ibm-object-storage-plugin から、templates ディレクトリーにナビゲートし、使用可能なファイルをリストします。 OS X および Linux

      cd templates && ls
      

      Windows

      chdir templates && dir
      
    5. provisioner-sa.yaml ファイルを開き、ibmcloud-object-storage-secret-reader ClusterRole 定義を探します。

    6. resourceNames セクションで、以前に作成したシークレットの名前を、プラグインがアクセスを許可されたシークレットのリストに追加します。

      kind: ClusterRole
      apiVersion: rbac.authorization.k8s.io/v1beta1
      metadata:
       name: ibmcloud-object-storage-secret-reader
      rules:
      - apiGroups: [""]
        resources: ["secrets"]
        resourceNames: ["<secret_name1>","<secret_name2>"]
        verbs: ["get"]
      
    7. 変更を保存し、作業ディレクトリーに移動します。

  10. ibm-object-storage-plugin をクラスターにインストールします。 このプラグインをインストールすると、事前定義されたストレージ・クラスがクラスターに追加されます。 IBM Cloud Object Storage のサービス資格情報が入った Kubernetes シークレットにだけアクセスできるように IBM Cloud Object Storage プラグインを制限するための前の手順を実行し、まだ templates ディレクトリーをターゲットにしている場合は、ディレクトリーを作業ディレクトリーに変更してください。 Bucket で利用可能なストレージ容量に制限を設けるには、 --set quotaLimit=true VPC クラスタのみに設定します:VPC で認可 IP を有効にするには、 --set bucketAccessPolicy=true オプションを設定します。

インストール時に --set quotaLimit=true オプションを設定しないと、PVC の割り当て量を設定できません。

Windows 以外のオペレーティング・システム用の helm ibmc install コマンド例。

helm ibmc install ibm-object-storage-plugin ibm-helm/ibm-object-storage-plugin --set license=true [--set quotaLimit=true/false] [--set bucketAccessPolicy=true/false] [--set allowCrossNsSecret=true/false]

helm install コマンドの Windows の場合の例。

helm install ibm-object-storage-plugin ./ibm-object-storage-plugin --set dcname="${DC_NAME}" --set provider="${CLUSTER_PROVIDER}" --set workerOS="${WORKER_OS}" --set region="${REGION} --set platform="${PLATFORM}" --set license=true [--set bucketAccessPolicy=false]
quotaLimit
割り当て量制限は、バケットに使用可能なストレージの最大量 (バイト単位) を設定します。 このオプションを true に設定した場合、PVC の作成時に、それらの PVC によって作成されるバケットの割り当て量は PVC サイズと等しくなります。 デフォルト値はtrueです。
allowCrossNsSecret
デフォルトでは、プラグインは PVC 名前空間以外の名前空間で Kubernetes シークレットを検索します。 このオプションを false に設定すると、プラグインは PVC 名前空間でのみ Kubernetes シークレットを検索します。 デフォルト値はtrueです。
kubeDriver
/usr/libexec/kubernetes に設定します。
DC_NAME
クラスター・データ・センター。 データ・センターを取得するには、kubectl get cm cluster-info -n kube-system -o jsonpath="{.data.cluster-config\.json}{'\n'}" を実行します。 SET DC_NAME=<datacenter> を実行して、データ・センターの値を環境変数に保管します。 オプション: $env:DC_NAME="<datacenter>"を実行して、Windows PowerShell で環境変数を設定します。
CLUSTER_PROVIDER
インフラストラクチャー・プロバイダー。 この値を取得するには、kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/iaas-provider}{'\n'}" を実行します。 前のステップからの出力に softlayer が含まれている場合は、CLUSTER_PROVIDER"IBMC" に設定します。 出力に gcng、または g2 が含まれている場合は、CLUSTER_PROVIDER"IBMC-VPC" に設定します。 環境変数にインフラストラクチャー・プロバイダーを保管します。 例えば、SET CLUSTER_PROVIDER="IBMC-VPC" などです。
WORKER_OS および PLATFORM
ワーカー・ノードのオペレーティング・システム。 これらの値を取得するには、kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/os}{'\n'}" を実行します。 ワーカー・ノードのオペレーティング・システムを環境変数に格納します。 IBM Cloud Kubernetes Service クラスターの場合は、SET WORKER_OS="debian" および SET PLATFORM="k8s" を実行します。
REGION
ワーカー・ノードのリージョン。 この値を取得するには、kubectl get nodes -o yaml | grep 'ibm-cloud\.kubernetes\.io/region' を実行します。 SET REGION="< region>" を実行して、ワーカー・ノードのリージョンを環境変数に保管します。.

IBM Cloud Object Storage プラグインの更新

既存の IBM Cloud Object Storage プラグインを最新バージョンにアップグレードできます。

  1. IBM Cloud Object Storage プラグイン Helm リリースの名前と、クラスター内のプラグインのバージョンを取得します。

    helm ls -A | grep object
    

    出力例

    NAME              NAMESPACE      REVISION    UPDATED                                   STATUS      CHART                                  APP VERSION               
    <release_name>  <namespace>     1           2020-02-13 16:05:58.599679 -0500 EST    deployed    ibm-object-storage-plugin-1.1.2        1.1.2
    
  2. IBM Cloud Helm リポジトリーを更新して、このリポジトリー内のすべての Helm チャートの最新バージョンを取得します。

    helm repo update
    
  3. IBM Cloud Object Storage ibmc Helm プラグインを最新バージョンに更新します。

    helm ibmc --update
    
  4. ご使用のオペレーティング・システムの最新バージョンの ibm-object-storage-plugin をインストールします。

    Windows 以外のオペレーティング・システム用の helm ibmc upgrade コマンドの例。

    helm ibmc upgrade ibm-object-storage-plugin ibm-helm/ibm-object-storage-plugin --set license=true [--set quotaLimit=true/false] [--set bucketAccessPolicy=true/false] [--set allowCrossNsSecret=true/false]
    

    helm upgrade コマンドの Windows の場合の例。

    helm upgrade ibm-object-storage-plugin ./ibm-object-storage-plugin --set dcname="${DC_NAME}" --set provider="${CLUSTER_PROVIDER}" --set workerOS="${WORKER_OS}" --set region="${REGION} --set platform="${PLATFORM}" --set license=true [--set bucketAccessPolicy=false]
    
    DC_NAME
    クラスター・データ・センター。 データ・センターを取得するには、kubectl get cm cluster-info -n kube-system -o jsonpath="{.data.cluster-config\.json}{'\n'}" を実行します。 SET DC_NAME=<datacenter> を実行して、データ・センターの値を環境変数に保管します。 オプション: $env:DC_NAME="<datacenter>"を実行して、Windows PowerShell で環境変数を設定します。
    CLUSTER_PROVIDER
    インフラストラクチャー・プロバイダー。 この値を取得するには、kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/iaas-provider}{'\n'}" を実行します。 前のステップからの出力に softlayer が含まれている場合は、CLUSTER_PROVIDER"IBMC" に設定します。 出力に gcng、または g2 が含まれている場合は、CLUSTER_PROVIDER"IBMC-VPC" に設定します。 環境変数にインフラストラクチャー・プロバイダーを保管します。 例えば、SET CLUSTER_PROVIDER="IBMC-VPC" などです。
    WORKER_OS および PLATFORM
    ワーカー・ノードのオペレーティング・システム。 これらの値を取得するには、kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/os}{'\n'}" を実行します。 ワーカー・ノードのオペレーティング・システムを環境変数に格納します。 IBM Cloud Kubernetes Service クラスターの場合は、SET WORKER_OS="debian" および SET PLATFORM="k8s" を実行します。
    REGION
    ワーカー・ノードのリージョン。 この値を取得するには、kubectl get nodes -o yaml | grep 'ibm-cloud\.kubernetes\.io/region' を実行します。 SET REGION="< region>" を実行して、ワーカー・ノードのリージョンを環境変数に保管します。|
  5. ibmcloud-object-storage-plugin が正常にアップグレードされたことを確認します。 CLI 出力で deployment "ibmcloud-object-storage-plugin" successfully rolled out と表示された場合、プラグインのアップグレードは成功しています。

    kubectl rollout status deployment/ibmcloud-object-storage-plugin -n ibm-object-s3fs
    
  6. ibmcloud-object-storage-driver が正常にアップグレードされたことを確認します。 CLI 出力で daemon set "ibmcloud-object-storage-driver" successfully rolled out と表示された場合、アップグレードは成功しています。

    kubectl rollout status ds/ibmcloud-object-storage-driver -n ibm-object-s3fs
    
  7. IBM Cloud Object Storage ポッドが Running 状態であることを確認します。

    kubectl get pods -n <namespace> -o wide | grep object-storage
    

IBM Cloud Object Storage プラグインの更新に問題がある場合は、 オブジェクト・ストレージ: オブジェクト・ストレージ ibmc Helm プラグインのインストールの失敗およびオブジェクト・ストレージ: IBM Cloud Object Storage プラグインのインストールの失敗を参照してください。

IBM Cloud Object Storage プラグインの削除

クラスター内で IBM Cloud Object Storage をプロビジョンして使用する必要がない場合は、ibm-object-storage-pluginibmc Helm プラグインをアンインストールできます。

ibmc Helm プラグインまたは ibm-object-storage-plugin を削除しても、既存の PVC、PV、データは削除されません。 ibm-object-storage-plugin を削除すると、関連するすべてのドライバー・ポッドとデーモン・セットがクラスターから削除されます。つまり、IBM Cloud Object Storage API を直接使用するようにアプリを構成しない限り、クラスターに新しい IBM Cloud Object Storage をプロビジョンすることはできません。 既存の PVC および PV への影響はありません。

始める前に

ibmc Helm プラグインおよび ibm-object-storage-plugin を削除するには、以下のようにします。

  1. ibm-object-storage-plugin Helm インストールの名前を取得します。

    helm ls -A | grep ibm-object-storage-plugin
    

    出力例

    NAME                         NAMESPACE    REVISION    UPDATED                                 STATUS      CHART                                  APP VERSION               
    ibm-object-storage-plugin    default      2           2020-04-01 08:46:01.403477 -0400 EDT    deployed    ibm-object-storage-plugin-1.1.4        1.1.4  
    
  2. ibm-object-storage-plugin プラグインをアンインストールします。

    helm uninstall <release_name>
    

    ibm-object-storage-plugin という名前のリリースのコマンドの例。

    helm uninstall ibm-object-storage-plugin
    
  3. ibm-object-storage-plugin ポッドが削除されたことを確認します。

    kubectl get pod -n <namespace> | grep object-storage
    

    CLI 出力にポッドが表示されていなければ、ポッドは正常に削除されています。 CLI 出力にストレージ・クラスが表示されていなければ、ストレージ・クラスは正常に削除されています。

  4. ストレージ・クラスが削除されたことを確認します。

    kubectl get sc | grep s3
    
  5. OS X または Linux ディストリビューションを使用する場合は、ibmc Helm プラグインを削除します。 Windows を使用する場合、このステップは不要です。

    1. ibmc Helm プラグインを削除します。

      helm plugin uninstall ibmc
      
    2. ibmc プラグインが削除されたことを確認します。 CLI 出力に ibmc プラグインがリストされない場合、ibmc プラグインは正常に削除されています。

      helm plugin list
      

      出力例

      NAME    VERSION    DESCRIPTION
      

オブジェクト・ストレージ構成の決定

IBM Cloud Kubernetes Service には、特定の構成でバケットを作成するために使用できる事前定義ストレージ・クラスが用意されています。

  1. IBM Cloud Kubernetes Service で使用可能なストレージ・クラスをリストします。

    kubectl get sc | grep s3
    

    出力例

    ibmc-s3fs-cold-cross-region            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-cold-regional                ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-cross-region            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-perf-cross-region       ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-perf-regional           ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-regional                ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-cross-region        ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-perf-cross-region   ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-perf-regional       ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-regional            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-vault-cross-region           ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-vault-regional               ibm.io/ibmc-s3fs   8m
    
  2. データ・アクセス要件に合ったストレージ・クラスを選択します。 ストレージクラスは、バケットのストレージ容量、読み取りと書き込み操作、および送信帯域幅を決定する。 サービス・インスタンスへのデータの読み書きの頻度に応じて、適切なオプションを選択する。

    • Standard: このオプションは、頻繁にアクセスされるホット・データに使用されます。 Web アプリやモバイル・アプリが一般的なユース・ケースです。
    • Vault: このオプションは、アクセス頻度の低い (月 1 回以下程度) ワークロードまたはクール・データに使用されます。 アーカイブ、短期データ保存、デジタル資産の保持、テープの交換、および災害復旧が一般的なユース・ケースです。
    • Cold: このオプションは、めったにアクセスされない (90 日に 1 回以下程度) コールド・データ、または非アクティブ・データに使用されます。 アーカイブ、長期バックアップ、コンプライアンスのために保持する履歴データ、またはめったにアクセスされないワークロードとアプリが一般的なユース・ケースです。
    • スマート :このオプションは、特定の使用パターンに従わないワークロードやデータ、または使用パターンを決定または予測するには膨大すぎる場合に使用します。
  3. バケットに格納されるデータの回復力のレベルを決定します。 詳細については、リージョンおよびエンドポイントを参照してください。

    • Cross-region: このオプションを使用すると、地理位置情報内の 3 つのリージョンにまたがってデータが格納されるため、最大限の可用性が実現します。 複数のリージョンに分散されたワークロードがある場合、要求は最も近いリージョンのエンドポイントにルーティングされます。 地理位置情報の API エンドポイントは、クラスターの場所に基づいて、以前にインストールした ibmc Helm プラグインによって自動的に設定されます。 例えば、クラスターが US South にある場合、ストレージ・クラスはバケットの US GEO API エンドポイントを使用するように構成されます。
    • Regional: このオプションを使用すると、データが 1 つのリージョン内の複数のゾーンに複製されます。 同じリージョンに複数のワークロードがある場合は、Cross-region のセットアップよりも待ち時間が低くなり、パフォーマンスが向上します。 リージョン・エンドポイントは、クラスターの場所に基づいて、以前にインストールした ibm Helm プラグインによって自動的に設定されます。 例えば、クラスターが US South にある場合、ストレージ・クラスはバケットのリージョン・エンドポイントとして US South を使用するように構成されます。
  4. ストレージ・クラスの詳細な IBM Cloud Object Storage バケット構成を確認します。

    kubectl describe storageclass <storageclass_name>
    

    出力例

    Name:                  ibmc-s3fs-standard-cross-region
    IsDefaultClass:        No
    Annotations:           <none>
    Provisioner:           ibm.io/ibmc-s3fs
    Parameters:            ibm.io/chunk-size-mb=16,ibm.io/curl-debug=false,ibm.io/debug-level=warn,ibm.io/iam-endpoint=https://iam.bluemix.net,ibm.io/kernel-cache=true,ibm.io/multireq-max=20,ibm.io/object-store-endpoint=https://s3-api.dal-us-geo.objectstorage.service.networklayer.com,ibm.io/object-store-storage-class=us-standard,ibm.io/parallel-count=2,ibm.io/s3fs-fuse-retry-count=5,ibm.io/stat-cache-size=100000,ibm.io/tls-cipher-suite=AESGCM
    AllowVolumeExpansion:  <unset>
    MountOptions:          <none>
    ReclaimPolicy:         Delete
    VolumeBindingMode:     Immediate
    Events:                <none>
    
    ibm.io/chunk-size-mb
    IBM Cloud Object Storage に対して読み取りまたは書き込みが行われるデータ・チャンクのサイズ (メガバイト単位)。 名前に perf が指定されたストレージ・クラスは、52 メガバイトでセットアップされます。 名前に perf が指定されていないストレージ・クラスは、16 メガバイトのチャンクを使用します。 例えば、1GB のファイルを読み取る場合、プラグインは、このファイルを複数の 16 メガバイトまたは 52 メガバイトのチャンクで読み取ります。
    ibm.io/curl-debug
    IBM Cloud Object Storage サービス・インスタンスに送信される要求のロギングを有効にします。 有効にすると、ログが syslog に送信され、ログを外部ロギング・サーバーに転送することができます。 デフォルトでは、すべてのストレージ・クラスが false に設定され、このロギング機能が無効になっています。
    ibm.io/debug-level
    IBM Cloud Object Storage プラグインによって設定されるロギング・レベル。 すべてのストレージ・クラスは、WARN ロギング・レベルでセットアップされます。
    ibm.io/iam-endpoint
    IBM Cloud Identity and Access Management (IAM) の API エンドポイント。
    ibm.io/kernel-cache
    ボリューム・マウント・ポイントのカーネル・バッファー・キャッシュを有効または無効にします。 有効にすると、IBM Cloud Object Storage から読み取られるデータがカーネル・キャッシュに格納され、データへの高速読み取りアクセスが可能になります。 無効の場合、データはキャッシュされず、常に IBM Cloud Object Storage から読み取られます。 カーネル・キャッシュは、 standard および smart ストレージ・クラスでは有効で、 cold および vault ストレージ・クラスでは無効です。
    ibm.io/multireq-max
    1 つのディレクトリー内のファイルをリストするために IBM Cloud Object Storage サービス・インスタンスに送信できる並行要求の最大数。 すべてのストレージ・クラスは、最大 20 個の並行要求でセットアップされます。
    ibm.io/object-store-endpoint
    IBM Cloud Object Storage サービス・インスタンス内のバケットにアクセスするために使用する API エンドポイント。 エンドポイントは、クラスターのリージョンに基づいて自動的に設定されます。 クラスタが存在するリージョンとは異なるリージョンにある既存のバケットにアクセスしたい場合は、独自のストレージクラスを作成し、そのバケットのAPIエンドポイントを使用する必要があります。
    ibm.io/object-store-storage-class
    ストレージ・クラスの名前。
    ibm.io/parallel-count
    単一の読み取りまたは書き込み操作のために IBM Cloud Object Storage サービス・インスタンスに送信できる並行要求の最大数。 名前に perf が指定されたストレージ・クラスは、最大 20 個の並行要求でセットアップされます。 perf が指定されていないストレージ・クラスは、デフォルトで 2 つの並行要求でセットアップされます。
    ibm.io/s3fs-fuse-retry-count
    操作が失敗したと見なされるまでの読み取りまたは書き込み操作の最大再試行回数。 すべてのストレージ・クラスは、最大 5 回の再試行でセットアップされます。
    ibm.io/stat-cache-size
    IBM Cloud Object Storage メタデータ・キャッシュ内に保持されるレコードの最大数。 各レコードのサイズの上限は 0.5 キロバイトです。 すべてのストレージ・クラスで、レコードの最大数はデフォルトで 100000 に設定されています。
    ibm.io/tls-cipher-suite
    IBM Cloud Object Storage への接続が HTTPS エンドポイント経由で確立されるときに使用する必要がある TLS 暗号スイート。 暗号スイートの値は、 OpenSSL 形式に従わなければならない。 ワーカー・ノードで Ubuntu オペレーティング・システムが実行されている場合、ストレージ・クラスはデフォルトで AESGCM 暗号スイートを使用するようにセットアップされます。 Red Hat オペレーティング・システムが実行されているワーカー・ノードの場合、デフォルトでは ecdhe_rsa_aes_128_gcm_sha_256 暗号スイートが使用されます。

    各ストレージ・クラスについて詳しくは、ストレージ・クラス・リファレンスを参照してください。 あらかじめ設定されている値を変更したい場合は、自分でカスタマイズしたストレージ・クラスを作成してください。

  5. バケットの名前を決定します。 バケットの名前は、IBM Cloud Object Storage において固有でなければなりません。 IBM Cloud Object Storage プラグインによってバケットの名前を自動的に作成するように選択することもできます。 1 つのバケット内のデータを編成するために、サブディレクトリーを作成できます。

    以前に選択したストレージ・クラスによって、バケット全体の料金設定が決定します。 サブディレクトリーに異なるストレージ・クラスを定義することはできません。 異なるアクセス要件を持つデータを格納する場合は、複数の PVC を使用して複数のバケットを作成することを検討してください。

  6. クラスターまたは永続ボリューム請求 (PVC) が削除された後もデータとバケットを保持するかどうかを選択します。 PVC を削除すると、必ず PV が削除されます。 PVC の削除時にデータとバケットを自動的に削除するかどうかを選択できます。 IBM Cloud Object Storage サービス・インスタンスは、データに対して選択した保存ポリシーとは独立しているため、PVC の削除時に削除されることはありません。

これで、必要な構成を決定したので、PVC を作成して IBM Cloud Object Storage をプロビジョンする準備ができました。

インストールの検証

ポッドの詳細を確認し、プラグインが正しくインストールされたことを確認します。

  1. ドライバー・ポッドをリストして、インストールが成功したことを確認します。

    kubectl get pod --all-namespaces -o wide | grep object
    

    出力例

    ibmcloud-object-storage-driver-9n8g8                              1/1       Running   0          2m
    ibmcloud-object-storage-plugin-7c774d484b-pcnnx                   1/1       Running   0          2m
    

    1 つの ibmcloud-object-storage-plugin ポッドと 1 つ以上の ibmcloud-object-storage-driver ポッドが表示されたら、インストールは成功しています。 ibmcloud-object-storage-driver ポッドの数は、クラスター内のワーカー・ノードの数と等しくなります。 プラグインが正しく機能するためには、すべてのポッドが Running 状態である必要があります。 ポッドが失敗した場合は、障害の根本原因を見つけるために kubectl describe pod -n ibm-object-s3fs <pod_name> を実行します。

  2. ストレージ・クラスが正常に作成されたことを確認します。

    kubectl get sc | grep s3
    

    出力例

    ibmc-s3fs-cold-cross-region            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-cold-regional                ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-cross-region            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-perf-cross-region       ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-perf-regional           ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-regional                ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-cross-region        ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-perf-cross-region   ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-perf-regional       ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-regional            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-vault-cross-region           ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-vault-regional               ibm.io/ibmc-s3fs   8m
    

    IBM Cloud Object Storage ストレージ・クラスの 1 つをデフォルト・ストレージ・クラスとして設定する場合は、kubectl patch storageclass <storageclass> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' を実行します。 <storageclass> を IBM Cloud Object Storage ストレージ・クラスの名前に置き換えます。

  3. 手順に従ってオブジェクト・ストレージをアプリに追加します。

IBM Cloud Object Storage プラグインのインストールに問題がある場合は、 オブジェクト・ストレージ: オブジェクト・ストレージ ibmc Helm プラグインのインストールの失敗およびオブジェクト・ストレージ: IBM Cloud Object Storage プラグインのインストールの失敗を参照してください。