3.4. 永続ボリューム要求


PersistentVolumeClaim オブジェクトには、永続ボリューム要求 (PVC) の仕様およびステータスである spec および status が含まれます。以下が例になります。

PersistentVolumeClaim オブジェクト定義の例

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: myclaim 
1

spec:
  accessModes:
    - ReadWriteOnce 
2

  resources:
    requests:
      storage: 8Gi 
3

  storageClassName: gold 
4

status:
  ...
Copy to Clipboard Toggle word wrap

1
PVC の名前。
2
読み取り書き込みおよびマウントパーミッションを定義するアクセスモード。
3
PVC に利用できるストレージの量。
4
要求で必要になる StorageClass の名前。

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 のサンプルへのボリュームのマウント

kind: Pod
apiVersion: v1
metadata:
  name: mypod
spec:
  containers:
    - name: myfrontend
      image: dockerfile/nginx
      volumeMounts:
      - mountPath: "/var/www/html" 
1

        name: mypd 
2

  volumes:
    - name: mypd
      persistentVolumeClaim:
        claimName: myclaim 
3
Copy to Clipboard Toggle word wrap

1
Pod 内にボリュームをマウントするためのパス
2
マウントするボリュームの名前。コンテナーのルート (/) や、ホストとコンテナーで同じパスにはマウントしないでください。これは、コンテナーに十分な特権が付与されている場合に、ホストシステムを破壊する可能性があります (例: ホストの /dev/pts ファイル)。ホストをマウントするには、/host を使用するのが安全です。
3
使用する同じ namespace にある PVC の名前

3.4.5. PVC の使用状況に関する統計情報の表示

永続ボリューム要求 (PVC) 使用状況の統計情報を表示できます。

重要

PVC 使用状況の統計情報コマンドは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

3.4.5.1. PVC 使用状況の統計情報を表示するに、ユーザーパーミッションが必要

PVC 使用状況の統計情報を表示するには、適切な特権が必要です。

必要な特権でログオンする場合:

  • 管理者特権がある場合は、管理者としてログオンしてください。
  • 管理者特権が ない 場合:

    1. 次のコマンドを実行して、クラスターロールを作成し、ユーザーに追加します。

      $ 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 Toggle word wrap
      1 2
      ユーザーの名前。

3.4.5.2. PVC の使用状況に関する統計情報の表示

  • クラスター全体の統計情報を表示するには、次のコマンドを実行します。

    $ oc adm top pvc -A
    Copy to Clipboard Toggle word wrap

    コマンド出力例

    NAMESPACE     NAME         USAGE(%)
    namespace-1   data-etcd-1  3.82%
    namespace-1   data-etcd-0  3.81%
    namespace-1   data-etcd-2  3.81%
    namespace-2   mypvc-fs-gp3 0.00%
    default       mypvc-fs     98.36%
    Copy to Clipboard Toggle word wrap

  • 指定された namespace の PVC 使用状況の統計情報を表示するには、次のコマンドを実行します。

    $ oc adm top pvc -n <namespace-name> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <namespace-name> は、指定された namespace の名前に置き換えます。

    コマンド出力例

    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 Toggle word wrap

    1
    この例では、指定された namespace は namespace-1 です。
  • 指定された PVC および指定された namespace の使用状況の統計情報を表示するには、次のコマンドを実行します。

    $ oc adm top pvc <pvc-name> -n <namespace-name> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <pvc-name> は指定された PVC の名前に、<namespace-name> は指定された namespace の名前に置き換えます。

    コマンド出力例

    NAMESPACE   NAME        USAGE(%)
    namespace-1 data-etcd-0 3.81% 
    1
    Copy to Clipboard Toggle word wrap

    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 定義の例

apiVersion: storage.k8s.io/v1beta1
kind: VolumeAttributesClass 
1

metadata:
  name: silver 
2

driverName: ebs.csi.aws.com 
3

parameters:
  iops: "300"
  throughput: "125"
  type: io2 
4

  ...
Copy to Clipboard Toggle word wrap

1
オブジェクトを Volume Attributes Classes として定義します。
2
VolumeAttributesClass の名前。この例では、"silver" です。
3
永続ボリューム (PV) のプロビジョニングに使用するボリュームプラグインを決定するプロビジョナー。この例では、AWS EBS の場合は "ebs.csi.aws.com" です。
4
ディスクタイプ。

以下は、GPC PD の Volume Attributes Class YAML ファイルの例です。

VolumeAttributesClass GPC PD 定義の例

apiVersion: storage.k8s.io/v1beta1
kind: VolumeAttributesClass 
1

metadata:
  name: silver 
2

driverName: pd.csi.storage.gke.io 
3

parameters:
  iops: "3000"
  throughput: "150Mi"
  ...
Copy to Clipboard Toggle word wrap

1
オブジェクトを Volume Attributes Classes として定義します。
2
VolumeAttributesClass の名前。この例では、"silver" です。
3
永続ボリューム (PV) のプロビジョニングに使用するボリュームプラグインを決定するプロビジョナー。この例では、GPC PD の場合は "pd.csi.storage.gke.io" です。

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 定義の例

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: test-pv-claim
    spec:volumeAttributesClassName: silver 
    1
    Copy to Clipboard Toggle word wrap

    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 を削除するには、以下を実行します。

  1. 次のコマンドを実行して、Volume Attributes Class を使用している PVC を検索します。

    $ oc get pvc -A -o jsonpath='{range .items[?(@.spec.volumeAttributesClassName=="<vac-name>")]}{.metadata.name}{"\n"}{end}' 
    1
    Copy to Clipboard Toggle word wrap
    1
    <vac-name> = Volume Attributes Class 名

    コマンド出力例

    $ mypvc
    Copy to Clipboard Toggle word wrap

  2. 次に、次のいずれかを実行します。

    • PVC の volumeAttributesClassName パラメーターに、別の Volume Attributes Class 名を指定します。

      Volume Attributes Class を指定する PVC 定義の例

      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
      name: mypvc
      spec:volumeAttributesClassName: silver 
      1
      Copy to Clipboard Toggle word wrap

      1
      別の Volume Attributes Class を指定します。この例では、"silver" です。

      または、以下を実行します。

    • 次のコマンドを実行して、Volume Attributes Class を指定するすべての PVC を削除します。

      $ oc delete pvc <pvc-name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      削除する PVC の名前。
  3. これで Volume Attributes Class がどの PVC でも使用されなくなりました。次に、以下のコマンドを実行して Volume Attributes Class を削除します。

    $ oc delete vac <vac-name> 
    1
    Copy to Clipboard Toggle word wrap
    1
    削除する Volume Attributes Class の名前。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat