【问题标题】:Argo worflows - fair share resourcesArgo 工作流程 - 公平共享资源
【发布时间】:2021-01-13 23:04:19
【问题描述】:

是否可以在 Kubernetes 集群上同时调度两个(或更多)Argo 工作流,并在两个 50/50 之间共享集群资源?我正在寻找一种资源感知功能,如果它存在于 Argo 或其他工作流引擎中。

干杯。

【问题讨论】:

  • 您可以像部署部署一样指定工作流中步骤的资源要求。这会奏效吗,还是您需要更积极地执行分裂的东西?
  • 我只需要一种方法来保证给定的工作流将保留 x 数量的集群容量以供其使用。请求和限制在这里有效吗?
  • 我很确定 Argo 没有本地机制来保证这一点。从技术上讲,我什至不确定“50% 的集群容量”是什么意思。 (它是一段时间内的平均 CPU/内存使用率吗?如果是,是什么时间段?如果一个工作流 CPU 使用率高但内存使用率低怎么办?它如何与 CPU 低但内存高的工作流平衡?)但我认为请求和限制肯定会让您有所了解。
  • 我想我正在寻找并发保证。如果一个工作流占用大量 CPU,那么它只能占用 x% 的容量,这取决于我们正在调度的并发工作流的数量。

标签: kubernetes argo-workflows


【解决方案1】:

没有内置的方法来保证两个进程之间的动态均匀分割。我也不知道任何工作流引擎上都存在这样的东西,因为它听起来很难很好地执行。

作为最佳实践,您可以并且应该做的是指定工作流计算 requirements。您可以指定内存和 CPU 请求和限制。如果 pod 有某项任务要执行,则没有理由给它“无穷无尽”的资源。

如果您的 pod 可能需要所有可用资源,我建议将其拆分为几个较小的工作负载。然后您可以控制影响资源使用的其他参数,例如并发性 通过阿尔戈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    • 2022-08-16
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多