Argo工作流的信号量值为0



我正在学习Argo项目工作流中的信号量,以避免使用相同资源的并发工作流。

我的用例是,我有几个外部资源,每次只有一个工作流可以使用一个。到目前为止还不错,但有时资源需要一些维护,在此期间,我不想让Argo启动任何工作流程。

我想我有两个选择:

  • 我测试了手动将configMap中的信号量值设置为值0,但Argo还是启动了一个工作流
  • 我可以启动一个永远运行的工作流,直到它被删除,并声明同步锁定,但这需要一些额外的开销来运行不做任何事情的工作流

所以我想知道如果我将信号量值设置为0,它应该如何工作,我认为它不应该启动工作流,因为它说0。有人知道这方面的信息吗?

这是我执行的步骤:

  1. 首先我用kubectl-f应用我的配置映射
  2. 然后我提交了一些工作流,由于它们都使用相同的信号量,Argo将启动一个工作流,其余的工作流将按顺序执行,每次一个
  3. 然后,我用kubectl编辑configMap来更改semapore的值
  4. 提交新作业,然后Argo将执行

当我通过kubectl编辑更新configMap时,Argo可能不会重新加载configMap?我想在未来用程序更新configmap,但现在使用kubectl编辑进行测试。

快速修复:应用ConfigMap更改后,循环工作流控制器pod。这将迫使它重新加载信号量状态。

我无法复制你的确切问题。在使用kubectl edit将信号量设置为0之后,任何新提交的工作流都保持为Pending

我确实遇到了一个问题,使用kubectl edit来提高信号量限制并不能自动启动任何Pending工作流。循环工作流程控制器pod允许工作流程重新开始运行。

除了使用快速修复程序,我还建议提交一个问题。同步是一个较新的功能,它可能还没有100%的健壮性。

相关内容

  • 没有找到相关文章

最新更新