我正在谷歌云中使用Kubernetes编写管道。
有时我需要在一秒钟内激活几个Pod,其中每个Pod是在Pod内运行的任务。
我计划用Kubernetes作业调用kubectl运行,并等待它完成(每秒轮询所有Pod运行)并激活管道中的下一步。
我还将监视群集大小,以确保不超过最大CPU / RAM使用量。
我可以同时运行数万个工作。
我没有使用标准管道,因为我需要在管道中创建动态数量的任务。
我正在运行批处理操作,因此我可以处理延迟。
这是最好的方法吗?在Kubernetes中创建 pod 需要多长时间?
最佳答案
如果您想同时运行一万个工作,则肯定需要计划资源分配。您需要估计所需的节点数。之后,您可以一次创建所有节点,也可以使用GKE群集自动缩放器根据资源需求自动添加新节点。如果您一次预分配所有节点-到月底,您的账单可能会很高。但是可以很快地创建 pods 。如果最初仅创建少量节点并使用群集自动缩放器,则将面临大量延迟,因为节点需要几分钟的时间才能启动。您必须确定您的方法。
如果使用群集自动缩放器-不要忘记在群集中指定最大节点数。
另一个重要的事情-您应该将工作放入Kubernetes中的Guaranteed quality of service中。否则,如果您使用“尽力而为”或“爆破” pods -最终将导致驱逐梦night,这真是可怕且不受控制。
关于kubernetes - Kubernetes通过使用作业激活数千个Pod来实现批处理性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56082473/