Kubernetes 1.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 默认优先考虑可用存储容量较高的节点。