Kubernetes v1.33:用于动态制备的节点存储容量评分(Alpha)

Kubernetes v1.33 引入了一个名为 StorageCapacityScoring 的新 alpha 功能。此功能为 Pod 调度添加了一种评分方法,并结合了拓扑感知卷制备。此功能有助于将 Pod 调度到具有最多或最少可用存储容量的节点上。

关于此功能

此功能扩展了 kube-scheduler 的 VolumeBinding 插件,以便使用从存储容量获取的节点存储容量信息进行评分。目前,你只能过滤掉存储容量不足的节点。因此,你必须使用调度器扩展程序来实现基于存储容量的 Pod 调度。

此功能对于制备节点本地 PV 非常有用,这些 PV 的大小受限于节点的存储容量。通过使用此功能,你可以将 PV 分配给具有最多可用存储空间的节点,以便以后可以尽可能地扩展 PV。

在另一个用例中,你可能希望通过选择存储容量最少的节点来尽可能减少节点数量,以降低云环境中的运营成本。此功能有助于最大化资源利用率,通过从利用率最高的节点开始,更顺序地填满节点,前提是这些节点仍有足够的存储容量来满足所请求的卷大小。

如何使用

启用该特性

在 alpha 阶段,StorageCapacityScoring 默认是禁用的。要使用此功能,请将 StorageCapacityScoring=true 添加到 kube-scheduler 命令行选项 --feature-gates 中。

配置变更

你可以使用 VolumeBinding 插件配置中的 shape 参数来根据存储利用率配置节点优先级。这允许你优先选择具有较高可用存储容量的节点(默认),或者相反,优先选择具有较低可用存储容量的节点。例如,要优先选择较低可用存储容量的节点,请按如下方式配置 KubeSchedulerConfiguration

apiVersion: kubescheduler.config.k8s.io/v1
kind: KubeSchedulerConfiguration
profiles:
  ...
  pluginConfig:
  - name: VolumeBinding
    args:
      ...
      shape:
      - utilization: 0
        score: 0
      - utilization: 100
        score: 10

有关更多详细信息,请参阅文档

进一步阅读

补充说明:与 VolumeCapacityPriority 的关系

alpha 功能门控 VolumeCapacityPriority 将被弃用并由 StorageCapacityScoring 取代,前者在静态制备期间根据可用存储容量对节点进行评分。

请注意,虽然 VolumeCapacityPriority 默认优先选择可用存储容量较低的节点,但 StorageCapacityScoring 默认优先选择可用存储容量较高的节点。