Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有可能为Kubernetes的工作建立一个工人池,以避免pod创建时间?_Kubernetes_Scaling_Kubernetes Jobs - Fatal编程技术网

是否有可能为Kubernetes的工作建立一个工人池,以避免pod创建时间?

是否有可能为Kubernetes的工作建立一个工人池,以避免pod创建时间?,kubernetes,scaling,kubernetes-jobs,Kubernetes,Scaling,Kubernetes Jobs,到目前为止,我正在为一个特定的处理任务旋转单个K8s作业。其中一些任务需要大量的CPU/内存,但另一些任务相当简单,可以通过内存处理轻松完成。由于pod创建时间的原因,与作为K8s作业运行时相比,在内存中花费几毫秒的简单任务要慢得多 我想知道是否有可能为那些特定的K8s工作专门设置一个工作人员池,这样不太密集的任务就不会产生K8s工作区创建时间的开销。例如,如果我已经创建了5个pod,并在空闲中等待任务,那么它们可以快速接收传入的请求进行处理(无需等待pod启动)。如果这些吊舱不足以容纳大量的任

到目前为止,我正在为一个特定的处理任务旋转单个K8s作业。其中一些任务需要大量的CPU/内存,但另一些任务相当简单,可以通过内存处理轻松完成。由于pod创建时间的原因,与作为K8s作业运行时相比,在内存中花费几毫秒的简单任务要慢得多


我想知道是否有可能为那些特定的K8s工作专门设置一个工作人员池,这样不太密集的任务就不会产生K8s工作区创建时间的开销。例如,如果我已经创建了5个pod,并在空闲中等待任务,那么它们可以快速接收传入的请求进行处理(无需等待pod启动)。如果这些吊舱不足以容纳大量的任务,理想情况下,它们会自动缩放以适应更多的处理。我找不到清晰的文档来说明我正在尝试做的事情,因此如果有任何帮助,我将不胜感激。谢谢

没有库伯内特的最小单位是一个pod这样的东西——它要么直接启动(创建pod),要么由另一个资源控制,例如复制集、作业、cronjob

如果工作节点上已经存在映像,则pod创建时间应该相当短。您的员工是否在每次工作结束后都会因为自动校准而终止工作?我不确定你的用例是什么,什么时候启动,你会考虑“足够小”。此外,这在很大程度上取决于不同的作业是否需要在不同的环境中运行

您可以部署队列服务(例如RabbitMQ)并通过向该队列添加消息来创建任务,还可以部署监视这些队列的工作者。有一些类似于戏剧的框架可以使这变得非常简单,并负责所有队列处理。此外,还有一些解决方案可以基于自定义度量来实现kubernetes部署规模,例如,如果作业在队列中堆积,这将包括自动缩放


如果您不想自己编写代码,您可以研究开源自动化服务器,例如Jenkins。通常,您会让Jenkins在集群中启动pod,但也可以添加一些立即执行作业的静态工作节点。(在这种方法中,自动缩放可能是一个问题,但它确实是可能的)

也许您可以将其作为服务实现,而不是作为作业运行?