gpt4 book ai didi

Kubernetes - 触发 Pod 的重新平衡

转载 作者:行者123 更新时间:2023-12-02 11:30:31 24 4
gpt4 key购买 nike

我有一个 kubernetes 集群,其中设置了几个节点。我想确保 Pod 有效地分布在节点上。

我会解释:

假设我有两个节点:
Node 1 - 2gb ram
Node 2 - 2gb ram

我有这些 pod :
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 descheduler孵化器项目最终将被集成到 Kubernetes 中以适应重新平衡。这可能是由于节点资源的使用不足/过度使用(如您的情况所示)或其他原因(例如节点污点或关联性发生变化)而引起的。

对于您的情况,您可以使用 LowNodeUtilization 运行调度程序。策略和精心配置的阈值,在新的 1GB pod 之后驱逐一些 pod 并添加回 pod 队列。

另一种方法可以使用 pod priority类导致较低优先级的 pod 被驱逐并为新传入的 1gb 作业腾出空间。从 1.11 版开始,默认情况下启用 Pod 优先级。优先级并不是一种重新平衡机制,但我提到它是因为它是确保可以调度更高优先级的传入 pod 的可行解决方案。优先事项弃用旧的 rescheduler这将在 1.12 中删除。

编辑 - 包括示例策略

我用来测试这个的策略如下:

apiVersion: "descheduler/v1alpha1"
kind: "DeschedulerPolicy"
strategies:
"LowNodeUtilization":
enabled: true
params:
nodeResourceUtilizationThresholds:
thresholds:
"memory": 50
targetThresholds:
"memory": 51
"pods": 0

关于Kubernetes - 触发 Pod 的重新平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52106831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com