Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 使用Argo工作流创建队列系统_Kubernetes_Argo Workflows_Argo Events - Fatal编程技术网

Kubernetes 使用Argo工作流创建队列系统

Kubernetes 使用Argo工作流创建队列系统,kubernetes,argo-workflows,argo-events,Kubernetes,Argo Workflows,Argo Events,我正在试图弄清楚如何使用Argo设置工作队列。Argo工作流的计算成本很高。我们需要同时计划许多请求。工作流项通过HTTP请求添加到工作队列 流程可以如下所示: 客户端 =>hasura#用户身份验证 =>redis#工作队列 =>argo事件#队列侦听器 =>argo工作流 =>redis+hasura#通知工作流已完成 =>客户端 我从未构建过超过其资源的K8s集群。在哪里限制工作流的执行?或者Argo事件和工作流是否根据集群中的资源限制这些事件和工作流 上面的例子可能可以简化为以下内容,

我正在试图弄清楚如何使用Argo设置工作队列。Argo工作流的计算成本很高。我们需要同时计划许多请求。工作流项通过HTTP请求添加到工作队列

流程可以如下所示:

客户端
=>hasura#用户身份验证
=>redis#工作队列
=>argo事件#队列侦听器
=>argo工作流
=>redis+hasura#通知工作流已完成
=>客户端
我从未构建过超过其资源的K8s集群。在哪里限制工作流的执行?或者Argo事件和工作流是否根据集群中的资源限制这些事件和工作流

上面的例子可能可以简化为以下内容,但问题是如果

客户端
=>argo事件#HTTP请求侦听器
=>argo工作流

Argo工作流没有队列的概念,因此无法知道队列何时已满。如果需要队列控制,则应在提交工作流之前进行

提交工作流后,有许多方法可以限制资源使用

  • -每个工作流步骤由Kubernetes吊舱表示。您可以像在部署中使用Pod一样设置资源请求和限制
  • -在工作流中,您可以限制同时运行的步骤数。当一个步骤特别占用资源时,这会有所帮助
  • -您可以通过将工作流配置为信号量来限制并发运行的工作流数量
  • 还有许多其他类似设置工作流和Pod TTL以及

    据我所知,没有办法设置工作流限制,以便Argo在获得更多资源之前拒绝其他工作流提交。如果您担心Kubernetes etcd充满了太多的工作流定义,那么这就是一个问题


    为了避免破坏etcd,您需要另一个类似于Argo的应用程序来排队工作流提交,直到有更多资源可用。

    非常感谢您的回答。有助于了解如何设置体系结构。是的,我担心的是,如果我同时有1000个请求,而每个请求都提交了一个高资源使用率的工作流,会发生什么。@espenfinens,当然!酷。是的,一旦工作流在集群上,就有很多工具来管理资源。但在任何事情进入Argo之前,可能需要做一些管理工作。祝你好运