【问题标题】:Can Kubernetes work like a compute farm and route one request per podKubernetes 能否像计算场一样工作并为每个 pod 路由一个请求
【发布时间】:2021-01-29 17:53:34
【问题描述】:

我已将旧版桌面应用程序 docker 化。这个应用程序从命令行界面进行资源密集型图形渲染。

我想将此渲染作为“计算农场”中的服务提供,我想知道 Kubernetes 是否可以用于此目的。

如果是这样,我将如何在 Kubernetes 中确保每个 pod 一次只处理一个请求(这个应用程序是资源密集型的,并且可能不是线程安全的)?我应该在容器中编写一个单线程包装器/调用器应用程序并因此序列化请求吗?那么 K8s 是否会足够聪明地将后续请求路由到空闲的 pod,而不是让它们堆积在过载的 pod 上?

【问题讨论】:

  • 我用 OpenFaas 做了类似的事情。它在 kubernetes 集群中运行无服务器功能,如果忙于处理请求,它将启动更多功能。
  • 也许kubeless.io 可能会有所帮助。
  • 除了 knative/kubeless 之外,这也可能是您可以使用 Tekton 做的事情:定义任务,应该以可重用的序列 (Pipelinres) 执行。

标签: kubernetes


【解决方案1】:

有趣的问题。

内置的默认服务对象与 kube-proxy 一起将请求路由到不同的 pod,但仅以循环方式进行,不适合我们的用例。

您的用例需要在集群设置期间对 kube-proxy 设置进行更改。这种方法很繁琐,并且需要您拥有自己的集群设置(云服务不支持)。如here所述。

最好的办法是设置一个像 Istio 这样的服务网格,它提供了几乎不需要配置的功能以及许多其他有用的功能。

看看this 是否有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-16
    • 2010-11-07
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 2020-02-28
    相关资源
    最近更新 更多