Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ストレージクラスを管理する

共同作成者

既存のストレージクラスを表示したり、デフォルトのストレージクラスを設定したり、ストレージクラスバックエンドを識別したり、ストレージクラスを削除したりできます。

既存のストレージクラスを表示します

  • 既存の Kubernetes ストレージクラスを表示するには、次のコマンドを実行します。

kubectl get storageclass
  • Kubernetes ストレージクラスの詳細を表示するには、次のコマンドを実行します。

kubectl get storageclass <storage-class> -o json
  • Tridentの同期されたストレージクラスを表示するには、次のコマンドを実行します。

tridentctl get storageclass
  • 同期されたTridentのストレージクラスの詳細を表示するには、次のコマンドを実行します。

tridentctl get storageclass <storage-class> -o json

デフォルトのストレージクラスを設定する

Kubernetes 1.6 では、デフォルトのストレージクラスを設定する機能が追加されています。永続ボリューム要求( PVC )に永続ボリュームが指定されていない場合に、永続ボリュームのプロビジョニングに使用するストレージクラスです。

  • ストレージクラスの定義でアノテーションの「 torageclass.Kubernetes .io/is-default-class 」を true に設定して、デフォルトのストレージクラスを定義します。仕様に応じて、それ以外の値やアノテーションがない場合は false と解釈されます。

  • 次のコマンドを使用して、既存のストレージクラスをデフォルトのストレージクラスとして設定できます。

kubectl patch storageclass <storage-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
  • 同様に、次のコマンドを使用して、デフォルトのストレージクラスアノテーションを削除できます。

kubectl patch storageclass <storage-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'

また、このアノテーションが含まれている Trident インストーラバンドルにも例があります。

メモ クラスタ内のデフォルトのストレージクラスは一度に1つだけにしてください。Kubernetes では、技術的に複数のストレージを使用することはできますが、デフォルトのストレージクラスがまったくない場合と同様に動作します。

ストレージクラスのバックエンドを特定します

これは、Tridentバックエンドオブジェクト用に出力するJSONを使用して回答できる質問の例 `tridentctl`です。これはユーティリティを使用し `jq`ます。このユーティリティは、最初にインストールする必要がある場合があります。

tridentctl get storageclass -o json | jq  '[.items[] | {storageClass: .Config.name, backends: [.storage]|unique}]'

ストレージクラスを削除する

Kubernetes からストレージクラスを削除するには、次のコマンドを実行します。

kubectl delete storageclass <storage-class>

「 <storage-class> 」は、ご使用のストレージクラスに置き換えてください。

このストレージクラスを使用して作成された永続ボリュームは変更されず、Tridentで引き続き管理されます。

メモ Tridentでは、作成するボリュームに対して空白が適用され fsType`ます。iSCSIバックエンドの場合は、StorageClassで強制することを推奨します `parameters.fsType。既存のストレージクラスを削除し、指定したで再作成してください parameters.fsType