Satellite クラスタ向けの IBM Cloud Object Storage ドライバの設定
IBM Cloud Object Storage ドライバーを Satellite クラスターにデプロイし、 IBM、 AWS、Wasabi、 Azure などの複数の S3-compatible クラウドストレージプロバイダーにまたがってデータを作成・アクセスする方法について学びましょう。
ロケーションのクラスタにストレージテンプレートをデプロイする前に、コンソールで [Enable cluster admin access for Satellite Config] オプションを選択するか、クラスタを作成するときに[ --enable-config-admin ]オプションを含めて、 Satellite Configを設定していることを確認してください。
Satellite ストレージサービスをリソースグループにスコープすることはできません。 ただし、ロケーションやクラスタなどの他のリソースをリソースグループにスコープする場合は、 アカウント内のすべてのリソースに Satellite リーダーとリンク管理者ロールを追加する必要があります。
前提条件
-
オブジェクト・ストレージ・プロバイダーでサービス資格情報のセットを作成します。
オブジェクト・ストレージ資格情報を含むシークレットをクラスター内に作成する
サービス資格情報を含むクラスター内に Kubernetes シークレットを作成します。
-
オブジェクト・ストレージ・プロバイダーに基づくステップに従って、クラスター内にシークレットを作成します。 シークレットを作成すると、すべての値が自動的に base64 にエンコードされます。 次の例では、シークレット名は「
cos-write-access」です。-
IBM Cloud Object Storage
-
サービスインスタンスIDを確認してください。
ibmcloud resource service-instance <service_name> | grep GUID -
クラスター内にシークレットを作成します。
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 またはWasッサビ
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 ``` -
コンソールでの構成の作成と割り当て
-
[ロケーション]コンソールから、ストレージ構成を作成するロケーションを選択します。
-
ストレージ > ストレージ構成の作成を選択します。
-
構成の名前を入力します。
-
ストレージの種類を選択してください。
-
バージョンを選択し、「 次へ 」をクリックしてください
-
選択した 「ストレージ・タイプ」 がカスタム・パラメーターを受け入れる場合は、 「パラメーター」 タブでそれらのパラメーターを入力します。
-
選択した ストレージ・タイプ にシークレットが必要な場合は、 「シークレット (Secrets)」 タブに入力します。
-
ストレージ・クラスタブで、構成によってデプロイされたストレージ・クラスを確認するか、カスタム・ストレージ・クラスを作成します。
-
サービスへの割り当てタブで、構成の割り当て先となるサービスを選択します。
-
完了をクリックして、ストレージ構成を割り当てます。
CLI での構成の作成
-
使用するテンプレート・バージョンの パラメーター・リファレンス を確認します。
-
IBM Cloud CLI にログインします。
ibmcloud login -
Satellite ロケーションをリストして、
Managed from列をメモします。ibmcloud sat location ls -
Satellite ロケーションの
Managed fromリージョンをターゲットにします。 例えば、wdcの場合は、us-eastをターゲットにします。 詳しくは、Satellite リージョンを参照してください。ibmcloud target -r us-east -
default以外のリソース・グループを使用する場合は、そのリソース・グループをターゲットにします。ibmcloud target -g RESOURCE_GROUP -
使用するテンプレート・バージョンについて、以下のいずれかのコマンド例をコピーします。 コマンドについて詳しくは、 コマンド・リファレンス の
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" -
使用する設定に基づいて、コマンドをカスタマイズします。
-
設定を作成するには、コマンドを実行してください。
-
設定が作成されたことを確認してください。
ibmcloud sat storage config get --config CONFIG
API での構成の作成
-
API キーを生成してから、リフレッシュ・トークンを要求します。 詳しくは、API キーを使用した IBM Cloud IAM トークンの生成を参照してください。
-
使用するテンプレート・バージョンの パラメーター・リファレンス を確認します。
-
以下のいずれかの要求例をコピーし、使用する変数を置き換えます。
バージョン 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 での課題の作成
-
ストレージ構成を一覧表示し、クラスタに割り当てたいストレージ構成をメモしておいてください。
ibmcloud sat storage config ls -
ストレージを割り当てたいクラスタ、クラスタグループ、またはサービスのIDを取得します。
クラスターが Satellite Config に登録されていることを確認したり、グループを作成したりするには、Satellite Config で使用するためのクラスターのセットアップを参照してください。
クラスター・グループをリストするコマンドの例。
ibmcloud sat group lsクラスターをリストするコマンドの例。
ibmcloud oc cluster ls --provider satelliteSatellite サービスをリストするコマンドの例。
ibmcloud sat service ls --location LOCATION -
以前に取得したクラスター、グループ、またはサービスにストレージ構成を割り当てます。 詳しくは、
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 -
割り当てが作成されたことを確認します。
ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
API でのストレージ割り当ての作成
-
以下のいずれかの要求例をコピーします。
構成をクラスターに割り当てる要求の例。
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\"}" -
変数を自分の詳細に置き換え、要求を実行します。
-
割り当てをリストして、割り当てが作成されたことを確認します。
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignments" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
コンソールでのストレージ割り当ての更新
Satellite コンソール を使用して、割り当てに最新のパッチ更新を適用できます。
-
Satellite コンソールの 「ロケーション」 ページで、ロケーションを選択します。
-
「ストレージ」 タブをクリックして、構成を表示します。
-
更新したい設定をクリックしてください。
-
「情報」 (i) アイコンをクリックして、最新のリビジョンまたはパッチを適用します。
-
オプション: ストレージ割り当ての自動パッチ更新を有効にします。 自動パッチ更新を有効にすると、割り当てに常に最新のセキュリティー・フィックスが適用されます。
自動パッチ更新を有効にした場合でも、メジャー更新を手動で適用する必要があります。
CLI での割り当ての手動アップグレード
最新のストレージ・テンプレート・リビジョンを使用するように割り当てをアップグレードします。
-
Satellite ストレージ割り当てをリストし、アップグレードする Satellite 割り当てを書き留めます。
ibmcloud sat storage assignment ls -
Satellite ストレージ・テンプレートをリストして、使用可能な最新バージョンを確認します。
ibmcloud sat storage template ls -
Satellite 割り当てをアップグレードします。
割り当てをアップグレードするコマンドの例。
ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
CLI での構成および割り当ての自動パッチ更新の有効化
sat storage assignment autopatch enable CLI を使用して、割り当ての自動パッチ更新を有効にすることができます。 自動パッチ更新を有効にすると、最新のストレージ・テンプレート・リビジョン (パッチ) が自動的に適用されます。 ただし、メジャー更新は手動で適用する必要があります。
-
Satellite ストレージ構成をリストします。 設定IDをメモしておいてください。
ibmcloud sat storage assignment ls -
以下のいずれかのコマンド例を実行して、ご使用の構成とその関連割り当てに対して自動パッチ更新を有効にします。 前の手順で取得した設定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 に設定します。
-
以下の要求例をコピーし、更新するクラスター・グループおよび割り当ての変数を置き換えます。
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\"}" -
要求を実行します。
-
更新を確認するために割り当ての詳細を取得します。
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 を使用して、割り当ての自動パッチ更新を有効にすることができます。 自動パッチ更新を有効にすると、最新のストレージ・テンプレート・リビジョン (パッチ) が自動的に適用されます。 ただし、メジャー更新は手動で適用する必要があります。
-
以下の要求例をコピーし、更新するクラスター・グループおよび割り当ての変数を置き換えます。
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", ...], } } -
要求を実行します。
-
割り当ての詳細を取得して、アップグレードを検証します。
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を作成できます。
-
オブジェクト・ストレージ構成を参照する 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. -
クラスター内に PVC を作成します。
oc apply -f pvc-cos.yaml -
作成した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 -
クラスター内にポッドを作成します。
oc apply -f demo-pod.yaml -
ポッドがデプロイされたことを確認します。 アプリが
Running状態になるまでに数分かかることがあることに注意してください。oc get podsNAME READY STATUS RESTARTS AGE demo-pod 1/1 Running 0 2m58s -
ポッドにログインして、アプリがブロック・ストレージ・ボリュームに書き込み可能であることを確認します。
oc exec demo-pod -- bash -c "touch /mnt/cosvol/test.txt && ls /mnt/cosvol" test.txt
コンソールを使用して IBM Cloud Object Storage のストレージ設定を削除する
- Satellite ストレージ・ダッシュボードから、削除するストレージ構成を選択します。
- アクション > 削除を選択します。
- ストレージ構成の名前を入力します。
- **「削除」**を選択します。
コマンド・ラインを使用した IBM Cloud Object Storage ストレージ構成の削除
IBM Cloud Object Storage の設定が不要になった場合は、クラスタからアプリ、PVC、PV、および割り当てを削除できます。
-
ストレージ割り当てをリストし、クラスターに使用していた割り当てを見つけます。
ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER) -
割り当てを削除します。 割り当てを削除すると、そのストレージ割り当てに含まれていたすべてのクラスターから、ドライバー・ポッドとストレージ・クラスが削除されます。
ibmcloud sat storage assignment rm --assignment <assignment_ID> -
ドライバーがクラスターから削除されたことを確認します。
- クラスターでストレージ・クラスをリストし、ストレージ・クラスが削除されていることを確認します。
oc get sc ``` 1. `kube-system` 名前空間のポッドをリストし、ストレージ・ドライバー・ポッドが削除されていることを確認します。 ```sh {: pre} oc get pods -n kube-system | grep cos ``` -
オプション: ストレージ構成を削除します。
- ストレージ構成をリストします。
ibmcloud sat storage config ls ``` 1. ストレージ構成を削除します。 ```sh {: pre} ibmcloud sat storage config rm --config <config_name> ```
パラメーターのリファレンス
2.2 パラメーター・リファレンス
| 表示名 | CLI オプション | タイプ | 説明 | デフォルト値 |
|---|---|---|---|---|
| リリース名 | helm-release-name |
構成 | Helm チャートのリリース名。 | ibm-object-storage-plugin |
| Helm チャートの追加パラメーター | parameters |
構成 | Helm チャートの追加パラメーター。 | 該当なし |
| Object Storage プラグイン・ライセンス | license |
構成 | Object storage プラグイン・ライセンス: Apache ライセンス・バージョン 2.0。 ライセンスに同意してプラグインをインストールするには、「true」に設定します。 | 該当なし |
| Object Storage プロバイダー | s3provider |
構成 | 使用可能なプロバイダーは、「IBM」、「AWS」、および「Wasabi」です。 これら以外のプロバイダーの場合は、「Object Storage サービス・エンドポイント」パラメーターを指定する必要があります。 | 該当なし |
| 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 プロバイダー」が優先されます。 | 該当なし |
IBM Cloud Object Storage のストレージ・クラス・リファレンス
| ストレージ・クラス名 | ボリューム・バインディング・モード | 保持 |
|---|---|---|
ibm-s3fs-cos |
即時 | いいえ |
ibm-s3fs-cos-perf |
即時 | いいえ |
IBM Cloud Object Storage のヘルプとサポートの入手
IBM Cloud Object Storage をご利用の際は、サポート・ケースを開設する前に、以下のリソースをお試しください。
- Block Storage for VPC の資料 で FAQ を確認します。
- 一般的な問題をトラブルシューティングして解決するには、 トラブルシューティング資料 を参照してください。
- 「 ステータス」ページにアクセスして、 IBM Cloud プラットフォームおよびリソースのステータスを確認してください。
- Stack Overflow で、他のユーザーが同じ問題を経験しているかどうかを確認します。 質問には
ibm-cloudとCOSのタグを付けてください。 - Block Storage for VPCで問題が発生した場合は、 IBM Cloud® サポートにサポート要求を送信します。