kubernetes 可以移动开始产生干扰工作负载的 pod 吗?

kubernetes 可以移动开始产生干扰工作负载的 pod 吗?

假设我有两个 pod:一个用于提供网页,另一个用于执行一致的计算,例如一个 pod 上有一个 Flask 服务器,另一个 pod 上有一个 Spark Executor。

突然间,一项新功能为 Flask 服务器上的特定路由创建了大量流量。通常,执行器是数字且一致的,而 Flask 服务器是稀疏的且受内存/IO 限制,但这会导致工作负载非常相似,并导致此节点上的 CPU 停滞。

Kubernetes 的调度程序能否识别这一点并重新安排 pod?

答案1

不,它不是这样运作的。

一旦 pod 被调度,K8s 就不会跟踪其 cpu/memory/io。您需要自行测量并更改部署。

我并不是说这做不到。我只是说 k8s 不是开箱即用的,而且我也不知道有任何第三方解决方案可以做到这一点。

以下是我建议你可以做的事情:

既然你知道你不想让 Flask 和 Spark 一起工作,那么你可以使用亲和性功能。更具体地说:podAntiAffinity


你还可以做一件事就是设置 pod资源限制/请求

通过这种方式,您可以确保 pod 仅使用允许使用的资源量,因此它不会使节点停滞。添加 pod 资源限制通常被认为是一种很好的做法。

相关内容