当サイトのクッキーについて IBM のWeb サイトは正常に機能するためにいくつかの Cookie を必要とします(必須)。 このほか、サイト使用状況の分析、ユーザー・エクスペリエンスの向上、広告宣伝のために、お客様の同意を得て、その他の Cookie を使用することがあります。 詳細については、オプションをご確認ください。 IBMのWebサイトにアクセスすることにより、IBMのプライバシー・ステートメントに記載されているように情報を処理することに同意するものとします。 円滑なナビゲーションのため、お客様の Cookie 設定は、 ここに記載されている IBM Web ドメイン間で共有されます。
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
をインストールする:
-
ワーカー・ノードを最新のセキュリティー設定で実行するために、ワーカー・ノードに、使用しているマイナー・バージョンに対する最新パッチが適用されていることを確認します。 パッチのバージョンから、ワーカー・ノードの root のパスワードが更新されたかどうかも確認できます。
過去 90 日以内に更新の適用もワーカー・ノードの再ロードも行っていない場合は、ワーカー・ノードの root のパスワードの有効期限が切れているので、ストレージ・プラグインのインストールが失敗する可能性があります。
-
ワーカー・ノードの現在のパッチ・バージョンをリストします。
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** 列にアスタリスク (**) が表示されます。 -
Kubernetes のバージョン情報 を参照して、最新の変更を確認してください。
-
ワーカー・ノードを再ロードして、最新のパッチ・バージョンを適用します。 ワーカーノードをリロードする前に、ibmcloud ks worker reload コマンドの 指示に従って、ワーカーノード上で実行中のポッドを安全に再スケジュールしてください。 再ロード中に、ワーカー・ノード・マシンが最新のイメージで更新されるので、 ワーカー・ノードの外部に保管していないデータは削除されることに注意してください。
-
-
変更ログを調べて、クラスターのバージョンとアーキテクチャーのサポートを確認してください。
-
こちらの手順に従って、バージョン 3 の Helm クライアントをローカル・マシンにインストールします。
IBM Cloud アカウントで VRF と サービス・エンドポイントを 有効にしている場合、プライベート IBM Cloud Helm リポジトリーを使用して、イメージ・プル・トラフィックをプライベート・ネットワーク上に維持できます。 アカウントで VRF またはサービス・エンドポイントを有効にできない場合は、パブリック Helm リポジトリーを使用します。
-
IBM Cloud Helm リポジトリーをクラスターに追加します。
helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
-
Helm リポジトリーを更新して、このリポジトリー内のすべての Helm チャートの最新バージョンを取得します。
helm repo update
-
以前に IBM Cloud Object Storage Helm プラグインをインストールした場合は、
ibmc
プラグインを削除します。helm plugin uninstall ibmc
-
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
コマンドを再実行してください。 -
初めてプラグインをインストールする場合は、 IBM Cloud Object Storage Helm プラグイン
ibmc
をインストールしてください。 プラグインは、クラスター・ロケーションを自動的に取得し、ストレージ・クラス内の IBM Cloud Object Storage バケットの API エンドポイントを設定します。 Windowsをオペレーティングシステムとして使用している場合は、この手順をスキップしてください。ibmc
プラグインは Windows ではサポートされていません。-
Helm プラグインをインストールします。
helm plugin install ./ibm-object-storage-plugin/helm-ibmc
-
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.
-
オプション :出力にエラー
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
-
-
オプション : IBM Cloud Object Storage サービスの認証情報を保持する Kubernetes シークレットのみにアクセスできるように IBM Cloud Object Storage プラグインを制限する。 デフォルトでは、プラグインはクラスター内のすべての Kubernetes シークレットにアクセスできます。
-
Kubernetes シークレットへの IBM Cloud Object Storage サービス資格情報を保管します)。
-
ディレクトリーを
ibm-object-storage-plugin
ディレクトリーに変更します。cd ibm-object-storage-plugin
-
ibm-object-storage-plugin
から、templates
ディレクトリーにナビゲートし、使用可能なファイルをリストします。 OS X および Linuxcd templates && ls
Windows
chdir templates && dir
-
provisioner-sa.yaml
ファイルを開き、ibmcloud-object-storage-secret-reader
ClusterRole
定義を探します。 -
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"]
-
変更を保存し、作業ディレクトリーに移動します。
-
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"
に設定します。 出力にgc
、ng
、または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 プラグインを最新バージョンにアップグレードできます。
-
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
-
IBM Cloud Helm リポジトリーを更新して、このリポジトリー内のすべての Helm チャートの最新バージョンを取得します。
helm repo update
-
IBM Cloud Object Storage
ibmc
Helm プラグインを最新バージョンに更新します。helm ibmc --update
-
ご使用のオペレーティング・システムの最新バージョンの
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"
に設定します。 出力にgc
、ng
、または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>"
を実行して、ワーカー・ノードのリージョンを環境変数に保管します。|
-
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
-
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
-
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-plugin
と ibmc
Helm プラグインをアンインストールできます。
ibmc
Helm プラグインまたは ibm-object-storage-plugin
を削除しても、既存の PVC、PV、データは削除されません。 ibm-object-storage-plugin
を削除すると、関連するすべてのドライバー・ポッドとデーモン・セットがクラスターから削除されます。つまり、IBM Cloud Object Storage API を直接使用するようにアプリを構成しない限り、クラスターに新しい
IBM Cloud Object Storage をプロビジョンすることはできません。 既存の PVC および PV への影響はありません。
始める前に
- アカウントにログインします。 該当する場合は、適切なリソース・グループをターゲットにします。 クラスターのコンテキストを設定します。
- IBM Cloud Object Storage を使用する PVC や PV がクラスター内にないことを確認します。 特定の PVC をマウントするすべてのポッドをリストするには、
kubectl get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
を実行します。
ibmc
Helm プラグインおよび ibm-object-storage-plugin
を削除するには、以下のようにします。
-
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
-
ibm-object-storage-plugin
プラグインをアンインストールします。helm uninstall <release_name>
ibm-object-storage-plugin
という名前のリリースのコマンドの例。helm uninstall ibm-object-storage-plugin
-
ibm-object-storage-plugin
ポッドが削除されたことを確認します。kubectl get pod -n <namespace> | grep object-storage
CLI 出力にポッドが表示されていなければ、ポッドは正常に削除されています。 CLI 出力にストレージ・クラスが表示されていなければ、ストレージ・クラスは正常に削除されています。
-
ストレージ・クラスが削除されたことを確認します。
kubectl get sc | grep s3
-
OS X または Linux ディストリビューションを使用する場合は、
ibmc
Helm プラグインを削除します。 Windows を使用する場合、このステップは不要です。-
ibmc
Helm プラグインを削除します。helm plugin uninstall ibmc
-
ibmc
プラグインが削除されたことを確認します。 CLI 出力にibmc
プラグインがリストされない場合、ibmc
プラグインは正常に削除されています。helm plugin list
出力例
NAME VERSION DESCRIPTION
-
オブジェクト・ストレージ構成の決定
IBM Cloud Kubernetes Service には、特定の構成でバケットを作成するために使用できる事前定義ストレージ・クラスが用意されています。
-
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
-
データ・アクセス要件に合ったストレージ・クラスを選択します。 ストレージクラスは、バケットのストレージ容量、読み取りと書き込み操作、および送信帯域幅を決定する。 サービス・インスタンスへのデータの読み書きの頻度に応じて、適切なオプションを選択する。
- Standard: このオプションは、頻繁にアクセスされるホット・データに使用されます。 Web アプリやモバイル・アプリが一般的なユース・ケースです。
- Vault: このオプションは、アクセス頻度の低い (月 1 回以下程度) ワークロードまたはクール・データに使用されます。 アーカイブ、短期データ保存、デジタル資産の保持、テープの交換、および災害復旧が一般的なユース・ケースです。
- Cold: このオプションは、めったにアクセスされない (90 日に 1 回以下程度) コールド・データ、または非アクティブ・データに使用されます。 アーカイブ、長期バックアップ、コンプライアンスのために保持する履歴データ、またはめったにアクセスされないワークロードとアプリが一般的なユース・ケースです。
- スマート :このオプションは、特定の使用パターンに従わないワークロードやデータ、または使用パターンを決定または予測するには膨大すぎる場合に使用します。
-
バケットに格納されるデータの回復力のレベルを決定します。 詳細については、リージョンおよびエンドポイントを参照してください。
- Cross-region: このオプションを使用すると、地理位置情報内の 3 つのリージョンにまたがってデータが格納されるため、最大限の可用性が実現します。 複数のリージョンに分散されたワークロードがある場合、要求は最も近いリージョンのエンドポイントにルーティングされます。 地理位置情報の API エンドポイントは、クラスターの場所に基づいて、以前にインストールした
ibmc
Helm プラグインによって自動的に設定されます。 例えば、クラスターがUS South
にある場合、ストレージ・クラスはバケットのUS GEO
API エンドポイントを使用するように構成されます。 - Regional: このオプションを使用すると、データが 1 つのリージョン内の複数のゾーンに複製されます。 同じリージョンに複数のワークロードがある場合は、Cross-region のセットアップよりも待ち時間が低くなり、パフォーマンスが向上します。 リージョン・エンドポイントは、クラスターの場所に基づいて、以前にインストールした
ibm
Helm プラグインによって自動的に設定されます。 例えば、クラスターがUS South
にある場合、ストレージ・クラスはバケットのリージョン・エンドポイントとしてUS South
を使用するように構成されます。
- Cross-region: このオプションを使用すると、地理位置情報内の 3 つのリージョンにまたがってデータが格納されるため、最大限の可用性が実現します。 複数のリージョンに分散されたワークロードがある場合、要求は最も近いリージョンのエンドポイントにルーティングされます。 地理位置情報の API エンドポイントは、クラスターの場所に基づいて、以前にインストールした
-
ストレージ・クラスの詳細な 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
暗号スイートが使用されます。
各ストレージ・クラスについて詳しくは、ストレージ・クラス・リファレンスを参照してください。 あらかじめ設定されている値を変更したい場合は、自分でカスタマイズしたストレージ・クラスを作成してください。
-
バケットの名前を決定します。 バケットの名前は、IBM Cloud Object Storage において固有でなければなりません。 IBM Cloud Object Storage プラグインによってバケットの名前を自動的に作成するように選択することもできます。 1 つのバケット内のデータを編成するために、サブディレクトリーを作成できます。
以前に選択したストレージ・クラスによって、バケット全体の料金設定が決定します。 サブディレクトリーに異なるストレージ・クラスを定義することはできません。 異なるアクセス要件を持つデータを格納する場合は、複数の PVC を使用して複数のバケットを作成することを検討してください。
-
クラスターまたは永続ボリューム請求 (PVC) が削除された後もデータとバケットを保持するかどうかを選択します。 PVC を削除すると、必ず PV が削除されます。 PVC の削除時にデータとバケットを自動的に削除するかどうかを選択できます。 IBM Cloud Object Storage サービス・インスタンスは、データに対して選択した保存ポリシーとは独立しているため、PVC の削除時に削除されることはありません。
これで、必要な構成を決定したので、PVC を作成して IBM Cloud Object Storage をプロビジョンする準備ができました。
インストールの検証
ポッドの詳細を確認し、プラグインが正しくインストールされたことを確認します。
-
ドライバー・ポッドをリストして、インストールが成功したことを確認します。
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>
を実行します。 -
ストレージ・クラスが正常に作成されたことを確認します。
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 ストレージ・クラスの名前に置き換えます。 -
手順に従ってオブジェクト・ストレージをアプリに追加します。
IBM Cloud Object Storage プラグインのインストールに問題がある場合は、 オブジェクト・ストレージ: オブジェクト・ストレージ ibmc
Helm プラグインのインストールの失敗およびオブジェクト・ストレージ: IBM Cloud Object Storage プラグインのインストールの失敗を参照してください。