kubernetes - 当 GCP 发布/订阅中的作业数量过多时初始化新服务
问题描述
我正在 GCP 上开展一个项目,我需要创建一个像负载均衡器一样工作的系统,但负载是发布/订阅队列中的项目数。
这里有更多细节:
- 我有一个基于 pub/sub 的消息队列。
- 很多消息都发布到这个问题上,我有一个使用它们的服务。
- 处理队列中的每个项目需要几个小时。
- 当队列中的项目数变得非常大时,我想启动一个新服务(一个 docker 映像)(比如我想在队列中的项目数超过 10 个项目时启动一个新服务,并在队列中的项目数超过 20 以此类推)并在队列中的项目数减少时关闭服务(例如,如果队列中的项目数低于 20,则关闭所有服务并只有 2 项服务上线)
现在我的问题是:
- 我怎样才能做到这一点?
- kubernties 是一个好的解决方案吗?如果是,我在哪里可以找到有关它的更多信息。
- 我可以通过 pub/sub 来实现吗?如果是,我在哪里可以找到信息?
解决方案
我有类似的要求(我正在努力解决)。我建议您查看基于外部堆栈驱动程序监控指标的水平 pod 自动缩放器,看看它是否能满足您的需求。这个过程在这里讨论:
和这里:
https://cloud.google.com/kubernetes-engine/docs/tutorials/external-metrics-autoscaling