

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
persistentvolumeclaim とは?
この言葉を最初に見たとき、難しそうに感じるかもしれませんが、基本はとてもシンプルな考え方です。PersistentVolume(PV)はクラスタ内にある「使える storage」そのもの、PersistentVolumeClaim(PVC)はその storage を使いたい人の「請求書」のようなものです。Kubernetes ではアプリを動かすときにデータを長く保存する必要があり、そのデータの場所を PV が提供します。
まず、PV はあらかじめ用意されているか、StorageClass という仕組みを使って動的に作られます。PVC はアプリの要件に合わせて storage の大きさ(例: 1Gi)やアクセスモード(ReadWriteOnce など)を指定します。Kubernetes は PVC が出現すると、それに合う PV を探して結びつけます。これを「バインド」と呼びます。バインドが終わると、Pod がその PVC をマウントしてデータを書き込んだり読み取ったりできるようになります。
PVC の基本的な仕組み
PVC は「どれくらいの容量が必要か」「どんな使い方をしたいか」を宣言します。たとえば、1GiBytes のストレージを ReadWriteOnce(1 台のノードから読み書き可能)で使いたい、という具合です。StorageClass 名を指定すると、クラウド上のディスクのように、必要に応じて新しい PV を自動で作成してくれることがあります。これが「動的プロビジョニング」と呼ばれる仕組みです。
簡単な YAML の例
以下は PVC の基本的な設定の一例です(実際にはクラスタ内で適用します)。
apiVersion: v1kind: PersistentVolumeClaimmetadata: name: my-pvcspec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: standard
PVC と PV の関係を理解する表
| 用語 | 説明 |
|---|---|
| PersistentVolume (PV) | クラスタ内のストレージの実体。PVCに割り当てられる前提の資源。 |
| PersistentVolumeClaim (PVC) | アプリが使いたいストレージの「請求書」。容量やアクセスモードを宣言する。 |
| StorageClass | 動的に PV を作るための設定。クラウドのディスクなどを選べます。 |
このように、PVC を作るときには、どんなデータの保存が必要かを宣言し、Kubernetes が適切な PV を結びつけてくれます。結果として、アプリケーションは Pod が再起動してもデータを失わずに動作します。
最後に覚えておきたいポイントは3つです。1) PVC はデータの請求書、2) PV はデータの実体、3) StorageClass で動的にPVを作れることがあるという点です。これを理解すると、Kubernetes のストレージ周りがぐっと身近に感じられます。
persistentvolumeclaimの同意語
- PersistentVolumeClaim
- Kubernetes におけるストレージリソースの要求を表す公式オブジェクト。Pod が必要とする容量・アクセスモード・ストレージクラスを指定し、適合する PersistentVolume (PV) に割り当てられる。
- PVC
- PersistentVolumeClaim の略称。コード・YAML・コマンドラインでよく使われる短縮形。意味は PersistentVolumeClaim と同じ。
- 永続ボリュームクレーム
- 日本語表現の一つ。PVC と同義で、Pod が使う永続的なストレージを要求するオブジェクトを指す。
- 永続ボリューム要求
- 別表記の日本語訳。PVC と同じ意味で、容量・アクセスモード・ストレージクラスなどを定義して PV を請求するオブジェクト。
- パーシステントボリュームクレーム
- 英語の音写表記。日本語解説で使われることがあるが、公式文書では PersistentVolumeClaim が主流表記。
- Persistent Volume Claim
- 英語表記のスペース入り表記。意味は PersistentVolumeClaim と同じ。実務上は通常「PersistentVolumeClaim(1語)」の表記が推奨される。
persistentvolumeclaimの対義語・反対語
- エフェメラルストレージ(Ephemeral storage)
- 一時的で永続性のないストレージ。Podのライフサイクルに紐づき、データは再起動や削除後に消える可能性が高い。PersistentVolumeClaim(PVC)の“長期的なストレージを請求する”性質の対概念として挙げられる。
- emptyDir(エンプティDir)
- Podが生存している間だけ存在する一時的なストレージ。PVCのように永続性を保証する仕組みではなく、短命なストレージの代表例。
- PersistentVolume(PV)
- クラスタ内の実際のストレージ資源。PVCはこのPVを請求してバインドされる。PVCとPVは対になる概念として理解すると、PVCの“対義語”というよりは役割の違いを理解しやすい。
- 非永続ストレージ
- データを長期保存しないストレージの総称。PVCが追求する“永続的なストレージ”の反対の性質を示す表現として使える。
persistentvolumeclaimの共起語
- PersistentVolume
- PVC が参照する実体のストレージ資源。クラスタ内のストレージの実体です。
- PV
- PersistentVolume の略称。PVC が結びつく前のストレージ資源の正式名です。
- StorageClass
- 動的プロビジョニングを可能にするストレージクラスの定義。
- StorageClassName
- PVC Spec に指定する StorageClass の名前。
- AccessModes
- PVC が要求するストレージのアクセスモードの集合。たとえば ReadWriteOnce など。
- ReadWriteOnce
- 1 ノードでのみ読み書き可能なアクセスモードです。
- ReadOnlyMany
- 複数ノードから読み取り専用でアクセス可能なモードです。
- ReadWriteMany
- 複数ノードから同時に読み書き可能なモードです。
- Resources
- PVC が必要とするリソースの総称です。
- Requests
- Resources の中で実際に要求する量(容量)。
- Storage
- resources.requests.storage によって指定される容量の値です。
- Phase
- PVC の現在の状態を表すフェーズです。
- Pending
- まだ割り当てが完了していない状態です。
- Bound
- PVC が PV に結びつき、使用可能になった状態です。
- Lost
- PVC の関連情報が失われた状態です。
- VolumeName
- PVC に割り当てられた PV の名前です。
- ClaimRef
- この PVC が参照している PV の参照情報です。
- Namespace
- PVC が属する名前空間を示します。
- DataSource
- PVC 作成時にデータソースとして指定する VolumeSnapshot や他の PVC などです。
- VolumeMode
- ボリュームのモードを指定します(Filesystem または Block)。
- Filesystem
- ファイルシステムモードとして使用します。
- Block
- ブロックデバイスモードとして使用します。
- DataSourceKind
- データソースの種類を表します(VolumeSnapshot など)。
- WaitForFirstConsumer
- StorageClass のバインディングを最初の Pod が現れるまで待つ設定です。
- VolumeBindingMode
- StorageClass 内のボリュームバインディングの挙動を決定します。
- DynamicProvisioning
- StorageClass による動的プロビジョニングの概念です。
- Provisioner
- 動的プロビジョニングを実行するストレージドライバ名です。
- CSI
- Container Storage Interface の略。ストレージドライバの標準規格です。
- ReclaimPolicy
- PV が PVC から外れた後の処理方針です(Delete / Retain)。
- VolumeExpansion
- PVC のサイズ拡張機能に関する機能です。
- AllowVolumeExpansion
- PVC のサイズ拡張を許可する設定です。
- VolumeSnapshot
- ボリュームのスナップショットを利用したバックアップ/クローンの機能です。
persistentvolumeclaimの関連用語
- PersistentVolumeClaim
- Kubernetes でストレージリソースを要求するオブジェクト。容量(int 束ねたストレージ量)、アクセスモード、StorageClass などを指定し、クラスタ内の適切な PersistentVolume に割り当ててもらいます。
- PersistentVolume
- 実際のストレージリソースを表す Kubernetes オブジェクト。PV はクラスタのストレージを具体的に指し、PVC からの要求に基づいて割り当てられ、データを長期間保持します。
- StorageClass
- ストレージの種類や動的プロビジョニングの設定を定義するリソース。プロビジョナー名、パラメータ、VolumeBindingMode などを含みます。
- DynamicProvisioning
- PVC が作成されたときに、StorageClass に基づいて自動的に PV が作成・割り当てされる仕組み。手動で PV を作成する手間を省きます。
- AccessModes
- PV/PVC がサポートするアクセス形態の集合。代表的な値として ReadWriteOnce、ReadOnlyMany、ReadWriteMany があります。
- ReadWriteOnce
- 1 ノードからのみ読み書き可能。最も一般的なモードです。
- ReadOnlyMany
- 複数ノードから読み出し専用でアクセス可能なモードです。
- ReadWriteMany
- 複数ノードから読み書き可能なモードです。
- VolumeMode
- ボリュームのデータ形式を表します。Filesystem(ファイルシステム)か Block(ブロックデバイス)のどちらかを選択します。
- Filesystem
- ボリュームをファイルシステムとして利用するモード。
- Block
- ボリュームをブロックデバイスとして直接扱うモード。
- ReclaimPolicy
- PVC から解放された後の PV の取り扱い方。Retain、Delete、Recycle(古い挙動、現在は非推奨)の選択肢があります。
- Retain
- データを保持して PV を削除せず、再利用を防ぐモード。
- Delete
- PV とバックエンドストレージを削除します。動的 provisioning ではこの挙動が一般的です。
- Recycle
- 古いリソースを再利用可能にする処理。現在は非推奨とされています。
- ClaimRef
- PV が現在どの PVC に束縛されているかを示す参照情報(claimRef)。
- VolumeName
- PV が指す実際のストレージ資源の名前。バインディング時に参照されます。
- Provisioner
- StorageClass が指すプロビジョナーの名称。例: kubernetes.io/aws-ebs、kubernetes.io/glusterfs など。
- VolumeBindingMode
- StorageClass が PV と PVC のバインディング時期を決定する設定。WaitForFirstConsumer などのモードが存在します。
- WaitForFirstConsumer
- 最初のポッドがスケジュールされるまで PV のバインドを遅延させるモード。ノードの近接性を考慮できます。
- CSI
- Container Storage Interface の略。Kubernetes とストレージドライバーを接続する標準インターフェースです。
- CSIDriver
- CSI ドライバーを定義・登録するリソース。特定のストレージバックエンドを Kubernetes に接続します。
- Namespace
- PVC は名前空間スコープのリソース。名前空間内で作成・使用され、他の名前空間とは独立しています。
- StatefulSet
- 状態を持つアプリケーションを管理するための workload。StatefulSet では安定した PVC の割り当てと順序付けられたスケーリングが利用されます。



















