第27章 ストレージ API
27.1. ストレージ API
27.1.1. CSIDriver [storage.k8s.io/v1]
- 説明
- CSIDriver は、クラスターにデプロイされた Container Storage Interface (CSI) ボリュームドライバーに関する情報をキャプチャーします。Kubernetes アタッチデタッチコントローラーは、このオブジェクトを使用して、アタッチが必要かどうかを判断します。Kubelet はこのオブジェクトを使用して、Pod 情報をマウントで渡す必要があるかどうかを判断します。CSIDriver オブジェクトには namespace がありません。
- タイプ
-
object
27.1.2. CSINode [storage.k8s.io/v1]
- 説明
- CSINode は、ノードにインストールされているすべての CSI ドライバーに関する情報を保持します。CSI ドライバーは、CSINode オブジェクトを直接作成する必要はありません。node-driver-registrar サイドカーコンテナーを使用している限り、kubelet は、kubelet プラグイン登録の一部として CSI ドライバーの CSINode オブジェクトに自動的にデータを入力します。CSINode の名前はノードと同じです。オブジェクトが欠落している場合は、ノードで使用可能な CSI ドライバーがないか、Kubelet のバージョンが十分に低いためにこのオブジェクトが作成されないことを意味します。CSINode には、対応するノードオブジェクトを指す OwnerReference があります。
- タイプ
-
object
27.1.3. CSIStorageCapacity [storage.k8s.io/v1]
- 説明
CSIStorageCapacity は、1 回の CSIGetCapacity 呼び出しの結果を保存します。特定の StorageClass について、これは特定のトポロジーセグメントで使用可能な容量を表します。これは、新しい PersistentVolumes をインスタンス化する場所を検討するときに使用できます。
たとえば、これは次のように表すことができます。- StorageClass "standard" の "1234GiB" は "topology.kubernetes.io/zone=us-east1" で利用可能 - StorageClass "localssd" の "10GiB" は "kubernetes.io/hostname=knode-abc123" で利用可能
次の 3 つのケースはすべて、特定の組み合わせで使用可能な容量がないことを意味します。- 適切なトポロジーとストレージクラス名を持つオブジェクトが存在しない - そのようなオブジェクトは存在するが、容量は設定されていない - そのようなオブジェクトは存在するが、容量はゼロである
これらのオブジェクトの作成者は、どちらのアプローチがより適切かを判断できます。
これらは、CSI ドライバーが CSIDriverSpec.StorageCapacity による容量認識スケジューリングを選択するときに、kube-scheduler によって消費されます。スケジューラーは、保留中のボリュームで要求されたサイズと MaximumVolumeSize を比較して、不適切なノードを除外します。MaximumVolumeSize が設定されていない場合は、正確性の低い容量との比較に戻ります。これも設定されていない場合、スケジューラーは容量が不十分であると判断し、他のノードを試行します。
- タイプ
-
object
27.1.4. StorageClass [storage.k8s.io/v1]
- 説明
StorageClass は、PersistentVolumes を動的にプロビジョニングできるストレージのクラスのパラメーターを記述します。
StorageClasses は namespace ではありません。etcd に従ったストレージクラスの名前は ObjectMeta.Name にあります。
- タイプ
-
object
27.1.5. VolumeAttachment [storage.k8s.io/v1]
- 説明
VolumeAttachment は、指定されたボリュームを指定されたノードにアタッチまたはデタッチする意図をキャプチャーします。
VolumeAttachment オブジェクトには namespace がありません。
- タイプ
-
object