我有一个在Kubernetes上运行的服务器来处理每小时处理的工作。考虑使用服务来暴露pod,并使用(外部)cron作业来命中负载均衡器,以便kubernetes可以自动缩放以根据需要处理更高的负载。但是在实现中,如果cron作业同时发送了100个请求,而只有1个pod,则所有流量都将转到该pod,而随后的spun up pod仍然没有任何流量需要处理。
我该如何解决这个问题?在发出请求之前,我是否可以首先使用cron作业扩展pod?或者我应该延迟提出请求,以便让时间让豆荚旋转起来?或者其他建议也欢迎!
如果您正在寻找无服务器式即时扩展,那么像https://github.com/knative/这样的东西可能是您可以在Kubernetes / GKE之上使用的东西。
除此之外,今天在Kubernetes上扩展pod的唯一方法是使用Horizontal Pod Autoscaler,它将查看CPU /内存平均值(如果您使用的是GKE,它可以使用您可以从中公开的自定义堆栈驱动程序指标你的应用程序使用普罗米修斯等)。
我写了一个简单的基于客户端的应用程序,您可以与CronJob配对以扩展部署。您可以从中获取灵感并自己编写或使用它。我希望这有帮助。