我有一个用例,其中前端应用程序将文件发送到后端服务进行处理。一次,后端服务吊舱只能处理一个请求。如果有多个请求,服务应该自动缩放并将该请求发送到新的Pod。 因此,我正在寻找一种方法,可以针对每个请求生成新的POD,并且在后端服务吊舱完成处理后,它将结果返回到前端服务并销毁自身。 这样每个Pod一次只能处理一个请求。
我探索了HPA自动缩放功能,但是没有找到任何合适的方法。 可以开放使用任何自定义指标服务器,甚至可以在满足上述情况的情况下使用Jobs。
因此,如果有人有知识或处理相同的用例,请帮助我,以便我也可以尝试该解决方案。 预先感谢。
答案 0 :(得分:0)
我能想到的实际上没有任何内置功能。您可以为您的应用创建一个具有创建pod权限的服务帐户,然后将生成行为直接构建到您的应用代码中。如果可以获取有关可用吊舱可用的度量标准,则可以将HPA与Prometheus结合使用,以确保始终至少有一个空闲的后端,但这取决于您的资料公开的度量标准。
答案 1 :(得分:0)
正如已经说过的那样,没有内置的方法可以执行此操作,您需要找到定制的方法来实现此目的。
一种解决方案可以是使用服务帐户和对api服务器的http请求,以在前端pod收到您的服务后立即创建后端pod,检查后端pod的状态,一旦启动,就将请求转发回结束。
第二种方式,我可以考虑使用一些临时存储(db或hostpath卷),然后在主服务器中写入cronejob来轮询该存储,并取决于具有工作容器的状态生成容器。