ローカル・ストレージ・オペレーター - ファイル

IBM Cloud Satellite® 向けに ローカルボリュームを使用した永続ストレージの設定 clusters.You では、 Satellite のストレージテンプレートを使用してストレージ構成を作成できます。 ストレージ構成をクラスターに割り当てると、選択したストレージ・プロバイダーのストレージ・ドライバーがクラスターにインストールされます。

ローカル・ファイルのストレージ構成を作成するときには、クラスターで永続ボリューム (PV) として使用可能にするローカル・ストレージ・デバイスを指定します。 ストレージ構成をクラスターに割り当てると、ローカル・ストレージ・オペレーターが Satellite からデプロイされ、このオペレーターが、構成に指定されているローカル・ディスクをマウントします。 このオペレーターはさらに、指定されたファイル・システム・タイプの永続ボリュームを作成し、sat-local-file-gold ストレージ・クラスを作成します。このストレージ・クラスを使用して、永続ボリューム請求 (PVC) を作成できます。 その後、Kubernetes ワークロードでその PVC を参照できます。

ロケーションのクラスタにストレージテンプレートをデプロイする前に、コンソールで [Enable cluster admin access for Satellite Config] オプションを選択するか、クラスタを作成するときに[ --enable-config-admin ]オプションを含めて、 Satellite Configを設定していることを確認してください。

Satellite ストレージサービスをリソースグループにスコープすることはできません。 ただし、ロケーションやクラスタなどの他のリソースをリソースグループにスコープする場合は、 アカウント内のすべてのリソースに Satellite リーダーとリンク管理者ロールを追加する必要があります。

ローカル・ファイル・ストレージの前提条件

ローカル・ファイルのストレージ構成を作成する前に、クラスター内のワーカー・ノードのうち、必要とする空きディスクが搭載されているものを確認する必要があります。 そして、それらのワーカー・ノードだけにローカル・ストレージ・ドライバーをインストールするために、それらのワーカー・ノードにラベルを付けます。

  1. Satellite ロケーションを作成します

  2. ロケーションにクラスターが存在しない場合は、Red Hat OpenShift on IBM Cloud クラスターを作成するか、ロケーションに既存の Red Hat OpenShift on IBM Cloud クラスターを接続します。 ストレージ構成で使用するクラスター内のワーカー・ノードには、Satellite に必要なディスクのほかに、使用可能なローカル・ディスクが 1 台以上ある必要があります。 この追加のディスクは未フォーマットでなければなりません。

  3. ワーカー・ノードのデバイスの詳細を取得します。

  4. 使用可能なディスクがあるワーカー・ノードのうち、構成で使用するワーカー・ノードにラベルを付けます。 ローカル・ストレージ・ドライバーは、ラベルの付いたワーカー・ノードだけにインストールされます。

ローカル・ファイルのストレージ構成に使用するデバイスの詳細を取得する

ファイルのストレージ構成を作成するときには、使用するデバイスを指定する必要があります。 以下の手順で取得したデバイス・パスを、構成の作成時にパラメーターとして指定します。

  1. クラスターにログインし、使用可能なワーカー・ノードのリストを取得します。 構成で使用するワーカー・ノードをメモします。

    oc get nodes
    
  2. ローカル・ストレージ構成で使用する各ワーカー・ノードにログインします。

    oc debug node/<node-name>
    
  3. ワーカー・ノードにデバッグ・ポッドがデプロイされている場合は、以下のコマンドを実行してワーカー・ノードの使用可能なディスクをリストします。

    1. ホスト・バイナリーを許可します。
        chroot /host
        ```
    2. デバイスをリストします。
    
    ```sh {: pre}
        lsblk
        ```
    3. デバイスの詳細を取得します。 使用するデバイスが、未マウントかつ未フォーマットであることを確認します。
    
    ```sh {: pre}
        fdisk -l
        ```
    
  4. コマンド出力で使用可能なディスクを確認します。 ローカル・ストレージ構成には、未マウントのディスクを使用する必要があります。 以下の lsblk コマンドの出力例では、xvdc ディスクが未マウントであり、パーティションも作成されていません。

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    xvda    202:0    0  100G  0 disk
    |-xvda1 202:1    0    1G  0 part /boot
    `-xvda2 202:2    0   99G  0 part /
    xvdb    202:16   0    2G  0 disk
    `-xvdb1 202:17   0    2G  0 part
    xvdc    202:32   0   100G  0 disk
    xvde    202:64   0   50G  0 disk /var/data
    xvdh    202:112  0   64M  0 disk
    
  5. ローカル・ファイルのストレージ構成で使用するワーカー・ノードごとに上記の手順を繰り返します。

ローカル・ファイル・ストレージ使用時のワーカー・ノードのラベル付け

構成で使用するディスクのデバイス・パスを取得したら、それらのディスクがあるワーカー・ノードにラベルを付けます。

  1. ワーカー・ノードの IP アドレスを取得します。

    oc get nodes
    
  2. 先ほど取得したワーカー・ノードにラベルを付けます。 ローカル・ストレージ・ドライバーは、このラベルの付いたワーカー・ノードにデプロイされます。 このコマンドの例の storage=local-file ラベルを使用することも、key=value 形式で独自のラベルを作成することもできます。

    oc label nodes <worker-IP> <worker-IP> "storage=local-file"
    

    出力例

    node/<worker-IP> labeled
    node/<worker-IP> labeled
    
  3. 使用するワーカー・ノードにラベルが追加されていることを確認します。 以下のコマンドを実行してワーカー・ノードのラベルを表示し、前の手順で追加したラベルに絞り込みます。

    oc get nodes --show-labels | grep --color=always storage=local-file
    

コンソールでの構成の作成と割り当て

  1. パラメーターのリファレンスを確認します

  2. [ロケーション]コンソールから、ストレージ構成を作成するロケーションを選択します。

  3. ストレージ > ストレージ構成の作成を選択します。

  4. 構成の名前を入力します。

  5. ストレージの種類を選択してください。

  6. バージョンを選択し、「 次へ 」をクリックしてください

  7. 選択した 「ストレージ・タイプ」 がカスタム・パラメーターを受け入れる場合は、 「パラメーター」 タブでそれらのパラメーターを入力します。

  8. 選択した ストレージ・タイプ にシークレットが必要な場合は、 「シークレット (Secrets)」 タブに入力します。

  9. ストレージ・クラスタブで、構成によってデプロイされたストレージ・クラスを確認するか、カスタム・ストレージ・クラスを作成します。

  10. サービスへの割り当てタブで、構成の割り当て先となるサービスを選択します。

  11. 完了をクリックして、ストレージ構成を割り当てます。

コマンドラインインターフェース(CLI)での設定の作成

  1. 使用するテンプレート・バージョンの パラメーター・リファレンス を確認します。

  2. IBM Cloud CLI にログインします。

    ibmcloud login
    
  3. Satellite ロケーションをリストして、Managed from 列をメモします。

    ibmcloud sat location ls
    
  4. Satellite ロケーションの Managed from リージョンをターゲットにします。 例えば、wdc の場合は、us-east をターゲットにします。 詳しくは、Satellite リージョンを参照してください。

    ibmcloud target -r us-east
    
  5. default 以外のリソース・グループを使用する場合は、そのリソース・グループをターゲットにします。

    ibmcloud target -g RESOURCE_GROUP
    
  6. 使用するテンプレート・バージョンについて、以下のいずれかのコマンド例をコピーします。 コマンドについて詳しくは、 コマンド・リファレンスibmcloud sat storage config create を参照してください。

    バージョン 4.9 構成を作成するためのコマンド例。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.9 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  --param "devicepath=DEVICEPATH"  --param "fstype=FSTYPE"
    

    バージョン 4.10 構成を作成するコマンドの例。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.10 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  --param "devicepath=DEVICEPATH"  --param "fstype=FSTYPE"
    

    バージョン 4.11 構成を作成するコマンドの例。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.11 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  --param "devicepath=DEVICEPATH"  --param "fstype=FSTYPE"
    

    バージョン 4.12 構成を作成するコマンドの例。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.12 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  --param "devicepath=DEVICEPATH"  --param "fstype=FSTYPE"
    

    バージョン 4.13 構成を作成するコマンドの例。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.13 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  --param "devicepath=DEVICEPATH"  --param "fstype=FSTYPE"
    
  7. 使用する設定に基づいて、コマンドをカスタマイズします。

  8. 設定を作成するには、コマンドを実行してください。

  9. 設定が作成されたことを確認してください。

    ibmcloud sat storage config get --config CONFIG
    

アプリケーション・プログラミング・インターフェース(API)での設定の作成

  1. API キーを生成してから、リフレッシュ・トークンを要求します。 詳細については、「 API キーを使用した IAM( IBM Cloud Identity and Access Management )トークンの生成 」を参照してください。

  2. 使用するテンプレート・バージョンの パラメーター・リファレンス を確認します。

  3. 以下のいずれかの要求例をコピーし、使用する変数を置き換えます。

    バージョン 4.9 構成を作成する要求の例。

    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\": \"local-volume-file\", \"storage-template-version\": \"4.9\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }
    

    バージョン 4.10 構成を作成する要求の例。

    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\": \"local-volume-file\", \"storage-template-version\": \"4.10\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }
    

    バージョン 4.11 構成を作成する要求の例。

    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\": \"local-volume-file\", \"storage-template-version\": \"4.11\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }
    

    バージョン 4.12 構成を作成する要求の例。

    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\": \"local-volume-file\", \"storage-template-version\": \"4.12\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }
    

    バージョン 4.13 構成を作成する要求の例。

    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\": \"local-volume-file\", \"storage-template-version\": \"4.13\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"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
    

CLI での構成の手動アップグレード

Satellite のストレージ構成をアップグレードすることで、同じメジャーバージョン内で最新のストレージテンプレートのリビジョンを取得できます。

  1. Satellite ストレージ構成をリストし、アップグレードする Satellite 構成を書き留めます。

    ibmcloud sat storage config ls
    
  2. Satellite 構成をアップグレードします。 更新されるのは構成のみであることに注意してください。 この構成を使用する割り当てをアップグレードする場合は、--include-assignmentsオプションを指定するか、assignment updateコマンドを使用して各割り当てを手動で更新することができます。

    構成を最新リビジョンにアップグレードするためのコマンド例。

    ibmcloud sat storage config upgrade --config CONFIG [--include-assignments]
    

    構成およびそれに関連付けられた割り当てを最新のリビジョンにアップグレードするためのコマンド例。

    ibmcloud sat storage config upgrade --config CONFIG --include-assignments
    

API での構成と割り当てのアップグレード

/v2/storage/satellite/updateAssignment API を使用して、新しいクラスターまたはクラスター・グループで割り当てを更新できます。 改訂の更新を適用するには、 updateConfigVersiontrue に設定します。

  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"
    
  4. ストレージ構成リソースがデプロイされたことを確認します。 local-storage 名前空間のすべてのリソースのリストを取得します。

    oc get all -n local-storage
    

    出力例

    NAME                                         READY   STATUS    RESTARTS   AGE
    pod/local-disk-local-diskmaker-cpk4r         1/1     Running   0          30s
    pod/local-disk-local-provisioner-xstjh       1/1     Running   0          30s
    pod/local-storage-operator-96c444dfc-ttpmq   1/1     Running   0          35s
    NAME                             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)     AGE
    service/local-storage-operator   ClusterIP   172.21.173.238   <none>        60000/TCP   32s
    NAME                                          DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/local-disk-local-diskmaker     1         1         1       1            1           <none>          31s
    daemonset.apps/local-disk-local-provisioner   1         1         1       1            1           <none>          31s
    NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/local-storage-operator   1/1     1            1           36s
    NAME                                               DESIRED   CURRENT   READY   AGE
    replicaset.apps/local-storage-operator-96c444dfc   1         1         1       37s
    
  5. 使用可能なストレージ・クラスをリストします。

    oc get sc -n local-storage | grep local
    

    出力例

    sat-local-file-gold       kubernetes.io/no-provisioner   Delete          WaitForFirstConsumer   false                  21m
    
  6. PV をリストし、状況が Available であることを確認します。 構成の作成時に指定したローカル・ディスクが、永続ボリュームとして使用できるようになっています。

    oc get pv
    

    出力例

    NAME               CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS          REASON   AGE
    local-pv-1d14680   50Gi       RWO            Delete           Available           sat-local-file-gold            50s
    
  7. ローカル PV を参照する PVC を作成してから、ローカル・ストレージを使用するアプリをデプロイします。

ローカル・ファイル・ストレージを使用するアプリをデプロイする

ローカル・ファイルのストレージ構成を作成してクラスターに割り当てたら、ローカル・ファイル・ストレージを使用するアプリを作成できます。

永続ボリュームにラベルを追加して、PVC を特定の永続ボリュームにマップできます。 詳しくは、セレクターに関する Kubernetes の資料を参照してください。

  1. 以下の YAML を local-pvc.yaml という名前のファイルにしてローカル・マシンに保存します。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: local-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      volumeMode: Filesystem
      resources:
        requests:
          storage: 20Gi # Important: Ensure that size of your claim is not larger than the local disk.
      storageClassName: sat-local-file-gold
    
  2. クラスター内に PVC を作成します。

    oc create -f local-pvc.yaml
    
  3. PVC が作成されたことを確認します。

    oc get pvc | grep local
    

    ストレージを搭載したワーカー・ノードにポッドが確実にスケジュールされるようにする、またはストレージを必要とするアプリが他のポッドからプリエンプトされないようにするには、nodeAffinity を指定し、ポッドの優先度をセットアップしてください。 詳しくは、ポッドの優先度およびプリエンプションおよび ノード・アフィニティーの設定についての Kubernetes の資料を参照してください。

  4. ローカル・ストレージの PVC を使用するアプリ・ポッドをデプロイします。 以下のサンプル・アプリの YAML を app.yaml という名前のファイルにしてローカル・マシンに保存します。 このポッドは、test.txt という名前のファイルに日付を書き込みます。 必ず、先ほど作成した PVC の名前を入力してください。 この例では、nodeAffinity の指定によって、指定したラベルの付いたワーカー・ノードだけにこのポッドがスケジュールされます。

    apiVersion: v1
    kind: Pod
    metadata:
      name: app
    spec:
      affinity: null
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
            - matchExpressions:
                - key: storage
                  operator: In
                  values:
                    - local-file
      volumes:
        - name: local-pvc
          persistentVolumeClaim:
            claimName: local-pvc
      containers:
        - name: local-disks
          image: nginx
          ports:
            - containerPort: 80
              name: http-server
          volumeMounts:
            - mountPath: <mount-path-to-local-disk>
              name: local-pvc
    
  5. クラスター内にアプリ・ポッドを作成します。

    oc create -f app.yaml
    
  6. アプリ・ポッドにログインし、ローカル・ディスクに書き込めることを確認します。

    kubectl exec <app-pod> -it bash
    
  7. 以下のコマンドを実行して、ローカル・ディスクの場所にディレクトリーを変更し、test.txt ファイルを書き込み、ファイルの内容を表示します。

    cd /<mount-path-to-local-disk> && echo "This is a test." >> test.txt && cat test.txt
    

    出力例

    This is a test.
    
  8. テスト・ファイルを削除し、ポッドからログアウトします。

    rm test.txt && exit
    

クラスターからのローカル・ファイルのストレージ構成の削除

ローカル・ファイル・ストレージをクラスターで使用する予定がもうない場合は、そのクラスターをストレージ構成の割り当てから解除することができます。

ストレージ構成を削除すると、ローカル・ストレージ・オペレーター・リソースおよび sat-local-file-gold ストレージ・クラスが、割り当てられているすべてのクラスターからアンインストールされることに注意してください。 PVC、PV、データは削除されません。 ただし、クラスターにドライバーを再インストールするまでは、データにアクセスすることはできません。

コンソールからのローカル・ファイル・ストレージ構成の削除

コンソールを使用して、ストレージ構成を除去します。

  1. Satellite ストレージ・ダッシュボードから、削除するストレージ構成を選択します。
  2. アクション > 削除を選択します。
  3. ストレージ構成の名前を入力します。
  4. **「削除」**を選択します。

コマンド・ラインからのローカル・ファイル・ストレージ構成の削除

  1. local-storage 名前空間のリソースをリストします。 ストレージ割り当てを削除すると、これらのリソースは削除されます。

    oc get all -n local-storage
    

    出力例

    NAME                                         READY   STATUS    RESTARTS   AGE
    pod/local-disk-local-diskmaker-clvg6         1/1     Running   0          29h
    pod/local-disk-local-diskmaker-kqddq         1/1     Running   0          29h
    pod/local-disk-local-diskmaker-p6z9q         1/1     Running   0          29h
    pod/local-disk-local-provisioner-dw5g7       1/1     Running   0          29h
    pod/local-disk-local-provisioner-hxd9n       1/1     Running   0          29h
    pod/local-disk-local-provisioner-tfg95       1/1     Running   0          29h
    pod/local-storage-operator-df4994656-7826l   1/1     Running   0          29h
    NAME                             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)     AGE
    service/local-storage-operator   ClusterIP   172.21.147.17   <none>        60000/TCP   29h
    NAME                                          DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/local-disk-local-diskmaker     3         3         3       3            3           <none>          29h
    daemonset.apps/local-disk-local-provisioner   3         3         3       3            3           <none>          29h
    NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/local-storage-operator   1/1     1            1           29h
    NAME                                               DESIRED   CURRENT   READY   AGE
    replicaset.apps/local-storage-operator-df4994656   1         1         1       29h
    
  2. ストレージ割り当てをリストし、クラスターに使用していた割り当てを見つけます。

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    
  3. 割り当てを削除します。 割り当てを削除すると、そのストレージ割り当てに含まれていたすべてのクラスターから、ローカル・ストレージのドライバー・ポッドとストレージ・クラスが削除されます。

    ibmcloud sat storage assignment rm --assignment <assignment_ID>
    
  4. local-storage 名前空間のリソースをリストし、ローカル・ストレージ・ドライバー・ポッドが削除されていることを確認します。

    oc get all -n local-storage
    

    出力例

    No resources found in local-storage namespace.
    
  5. クラスターでストレージ・クラスをリストし、ローカル・ストレージ・クラスが削除されていることを確認します。

    oc get sc
    
  6. オプション: ストレージ構成を削除します。

    1. ストレージ構成をリストします。
        ibmcloud sat storage config ls
        ```
    2. ストレージ構成を削除します。
    ```sh {: pre}
        ibmcloud sat storage config rm --config <config_name>
        ```
    
  7. PVC をリストし、削除する PVC の名前をメモします。

    oc get pvc
    
  8. 現在 PVC がマウントされているすべてのポッドを削除します。

    1. 削除する PVC を現在マウントしているポッドをすべてリストします。 ポッドが返されなければ、現在その PVC を使用しているポッドはありません。
        oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
        ```
        出力例
    
        ```sh {: screen}
        app    sat-local-file-gold
        ```
    2. PVC を使用するポッドを削除します。 ポッドがデプロイメントの一部である場合は、デプロイメントを削除します。
    
    ```sh {: pre}
        oc delete pod <pod_name>
        ```
        ```sh {: pre}
        oc delete deployment <deployment-name>
        ```
    3. ポッドまたはデプロイメントが削除されたことを確認します。
    
    ```sh {: pre}
        oc get pods
        ```
        ```sh {: pre}
        oc get deployments
        ```
    
  9. PVC を削除します。 IBM が提供するすべてのローカルファイルストレージクラスは、 Retain という回収ポリシーが指定されているため、アプリやデプロイメントを削除しても、PVおよびPVCは自動的に削除されません。

    oc delete pvc <pvc-name>
    
  10. PVC が削除されたことを確認します。

    oc get pvc
    
  11. PV をリストし、削除する PV の名前をメモします。

    oc get pv
    
  12. PV を削除します。 PV を削除すると、他のワークロードにディスクを使用できるようになります。

    oc delete pv <pv-name>
    
  13. PV が削除されたことを確認します。

    oc get pv
    

パラメーターのリファレンス

4.9 パラメーター・リファレンス

表1 4.9 パラメータ・リファレンス
表示名 CLI オプション タイプ 説明 デフォルト値
自動ストレージ・ボリューム・ディスカバリー auto-discover-devices 構成 ワーカー・ノード上のストレージ・ボリュームを自動的にディスカバーして使用する場合は、「true」に設定します。 false
ノード・ラベル・キー label-key 構成 ワーカー・ノードの「key = value」ラベルの「key」。 該当なし
ノード・ラベル・キー値 label-value 構成 ワーカー・ノードの「key = value」ラベルの「value」。 該当なし
デバイス・パス devicepath 構成 ローカル・ストレージ・デバイス・パス。 例: 「/dev/sdc」。 「auto-discover-devices」が「false」に設定されている場合は必須です。 該当なし
ファイル・システム・タイプ fstype 構成 ファイル・システムのタイプ。 「ext3」、「ext4」、または「xfs」を指定します。 ext4

4.10 パラメーター・リファレンス

表2 4.10 パラメータ参照
表示名 CLI オプション タイプ 説明 デフォルト値
自動ストレージ・ボリューム・ディスカバリー auto-discover-devices 構成 ワーカー・ノード上のストレージ・ボリュームを自動的にディスカバーして使用する場合は、「true」に設定します。 false
ノード・ラベル・キー label-key 構成 ワーカー・ノードの「key = value」ラベルの「key」。 該当なし
ノード・ラベル・キー値 label-value 構成 ワーカー・ノードの「key = value」ラベルの「value」。 該当なし
デバイス・パス devicepath 構成 ローカル・ストレージ・デバイス・パス。 例: 「/dev/sdc」。 「auto-discover-devices」が「false」に設定されている場合は必須です。 該当なし
ファイル・システム・タイプ fstype 構成 ファイル・システムのタイプ。 「ext3」、「ext4」、または「xfs」を指定します。 ext4

4.11 パラメーター・リファレンス

表3 4.11 パラメータ参照
表示名 CLI オプション タイプ 説明 デフォルト値
自動ストレージ・ボリューム・ディスカバリー auto-discover-devices 構成 ワーカー・ノード上のストレージ・ボリュームを自動的にディスカバーして使用する場合は、「true」に設定します。 false
ノード・ラベル・キー label-key 構成 ワーカー・ノードの「key = value」ラベルの「key」。 該当なし
ノード・ラベル・キー値 label-value 構成 ワーカー・ノードの「key = value」ラベルの「value」。 該当なし
デバイス・パス devicepath 構成 ローカル・ストレージ・デバイス・パス。 例: 「/dev/sdc」。 「auto-discover-devices」が「false」に設定されている場合は必須です。 該当なし
ファイル・システム・タイプ fstype 構成 ファイル・システムのタイプ。 「ext3」、「ext4」、または「xfs」を指定します。 ext4

4.12 パラメーター・リファレンス

表 4. 4.12 パラメータ・リファレンス
表示名 CLI オプション タイプ 説明 デフォルト値
自動ストレージ・ボリューム・ディスカバリー auto-discover-devices 構成 ワーカー・ノード上のストレージ・ボリュームを自動的にディスカバーして使用する場合は、「true」に設定します。 false
ノード・ラベル・キー label-key 構成 ワーカー・ノードの「key = value」ラベルの「key」。 該当なし
ノード・ラベル・キー値 label-value 構成 ワーカー・ノードの「key = value」ラベルの「value」。 該当なし
デバイス・パス devicepath 構成 ローカル・ストレージ・デバイス・パス。 例: 「/dev/sdc」。 「auto-discover-devices」が「false」に設定されている場合は必須です。 該当なし
ファイル・システム・タイプ fstype 構成 ファイル・システムのタイプ。 「ext3」、「ext4」、または「xfs」を指定します。 ext4

4.13 パラメーター・リファレンス

表5 4.13 パラメータ・リファレンス
表示名 CLI オプション タイプ 説明 デフォルト値
自動ストレージ・ボリューム・ディスカバリー auto-discover-devices 構成 ワーカー・ノード上のストレージ・ボリュームを自動的にディスカバーして使用する場合は、「true」に設定します。 false
ノード・ラベル・キー label-key 構成 ワーカー・ノードの「key = value」ラベルの「key」。 該当なし
ノード・ラベル・キー値 label-value 構成 ワーカー・ノードの「key = value」ラベルの「value」。 該当なし
デバイス・パス devicepath 構成 ローカル・ストレージ・デバイス・パス。 例: 「/dev/sdc」。 「auto-discover-devices」が「false」に設定されている場合は必須です。 該当なし
ファイル・システム・タイプ fstype 構成 ファイル・システムのタイプ。 「ext3」、「ext4」、または「xfs」を指定します。 ext4

ローカル・ファイル・ストレージのストレージ・クラス・リファレンス

ローカル・ファイル・ストレージの Satellite ストレージ・クラスについて説明します。 oc describe sc <storage-class-name> コマンドを使用して、コマンド・ラインでストレージ・クラスを確認することができます。

ローカル・ファイル・ストレージ・クラス・リファレンス。
ストレージ・クラス名 ファイル・システム 再利用ポリシー
sat-local-file-gold ext4またはxfs 保持

ローカルファイルの保存に関するヘルプとサポートを受ける

  1. Red Hat OpenShift の資料で FAQ を確認します。
  2. 一般的な問題をトラブルシューティングして解決するには、 トラブルシューティング資料 を参照してください。
  3. ステータス」ページにアクセスして、 IBM Cloud プラットフォームおよびリソースのステータスを確認してください。
  4. Stack Overflow で、他のユーザーが同じ問題を経験しているかどうかを確認します。 IBM Cloud 開発チームによって認識されるように、ibm-cloud で質問にタグを付けます。
  5. 「Local File Storage Operator」で問題が発生した場合は、 Red Hat お客様 ポータル で課題を登録してください。