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
默认优先选择可用存储容量较高的节点。