Kubernetes 通过基于时间的触发器扩展 pod
Posted
技术标签:
【中文标题】Kubernetes 通过基于时间的触发器扩展 pod【英文标题】:Kubernetes Scaling up pods by time based trigger 【发布时间】:2019-02-15 03:26:14 【问题描述】:我有一个在 Kubernetes 上运行的服务器来处理每小时的处理作业。考虑使用服务来公开 pod,并使用(外部)cron 作业来访问负载均衡器,以便 kubernetes 可以根据需要自动扩展以处理更高的负载。但是在实现中,如果 cron 作业同时发送 100 个请求,而只有 1 个 pod,则所有流量都将流向该 pod,而随后启动的 pod 仍然没有任何流量需要处理。
我该如何解决这个问题?在发出请求之前,我是否可以先使用 cron 作业来扩展 pod?或者我应该延迟请求以便让 pod 有时间启动?或者也欢迎其他建议!
【问题讨论】:
【参考方案1】:如果您正在寻找无服务器风格的即时扩展,您可以在 Kubernetes/GKE 之上使用类似 https://github.com/knative/ 的东西。
除此之外,目前在 Kubernetes 上扩展 Pod 的唯一方法是 Horizontal Pod Autoscaler,它将查看 CPU/内存平均值(如果您使用 GKE,它可以使用自定义 Stackdriver Metrics可以使用 Prometheus 等从您的应用中公开)。
【讨论】:
【参考方案2】:我编写了一个简单的基于客户端的应用程序,您可以将其与 CronJob 配对以扩大部署规模。您可以从中汲取灵感并自己编写或直接使用它。我希望这会有所帮助。
https://github.com/balchua/boink
【讨论】:
感谢@Bal Chua!看起来像我正在寻找的方法,将尝试 gcp kubernetes apis 谢谢! 如果这件事有帮助,那就太高兴了。我也可以接受 PR。以上是关于Kubernetes 通过基于时间的触发器扩展 pod的主要内容,如果未能解决你的问题,请参考以下文章
基于Custom Metrics API的CoreDns水平扩展