Kubernetes - 触发豆荚的再平衡

问题描述 投票:1回答:1

我有一个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内存的pod。目前在任何节点都没有空间,所以kubernetes不会这样做(除非我添加另一个节点)。我想知道kubernetes是否会看到它可以将Pod 3移动到节点1以便为新pod提供空间?

救命

kubernetes scheduling rebalancing
1个回答
1
投票

Kubernetes descheduler孵化器项目最终将整合到Kubernetes以适应再平衡。这可能是由于您的情况建议的节点资源的过度/过度使用或其他原因(例如节点污点或亲和力的变化)。

对于您的情况,您可以使用LowNodeUtilization策略运行descheduler并仔细配置阈值,以便在新的1gb pod之后将一些pod逐出并添加回pod队列。

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

编辑 - 包括示例政策

我用来测试的政策如下:

apiVersion: "descheduler/v1alpha1"
kind: "DeschedulerPolicy"
strategies:
  "LowNodeUtilization":
     enabled: true
     params:
       nodeResourceUtilizationThresholds:
         thresholds:
           "memory": 50
         targetThresholds:
           "memory": 51
           "pods": 0
© www.soinside.com 2019 - 2024. All rights reserved.