第6章 PersistentVolumeClaim [v1]


説明
PersistentVolumeClaim は、永続ボリュームに対するユーザーの要求および要求です。
object

6.1. 仕様

プロパティー説明

apiVersion

string

APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。

kind

string

kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。

metadata

ObjectMeta

標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。

spec

object

PersistentVolumeClaimSpec は、ストレージデバイスの一般的な属性を記述し、プロバイダー固有の属性のソースを許可します

status

object

PersistentVolumeClaimStatus は永続ボリューム要求の現在のステータスです。

6.1.1. .spec

説明
PersistentVolumeClaimSpec は、ストレージデバイスの一般的な属性を記述し、プロバイダー固有の属性のソースを許可します
object
プロパティー説明

accessModes

array (string)

accessModes には、ボリュームに割り当てる必要のあるアクセスモードが含まれます。詳細は、https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 を参照してください。

dataSource

object

TypedLocalObjectReference には、同じ namespace 内で typed 参照オブジェクトを見つけるのに十分な情報が含まれます。

dataSourceRef

object

dataSourceRef は、空でないボリュームが必要な場合は、ボリュームにデータを取り込むオブジェクトを指定します。これには、空ではない API グループ (コアオブジェクトではない) または PersistentVolumeClaim オブジェクトの任意のオブジェクトを指定できます。このフィールドが指定されている場合、ボリュームバインディングは、指定されたオブジェクトのタイプが、インストールされているボリュームポピュレーターまたはダイナミックプロビジョナーと一致する場合にのみ成功します。このフィールドは、dataSource フィールドの機能を置き換えるため、両方のフィールドが空でない場合は、同じ値である必要があります。下位互換性を確保するために、dataSourceRef で namespace が指定されておらず、一方が空でもう一方が空でない場合、両方のフィールド (dataSource と dataSourceRef) が自動的に同じ値に設定されます。dataSourceRef で namespace が指定されている場合、dataSource は同じ値に設定されていないため、空にする必要があります。dataSource と dataSourceRef には 3 つの重要な違いがあります。* dataSource では 2 つの特定のタイプのオブジェクトのみが使用できますが、dataSourceRef ではコアオブジェクト以外および PersistentVolumeClaim オブジェクトを使用できます。* dataSource は使用できない値を無視 (ドロップ) しますが、dataSourceRef はすべての値を保持し、使用できない値が指定された場合はエラーを生成します。* dataSource ではローカルオブジェクトのみが使用できますが、dataSourceRef では任意の namespace のオブジェクトを使用できます。(ベータ版) このフィールドを使用するには、AnyVolumeDataSource フィーチャーゲートを有効にする必要があります。(アルファ版) dataSourceRef の namespace フィールドを使用するには、CrossNamespaceVolumeDataSource フィーチャーゲートを有効にする必要があります。

resources

object

VolumeResourceRequirements は、ボリュームのストレージリソース要件を説明します。

selector

LabelSelector

selector は、バインドを考慮するボリュームに対するラベルクエリーです。

storageClassName

string

storageClassName は、要求に必要な StorageClass の名前です。詳細: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassName

string

volumeAttributesClassName は、このクレームで使用される VolumeAttributesClass を設定するために使用できます。指定すると、CSI ドライバーは、対応する VolumeAttributesClass で定義された属性を使用してボリュームを作成または更新します。これは storageClassName とは異なる目的があり、クレームの作成後に変更できます。空の文字列値は、クレームに VolumeAttributesClass が適用されないことを意味しますが、一度設定すると、このフィールドを空の文字列にリセットすることはできません。指定されておらず、PersistentVolumeClaim がバインドされていない場合は、永続ボリュームコントローラーが存在する場合は、デフォルトの VolumeAttributesClass が設定されます。volumeAttributesClass によって参照されるリソースが存在しない場合は、そのようなリソースが存在するまで、この PersistentVolumeClaim は、modifyVolumeStatus フィールドに反映されるように、保留状態に設定されます。詳細は、https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (ベータ版) を参照してください。このフィールドを使用するには、VolumeAttributesClass フィーチャーゲートを有効にする必要があります (デフォルトではオフ)。

volumeMode

string

volumeMode は、要求に必要なボリュームのタイプを定義します。Filesystem の値は、要求仕様に含まれていない場合に暗示されます。

使用可能な列挙値: - "Block" は、ボリュームがファイルシステムでフォーマットされず、生のブロックデバイスのままになります。- "Filesystem" は、ボリュームがファイルシステムでフォーマットされる、またはファイルシステムでフォーマットされます。

volumeName

string

volumeName は、この要求をサポートする PersistentVolume へのバインディング参照です。

6.1.2. .spec.dataSource

説明
TypedLocalObjectReference には、同じ namespace 内で typed 参照オブジェクトを見つけるのに十分な情報が含まれます。
object
必須
  • kind
  • name
プロパティー説明

apiGroup

string

APIGroup は参照されているリソースのグループです。APIGroup が指定されていない場合は、指定の Kind をコア API グループに設定する必要があります。他のサードパーティータイプには、APIGroup が必要です。

kind

string

kind は参照されているリソースのタイプです。

name

string

name は、参照されているリソースの名前です。

6.1.3. .spec.dataSourceRef

説明
dataSourceRef は、空でないボリュームが必要な場合は、ボリュームにデータを取り込むオブジェクトを指定します。これには、空ではない API グループ (コアオブジェクトではない) または PersistentVolumeClaim オブジェクトの任意のオブジェクトを指定できます。このフィールドが指定されている場合、ボリュームバインディングは、指定されたオブジェクトのタイプが、インストールされているボリュームポピュレーターまたはダイナミックプロビジョナーと一致する場合にのみ成功します。このフィールドは、dataSource フィールドの機能を置き換えるため、両方のフィールドが空でない場合は、同じ値である必要があります。下位互換性を確保するために、dataSourceRef で namespace が指定されておらず、一方が空でもう一方が空でない場合、両方のフィールド (dataSource と dataSourceRef) が自動的に同じ値に設定されます。dataSourceRef で namespace が指定されている場合、dataSource は同じ値に設定されていないため、空にする必要があります。dataSource と dataSourceRef には 3 つの重要な違いがあります。* dataSource では 2 つの特定のタイプのオブジェクトのみが使用できますが、dataSourceRef ではコアオブジェクト以外および PersistentVolumeClaim オブジェクトを使用できます。* dataSource は使用できない値を無視 (ドロップ) しますが、dataSourceRef はすべての値を保持し、使用できない値が指定された場合はエラーを生成します。* dataSource ではローカルオブジェクトのみが使用できますが、dataSourceRef では任意の namespace のオブジェクトを使用できます。(ベータ版) このフィールドを使用するには、AnyVolumeDataSource フィーチャーゲートを有効にする必要があります。(アルファ版) dataSourceRef の namespace フィールドを使用するには、CrossNamespaceVolumeDataSource フィーチャーゲートを有効にする必要があります。
object
必須
  • kind
  • name
プロパティー説明

apiGroup

string

APIGroup は参照されているリソースのグループです。APIGroup が指定されていない場合は、指定の Kind をコア API グループに設定する必要があります。他のサードパーティータイプには、APIGroup が必要です。

kind

string

kind は参照されているリソースのタイプです。

name

string

name は、参照されているリソースの名前です。

namespace

string

Namespace は、参照されるリソースの namespace です。namespace が指定されている場合は、その namespace の所有者が参照を受け入れることができるように、参照された namespace に gateway.networking.k8s.io/ReferenceGrant オブジェクトが必要であることに注意してください。詳細は、ReferenceGrant ドキュメントを参照してください。(アルファ版) このフィールドでは、CrossNamespaceVolumeDataSource フィーチャーゲートを有効にする必要があります。

6.1.4. .spec.resources

説明
VolumeResourceRequirements は、ボリュームのストレージリソース要件を説明します。
object
プロパティー説明

limits

object (Quantity)

limits は、許可されるコンピュートリソースの最大量を示します。詳細は、https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ を参照してください。

requests

object (Quantity)

requests は、必要なコンピュートリソースの最小量を示します。コンテナーで Requests が省略される場合、明示的に指定される場合にデフォルトで Limits に設定されます。指定しない場合は、実装定義の値に設定されます。リクエストは制限を超えることはできません。詳細は、https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ を参照してください。

6.1.5. .status

説明
PersistentVolumeClaimStatus は永続ボリューム要求の現在のステータスです。
object
プロパティー説明

accessModes

array (string)

accessModes には、PVC をサポートするボリュームが実際に持つアクセスモードが含まれます。詳細は、https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 を参照してください。

allocatedResourceStatuses

object (string)

allocatedResourceStatuses は、指定された PVC に対してサイズが変更になるリソースのステータスを格納します。キー名は標準の Kubernetes ラベル構文に従います。有効な値は次のいずれかです: * 接頭辞のないキー: - ストレージ - ボリュームの容量。* カスタムリソースでは、"example.com/my-custom-resource" などの実装定義の接頭辞付きの名前を使用する必要があります。上記の値以外では、接頭辞のないキーや kubernetes.io 接頭辞を持つキーは予約済みとみなされるため、使用できません。

ClaimResourceStatus は、次のいずれかの状態になります。- ControllerResizeInProgress: サイズ変更コントローラーがコントロールプレーンでボリュームのサイズ変更を開始したときに設定される状態。- ControllerResizeFailed: サイズ変更コントローラーで端末エラーが発生してサイズ変更が失敗したときに設定される状態。- NodeResizePending: サイズ変更コントローラーがボリュームのサイズ変更を完了したが、ノードでさらにボリュームのサイズ変更が必要な場合に設定される状態。- NodeResizeInProgress: kubelet がボリュームのサイズ変更を開始するときに設定される状態。- NodeResizeFailed: kubelet で端末エラーが発生してサイズ変更が失敗した場合に設定される状態。一時的なエラーでは NodeResizeFailed は設定されません。たとえば、容量を増やすために PVC を拡張する場合、このフィールドは次のいずれかの状態になります。- pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeInProgress" - pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeFailed" - pvc.status.allocatedResourceStatus['storage'] = "NodeResizePending" - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeInProgress" - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeFailed" このフィールドが設定されていないと、指定された PVC に対してサイズ変更操作が進行中ではないことを意味します。

以前は不明だった resourceName または ClaimResourceStatus を持つ PVC 更新を受信したコントローラーは、設計された目的のためにその更新を無視する必要があります。たとえば、ボリュームの容量のサイズ変更のみを担当するコントローラーは、PVC に関連付けられている他の有効なリソースを変更する PVC 更新を無視する必要があります。

これはアルファフィールドであるため、RecoverVolumeExpansionFailure 機能を有効にする必要があります。

allocatedResources

object (Quantity)

allocatedResources は、PVC に割り当てられたリソース (容量を含む) を追跡します。キー名は標準の Kubernetes ラベル構文に従います。有効な値は次のいずれかです: * 接頭辞のないキー: - ストレージ - ボリュームの容量。* カスタムリソースでは、"example.com/my-custom-resource" などの実装定義の接頭辞付きの名前を使用する必要があります。上記の値以外では、接頭辞のないキーや kubernetes.io 接頭辞を持つキーは予約済みとみなされるため、使用できません。

ここで報告される容量は、ボリューム拡張操作が要求された場合の実際の容量よりも大きくなる可能性があります。ストレージクォータには、allocatedResources と PVC.spec.resources を比較して大きい方の値が使用されます。allocatedResources が設定されていない場合、PVC.spec.resources のみがクォータの計算に使用されます。ボリューム拡張容量要求が下げられ、進行中の拡張操作がなく、実際のボリューム容量が要求された容量以下である場合にのみ、allocatedResources が引き下げられます。

以前は不明だった resourceName を持つ PVC 更新を受信したコントローラーは、設計された目的のため、その更新を無視する必要があります。たとえば、ボリュームの容量のサイズ変更のみを担当するコントローラーは、PVC に関連付けられている他の有効なリソースを変更する PVC 更新を無視する必要があります。

これはアルファフィールドであるため、RecoverVolumeExpansionFailure 機能を有効にする必要があります。

capacity

object (Quantity)

capacity は、基礎となるボリュームの実際のリソースを表します。

conditions

array

conditions は永続ボリューム要求の現在の条件です。基礎となる永続ボリュームのサイズが変更されていると、条件が 'Resizing' に設定されます。

conditions[]

object

PersistentVolumeClaimCondition での pvc の状態の詳細

currentVolumeAttributesClassName

string

currentVolumeAttributesClassName は、PVC が使用している VolumeAttributesClass の現在の名前です。これが設定されていないと、この PersistentVolumeClaim には VolumeAttributeClass は適用されません。これはベータフィールドであり、VolumeAttributesClass 機能を有効にする必要があります (デフォルトではオフ)。

modifyVolumeStatus

object

ModifyVolumeStatus は、ControllerModifyVolume 操作のステータスオブジェクトを表します。

phase

string

phase は PersistentVolumeClaim の現在のフェーズを表します。

使用可能な列挙値: - "Bound" は、バインドされている PersistentVolumeClaims に使用されます。- "Lost" は、基礎となる PersistentVolume を失った PersistentVolumeClaims に使用されます。要求は PersistentVolume にバインドされ、このボリュームはもう存在せず、そのボリューム上のすべてのデータが失われています。- "Pending" はまだバインドされていない PersistentVolumeClaims に使用されます。

6.1.6. .status.conditions

説明
conditions は永続ボリューム要求の現在の条件です。基礎となる永続ボリュームのサイズが変更されていると、条件が 'Resizing' に設定されます。
array

6.1.7. .status.conditions[]

説明
PersistentVolumeClaimCondition での pvc の状態の詳細
object
必須
  • type
  • status
プロパティー説明

lastProbeTime

Time

lastProbeTime は、条件を調査した時間です。

lastTransitionTime

Time

lastTransitionTime は、条件があるステータスから別のステータスに遷移した最後の時間です。

message

string

message は、最後の遷移に関する詳細を示し、人間が判読できるメッセージです。

reason

string

一意であり、これは、条件の最後の遷移理由を示す、マシンが理解できる短い文字列である必要があります。"Resizing" と報告された場合は、基礎となる永続ボリュームのサイズが変更になっていることを意味します。

status

string

 

type

string

 

6.1.8. .status.modifyVolumeStatus

説明
ModifyVolumeStatus は、ControllerModifyVolume 操作のステータスオブジェクトを表します。
object
必須
  • status
プロパティー説明

status

string

status は、ControllerModifyVolume 操作のステータスです。状態は次のいずれかになります: - Pending。Pending は、指定された VolumeAttributesClass が存在しないなど、要件が満たされていないため、PersistentVolumeClaim を変更できないことを示します。- InProgress。InProgress は、ボリュームが変更中であることを示します。- Infeasible。Infeasible は、要求が CSI ドライバーによって無効として拒否されたことを示します。エラーを解決するには、有効な VolumeAttributesClass を指定する必要があります。注記: 将来的に新しいステータスが追加される可能性があります。コンシューマーは不明なステータスをチェックし、適切に失敗する必要があります。

可能な列挙値: - "InProgress"。InProgress はボリュームが変更中であることを示します - "Infeasible"。Infeasible は要求が CSI ドライバーによって無効として拒否されたことを示します。エラーを解決するには、有効な VolumeAttributesClass を指定する必要があります - "Pending"。保留中は、指定された VolumeAttributesClass が存在しないなど、要件が満たされていないため PersistentVolumeClaim を変更できないことを示します。

targetVolumeAttributesClassName

string

targetVolumeAttributesClassName は、現在調整中の PVC の VolumeAttributesClass の名前です。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.