3.4. 永続ボリューム要求
各 PersistentVolumeClaim
オブジェクトには、永続ボリューム要求 (PVC) の仕様およびステータスである spec
および status
が含まれます。以下が例になります。
PersistentVolumeClaim
オブジェクト定義の例
3.4.1. ストレージクラス リンクのコピーリンクがクリップボードにコピーされました!
要求は、ストレージクラスの名前を storageClassName
属性に指定して特定のストレージクラスをオプションでリクエストできます。リクエストされたクラスの PV、つまり PVC と同じ storageClassName
を持つ PV のみが PVC にバインドされます。クラスター管理者は 1 つ以上のストレージクラスを提供するように動的プロビジョナーを設定できます。クラスター管理者は、PVC の仕様に一致する PV をオンデマンドで作成できます。
Cluster Storage Operator は、使用されるプラットフォームに応じてデフォルトのストレージクラスをインストールする可能性があります。このストレージクラスは Operator によって所有され、制御されます。アノテーションとラベルを定義するほかは、これを削除したり、変更したりすることはできません。異なる動作が必要な場合は、カスタムストレージクラスを定義する必要があります。
クラスター管理者は、すべての PVC にデフォルトストレージクラスを設定することもできます。デフォルトのストレージクラスが設定されると、PVC は ""
に設定された StorageClass
または storageClassName
アノテーションがストレージクラスなしの PV にバインドされるように明示的に要求する必要があります。
複数のストレージクラスがデフォルトとしてマークされている場合、PVC は storageClassName
が明示的に指定されている場合にのみ作成できます。そのため、1 つのストレージクラスのみをデフォルトとして設定する必要があります。
3.4.2. アクセスモード リンクのコピーリンクがクリップボードにコピーされました!
要求は、特定のアクセスモードのストレージを要求する際にボリュームと同じ規則を使用します。
3.4.3. リソース リンクのコピーリンクがクリップボードにコピーされました!
要求は、Pod の場合のようにリソースの特定の数量を要求できます。今回の例では、ストレージに対する要求です。同じリソースモデルがボリュームと要求の両方に適用されます。
3.4.4. ボリュームとしての要求 リンクのコピーリンクがクリップボードにコピーされました!
Pod は要求をボリュームとして使用することでストレージにアクセスします。この要求を使用して、Pod と同じ namespace 内に要求を共存させる必要があります。クラスターは Pod の namespace で要求を見つけ、これを使用して要求をサポートする PersistentVolume
を取得します。以下のように、ボリュームはホストにマウントされ、Pod に組み込まれます。
ホストおよび Pod のサンプルへのボリュームのマウント
3.4.5. PVC の使用状況に関する統計情報の表示 リンクのコピーリンクがクリップボードにコピーされました!
永続ボリューム要求 (PVC) 使用状況の統計情報を表示できます。
PVC 使用状況の統計情報コマンドは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
3.4.5.1. PVC 使用状況の統計情報を表示するに、ユーザーパーミッションが必要 リンクのコピーリンクがクリップボードにコピーされました!
PVC 使用状況の統計情報を表示するには、適切な特権が必要です。
必要な特権でログオンする場合:
- 管理者特権がある場合は、管理者としてログオンしてください。
管理者特権が ない 場合:
次のコマンドを実行して、クラスターロールを作成し、ユーザーに追加します。
oc create clusterrole routes-view --verb=get,list --resource=routes oc adm policy add-cluster-role-to-user routes-view <user-name> oc adm policy add-cluster-role-to-user cluster-monitoring-view <user-name>
$ oc create clusterrole routes-view --verb=get,list --resource=routes $ oc adm policy add-cluster-role-to-user routes-view <user-name>
1 $ oc adm policy add-cluster-role-to-user cluster-monitoring-view <user-name>
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.5.2. PVC の使用状況に関する統計情報の表示 リンクのコピーリンクがクリップボードにコピーされました!
クラスター全体の統計情報を表示するには、次のコマンドを実行します。
oc adm top pvc -A
$ oc adm top pvc -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンド出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定された namespace の PVC 使用状況の統計情報を表示するには、次のコマンドを実行します。
oc adm top pvc -n <namespace-name>
$ oc adm top pvc -n <namespace-name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<namespace-name>
は、指定された namespace の名前に置き換えます。
コマンド出力例
NAMESPACE NAME USAGE(%) namespace-1 data-etcd-2 3.81% namespace-1 data-etcd-0 3.81% namespace-1 data-etcd-1 3.82%
NAMESPACE NAME USAGE(%) namespace-1 data-etcd-2 3.81%
1 namespace-1 data-etcd-0 3.81% namespace-1 data-etcd-1 3.82%
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この例では、指定された namespace は
namespace-1
です。
指定された PVC および指定された namespace の使用状況の統計情報を表示するには、次のコマンドを実行します。
oc adm top pvc <pvc-name> -n <namespace-name>
$ oc adm top pvc <pvc-name> -n <namespace-name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<pvc-name>
は指定された PVC の名前に、<namespace-name>
は指定された namespace の名前に置き換えます。
コマンド出力例
NAMESPACE NAME USAGE(%) namespace-1 data-etcd-0 3.81%
NAMESPACE NAME USAGE(%) namespace-1 data-etcd-0 3.81%
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この例では、指定された namespace は
namespace-1
で、指定された PVC はdata-etcd-0
です。
3.4.6. Volume Attributes Classes リンクのコピーリンクがクリップボードにコピーされました!
Volume Attributes Classes は、管理者が提供するストレージの "クラス" を記述する手段を提供するものです。それぞれのクラスを別々のサービス品質レベルに対応させることができます。
Volume Attributes Classes はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
OpenShift Container Platform の Volume Attributes Classes は、AWS Elastic Block Storage (EBS) および Google Cloud Platform (GCP) Persistent Disk (PD) Container Storage Interface (CSI) でのみ利用できます。
Volume Attributes Class を永続ボリューム要求 (PVC) に適用できます。クラスターで新しい Volume Attributes Class が使用可能になった場合は、必要に応じて新しい Volume Attributes Class で PVC を更新できます。
Volume Attributes Classes には、それに属するボリュームを記述するパラメーターがあります。パラメーターを省略すると、ボリュームのプロビジョニング時にデフォルトが使用されます。パラメーターを省略した異なる Volume Attributes Class を持つ PVC を適用すると、CSI ドライバーの実装に応じてパラメーターのデフォルト値が使用される場合があります。詳細は、関連する CSI ドライバーのドキュメントを参照してください。
3.4.6.1. 制限事項 リンクのコピーリンクがクリップボードにコピーされました!
Volume Attributes Classes には次の制限があります。
- GCP PD では、Volume Attributes Classes を使用したボリュームの変更は、ディスクタイプが hyperdisk-balanced の場合にのみ可能です。
-
VolumeAttributesClass
には、512 個までのパラメーターを定義できます。 - キーと値を含むパラメーターのオブジェクトの合計長は 256 KiB 以下でなければなりません。
- Volume Attributes Class を PVC に適用する場合、その PVC に適用された Volume Attributes Class を変更することはできますが、PVC から削除することはできません。PVC から Volume Attributes Class を削除するには、その PVC を削除してから、再度その PVC を作成する必要があります。
- Volume Attributes Class のパラメーターは編集できません。Volume Attributes Class のパラメーターを変更する必要がある場合は、必要なパラメーターを持つ新しい Volume Attributes Class を作成し、それを PVC に適用します。
3.4.6.2. Volume Attributes Classes の有効化 リンクのコピーリンクがクリップボードにコピーされました!
Volume Attributes Classes はデフォルトでは有効になっていません。
Volume Attributes Classes を有効にするには、FeatureGate の使用による OpenShift Container Platform 機能の有効化 セクションの手順に従います。
3.4.6.3. Volume Attributes Classes の定義 リンクのコピーリンクがクリップボードにコピーされました!
以下は、AWS EBS の Volume Attributes Class YAML ファイルの例です。
VolumeAttributesClass
AWE EBS 定義の例
以下は、GPC PD の Volume Attributes Class YAML ファイルの例です。
VolumeAttributesClass
GPC PD 定義の例
3.4.6.4. PVC への Volume Attributes Class の適用 リンクのコピーリンクがクリップボードにコピーされました!
新しく作成された PVC に加えて、Volume Attributes Class を使用して既存のバインドされた PVC を更新することもできます。
Volume Attributes Class を PVC に適用するには、以下を実行します。
PVC の
volumeAttributesClassName
パラメーターを Volume Attributes Class の名前に設定します。Volume Attributes Class を指定する PVC 定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この PVC に Volume Attributes Class の "silver" を使用することを指定します。
3.4.6.5. Volume Attributes Classes の削除 リンクのコピーリンクがクリップボードにコピーされました!
Volume Attributes Class は、PVC が使用している間は削除できません。
PVC が使用している Volume Attributes Class を削除しようとすると、その Volume Attributes Class を使用するすべてのリソースが Volume Attributes Class を使用しないように更新されるまで、コマンドは完了しません。
Volume Attributes Class を削除するには、以下を実行します。
次のコマンドを実行して、Volume Attributes Class を使用している PVC を検索します。
oc get pvc -A -o jsonpath='{range .items[?(@.spec.volumeAttributesClassName=="<vac-name>")]}{.metadata.name}{"\n"}{end}'
$ oc get pvc -A -o jsonpath='{range .items[?(@.spec.volumeAttributesClassName=="<vac-name>")]}{.metadata.name}{"\n"}{end}'
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <vac-name> = Volume Attributes Class 名
コマンド出力例
mypvc
$ mypvc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次に、次のいずれかを実行します。
PVC の
volumeAttributesClassName
パラメーターに、別の Volume Attributes Class 名を指定します。Volume Attributes Class を指定する PVC 定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 別の Volume Attributes Class を指定します。この例では、"silver" です。
または、以下を実行します。
次のコマンドを実行して、Volume Attributes Class を指定するすべての PVC を削除します。
oc delete pvc <pvc-name>
$ oc delete pvc <pvc-name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 削除する PVC の名前。
これで Volume Attributes Class がどの PVC でも使用されなくなりました。次に、以下のコマンドを実行して Volume Attributes Class を削除します。
oc delete vac <vac-name>
$ oc delete vac <vac-name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 削除する Volume Attributes Class の名前。