第4章 CSIStorageCapacity [storage.k8s.io/v1]
- 説明
CSIStorageCapacity は、1 回の CSI GetCapacity 呼び出しの結果を保存します。特定の StorageClass について、これは特定のトポロジーセグメントで使用可能な容量を表します。これは、新しい PersistentVolumes をインスタンス化する場所を検討するときに使用できます。
たとえば、これは次のように表すことができます。- StorageClass "standard" の "1234 GiB" は "topology.kubernetes.io/zone=us-east1" で利用可能 - StorageClass "localssd" の "10 GiB" は "kubernetes.io/hostname=knode-abc123" で利用可能
次の 3 つのケースはすべて、特定の組み合わせで使用可能な容量がないことを意味します。- 適切なトポロジーとストレージクラス名を持つオブジェクトが存在しない - そのようなオブジェクトは存在するが、容量は設定されていない - そのようなオブジェクトは存在するが、容量はゼロである
これらのオブジェクトの作成者は、どちらのアプローチがより適切かを判断できます。
これらは、CSI ドライバーが CSIDriverSpec.StorageCapacity による容量認識スケジューリングを選択するときに、kube-scheduler によって消費されます。スケジューラーは、保留中のボリュームで要求されたサイズと MaximumVolumeSize を比較して、不適切なノードを除外します。MaximumVolumeSize が設定されていない場合は、正確性の低い容量との比較に戻ります。これも設定されていない場合、スケジューラーは容量が不十分であると判断し、他のノードを試行します。
- タイプ
-
object
- 必須
-
storageClassName
-
4.1. 仕様
プロパティー | タイプ | 説明 |
---|---|---|
|
| apiVersion は、オブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
| capacity は、前のフィールドと一致するトポロジーとパラメーターを持つ GetCapacityRequest の GetCapacityResponse で CSI ドライバーによって報告される値です。 セマンティクスは現在 (CSI 仕様 1.2) 次のように定義されています。ボリュームのプロビジョニングに使用できるストレージの使用可能な容量 (バイト単位)。設定されていない場合、その情報は現在利用できません。 | |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これを更新することはできません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| maximumVolumeSize は、前のフィールドと一致するトポロジーとパラメーターを持つ GetCapacityRequest の GetCapacityResponse で CSI ドライバーによって報告される値です。 これは、CSI 仕様 1.4.0 以降、GetCapacityRequest と同じパラメーターでボリュームを作成するために CreateVolumeRequest.capacity_range.required_bytes フィールドで使用できる最大サイズとして定義されています。Kubernetes API の対応する値は、ボリュームクレームの ResourceRequirements.Requests です。 | |
| 標準オブジェクトのメタデータ。名前には特別な意味はありません。DNS サブドメインである必要があります (ドットを使用可、253 文字)。クラスター上の他の CSI ドライバーとの競合がないことを確認するには、csisc-<uuid>,、生成された名前、または一意の CSI ドライバー名で終わる逆ドメイン名を使用することを推奨します。 オブジェクトには namespaced が付けられます。 詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
| nodeTopology は、容量が報告されたストレージにアクセスできるノードを定義します。設定されていない場合は、クラスター内のどのノードからもストレージにアクセスできません。空の場合、ストレージはすべてのノードからアクセスできます。このフィールドは不変です。 | |
|
| storageClassName は、報告された容量が適用される StorageClass の名前を表します。StorageClass オブジェクト (空でない DNS サブドメイン) の名前と同じ要件を満たす必要があります。そのオブジェクトが存在しなくなった場合、CSIStorageCapacity オブジェクトは廃止され、作成者が削除する必要があります。このフィールドは不変です。 |