Kubernetes通过基于时间的触发器来扩展Pod

时间:2018-09-10 16:39:46

标签: node.js kubernetes autoscaling google-kubernetes-engine

我有一个在Kubernetes上运行的服务器来处理每小时的处理工作。考虑使用服务来暴露Pod,并使用(外部)cron作业来命中负载平衡器,以便kubernetes可以根据需要自动缩放以处理更高的负载。但是在实现中,如果cron作业同时发送100个请求,而只有一个Pod,则所有流量都将流向该Pod,而随后启动的Pod仍然没有任何流量要处理。

如何解决此问题?在提出请求之前,我是否可以先使用cron作业来放大豆荚?还是应该延迟请求以便给豆荚腾出时间?或其他建议也欢迎!

2 个答案:

答案 0 :(得分:1)

如果您正在寻找无服务器式的即时扩展,则可以在Kubernetes / GKE上使用类似https://github.com/knative/的东西。

除此之外,今天在Kubernetes上扩展Pod的唯一方法是Horizo​​ntal Pod Autoscaler,它将查看CPU /内存平均值,(如果您使用的是GKE,则可以使用Custom Stackdriver Metrics可以使用Prometheus等从您的应用中公开。)

答案 1 :(得分:1)

我写了一个简单的基于客户端执行的应用程序,您可以将其与CronJob配对以扩大部署规模。您可以从中汲取灵感并自己编写或使用它。我希望这会有所帮助。

https://github.com/balchua/boink