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