【问题标题】:Kubernetes batch performance with activation of thousands of pods using jobs使用作业激活数千个 Pod 的 Kubernetes 批处理性能
【发布时间】:2019-09-28 15:37:00
【问题描述】:

我正在用谷歌云中的 Kubernetes 编写一个管道。

有时我需要在一秒钟内激活几个 pod,其中每个 pod 都是在 pod 内运行的任务。

我计划使用 Kubernetes 作业调用 kubectl run 并等待它完成(每秒轮询所有正在运行的 pod)并激活管道中的下一步。

我还将监控集群大小,以确保我没有超过最大 CPU/RAM 使用率。

我可以同时运行数以万计的工作。

我没有使用标准管道,因为我需要在管道中创建动态数量的任务。

我正在运行批处理操作,以便处理延迟。

这是最好的方法吗?在 Kubernetes 中创建一个 Pod 需要多长时间?

【问题讨论】:

    标签: kubernetes kubectl


    【解决方案1】:

    如果您想同时运行一万个作业 - 您肯定需要规划资源分配。您需要估计所需的节点数。之后,您可以一次创建所有节点,或者使用 GKE 集群自动扩缩器自动添加新节点以响应资源需求。如果您一次预先分配所有节点 - 您可能会在月底支付高额费用。但是可以非常快速地创建 pod。如果您最初只创建少量节点并使用集群自动缩放器 - 您将面临很大的延迟,因为节点需要几分钟才能启动。你必须决定你的方法是什么。

    如果您使用集群自动扩缩器 - 不要忘记指定集群中的最大节点数。

    另一件重要的事情 - 你应该将你的工作放入 Kubernetes 中的 Guaranteed quality of service。否则,如果您使用 Best Effort 或 Burstable pod - 您最终会遇到非常可怕且无法控制的 Eviction 噩梦。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 2019-09-10
      • 2022-07-15
      • 1970-01-01
      • 1970-01-01
      • 2018-02-23
      相关资源
      最近更新 更多