如何以编程方式旋转Pod?

时间:2020-03-31 14:23:54

标签: kubernetes

我具有根据用户请求将任务添加到不同队列的功能。任务排队后,有些工作人员会听队列开始做任务。

例如,用户将200个任务添加到队列“ A”。监听队列“ A”的工作人员开始执行任务。

我想让一些工人在有人向队列中添加任务时监听给定的队列。

例如,用户将200个任务添加到队列“ A”。然后,系统将创建3个工作人员来监听队列“ A”,然后工作人员开始执行任务。

所以我的问题是:如何以编程方式在Kubernetes中旋转一些吊舱(工人)?还是针对我的用例有更好的解决方案?

2 个答案:

答案 0 :(得分:0)

如果工人吊舱正在执行短暂的短暂任务,请查看Knative。 Knative是建立在kubernetes之上的无服务器平台,它基于来自不同来源的事件来旋转Pod。

Knative被实现为您在Kubernetes集群上安装的一组控制器。 Knative将自己的API类型注册到Kubernetes API,因此使用它与使用Kubernetes本身并没有太大区别。

Knative由两个独立的组件组成,这些组件具有自己的GitHub项目:

原生服务:通过简化自动扩展,联网和部署,更轻松地在Kubernetes上运行无状态服务。

原始事件:以声明方式创建事件源的订阅,并将事件路由到Kubernetes端点。

您可以在集群中使用一个或两个组件。

Knative eventing是一个旨在满足云原生开发的常见需求的系统,并提供可组合的原语以启用后期绑定事件源和事件使用者。

答案 1 :(得分:0)

除了已经提到的Knative之外,我还建议另外两个选项(从我认为更合适的列表中列出),这些选项可让您以编程方式放大/缩小Pod:

  1. Horizontal Pod Autoscaler

水平吊舱自动缩放器可自动缩放吊舱的数量 在复制控制器,部署,副本集或有状态集中 根据观察到的CPU利用率(或借助自定义指标支持) 其他一些应用程序提供的指标。

Here,您将找到一个通用的演练,向您展示如何进行设置。

如果您决定根据CPU /内存以外的指标进行扩展,则需要使用Custom Metrics

  1. 如果HPA不能满足您的需求,则可以尝试使用StatefulSet

本教程介绍了如何使用 有状态集。它演示了如何创建,删除,缩放和更新 StatefulSet的豆荚。

有了它,您可以轻松扩展副本的数量。

请让我知道是否有帮助。