ref*_*los 5 scheduling kubernetes rebalancing
我有一个 kubernetes 集群,其中设置了几个节点。我想确保 Pod 有效地分布在节点上。
我会解释:
假设我有两个节点:
Node 1 - 2gb ram
Node 2 - 2gb ram
我有这些豆荚:
Pod 1 - 1gb ram on Node 1
Pod 2 - 100mb ram on Node 1
Pod 3 - 1gb ram on Node 2
Pod 4 - 100mb ram on Node 2
现在问题来了:假设我想向集群添加一个带有 1gb ram 的 pod。目前任何节点都没有空间,所以 kubernetes 不会这样做(除非我添加另一个节点)。我想知道 kubernetes 是否会看到它可以将 Pod 3 移动到节点 1 以便为新 Pod 腾出空间?
帮助
Kubernetes调度器孵化器项目最终将被集成到 Kubernetes 中以适应重新平衡。这可能是由于节点资源的使用不足/过度使用(如您的情况所示)或其他原因(例如节点污点或关联性发生变化)而引起的。
对于您的情况,您可以使用LowNodeUtilization策略和精心配置的阈值运行调度程序,以便在新的 1gb pod 之后驱逐一些 pod 并添加回 pod 队列。
另一种方法可以使用pod 优先级类来驱逐较低优先级的 pod,并为新传入的 1gb 作业腾出空间。从 1.11 版开始,默认情况下启用 Pod 优先级。优先级并不是一种重新平衡机制,但我提到它是因为它是确保可以调度更高优先级的传入 pod 的可行解决方案。优先级弃用了将在 1.12 中删除的旧重新调度程序。
编辑 - 包括示例策略
我用来测试这个的策略如下:
apiVersion: "descheduler/v1alpha1"
kind: "DeschedulerPolicy"
strategies:
"LowNodeUtilization":
enabled: true
params:
nodeResourceUtilizationThresholds:
thresholds:
"memory": 50
targetThresholds:
"memory": 51
"pods": 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10366 次 |
| 最近记录: |