CSIStorageCapacity存储一次CSI GetCapacity调用的结果。对于给定的StorageClass,这描述了特定拓扑段中可用的容量。在考虑在哪里实例化新的PersistentVolumes时,可以使用此信息。
例如,这可以表示以下内容:- StorageClass“standard”在“topology.kubernetes.io/zone=us-east1”中可用“1234 GiB” - StorageClass“localssd”在“kubernetes.io/hostname=knode-abc123”中可用“10 GiB”
以下三种情况都暗示对于某种组合没有可用容量:- 不存在具有合适的拓扑和存储类名称的对象 - 这样的对象存在,但容量未设置 - 这样的对象存在,但容量为零
这些对象的生产者可以决定哪种方法更合适。
当CSI驱动程序通过CSIDriverSpec.StorageCapacity选择参与容量感知调度时,kube-scheduler会使用它们。调度程序将MaximumVolumeSize与挂起卷的请求大小进行比较,以过滤掉不合适的节点。如果MaximumVolumeSize未设置,则会回退到与精度较低的Capacity进行比较。如果这也未设置,则调度程序假设容量不足并尝试其他节点。