第 27 章 存储 API
27.1. 存储 API
27.1.1. CSIDriver [storage.k8s.io/v1]
- 描述
- CSIDriver 捕获集群中部署的 Container Storage Interface (CSI)卷驱动程序的信息。Kubernetes 附加分离控制器使用此对象来确定是否需要附加。kubelet 使用此对象来确定是否需要在挂载时传递 pod 信息。CSIDriver 对象不是命名空间。
- 类型
-
对象
27.1.2. CSINode [storage.k8s.io/v1]
- 描述
- CSINode 包含有关节点上安装的所有 CSI 驱动程序的信息。CSI 驱动程序不需要直接创建 CSINode 对象。只要它们使用 node-driver-registrar sidecar 容器,kubelet 将自动为 CSI 驱动程序填充 CSI 驱动程序的 CSINode 对象作为 kubelet 插件注册的一部分。CSINode 的名称与节点相同。如果缺少对象,这意味着节点上没有 CSI 驱动程序,或者 Kubelet 版本足够低,它不创建此对象。CSINode 有一个 OwnerReference,指向对应的节点对象。
- 类型
-
对象
27.1.3. CSIStorageCapacity [storage.k8s.io/v1]
- 描述
CSIStorageCapacity 存储一个 CSI GetCapacity 调用的结果。对于给定的 StorageClass,这描述了特定拓扑片段中的可用容量。在考虑实例化新的 PersistentVolume 的位置时,可以使用它。
例如,这可以表达如下内容: - StorageClass "standard" has "1234 GiB" in "topology.kubernetes.io/zone=us-east1" - StorageClass "localssd" has "10 GiB" in "kubernetes.io/hostname=knode-abc123"
以下三种情况都意味着,没有可用于特定组合的容量: - 没有带有合适的拓扑和存储类名称的对象存在 - 此类对象存在,但容量未设置 - 这种对象存在,但容量为零
这些对象的制作者可以决定哪些方法更合适。
当 CSI 驱动程序选择使用 CSIDriverSpec.StorageCapacity 时,kube-scheduler 会消耗它们。调度程序将 MaximumVolumeSize 与请求的待处理卷大小进行比较,以过滤出 unsuitable 节点。如果未设置 MaximumVolumeSize,它将回退到与不太精确容量进行比较。如果这也未设置,调度程序会假定容量不足,并尝试其他节点。
- 类型
-
对象
27.1.4. StorageClass [storage.k8s.io/v1]
- 描述
StorageClass 描述了可以动态置备 PersistentVolume 的存储类的参数。
StorageClasses 是非命名空间;根据 etcd 的存储类的名称位于 ObjectMeta.Name 中。
- 类型
-
对象
27.1.5. VolumeAttachment [storage.k8s.io/v1]
- 描述
VolumeAttachment 捕获将指定卷附加到指定节点的意图。
VolumeAttachment 对象不是命名空间。
- 类型
-
对象