【问题标题】:Is there a way to automatically launch a followup (different) job only if a Kubernetes job fails?有没有办法仅在 Kubernetes 作业失败时自动启动后续(不同)作业?
【发布时间】:2020-08-06 15:54:07
【问题描述】:

上下文:

我目前有一个 Python Flask 应用程序,当收到请求时,它会自动创建一个 Kubernetes 作业来运行一个进程。作业完成后,它将结果回传到特定端点(永不更改)。根据请求的具体情况,此过程的长度(时间)和资源需求可能会有很大差异。我为此使用 Jobs 的原因是它们能够在失败时重新启动。

问题:

即使允许最大重启次数,有时也会出现进程出错的情况。我想按照以下方式实现一些东西:

  • 如果作业成功完成,则什么也不做。
  • 如果在达到最大重试次数后作业失败,则运行foo()

foo() 是一个非常简单的 Python 函数,它将发送带有导致作业未成功完成的请求参数的 HTTP 请求。它不一定是 Python 函数,但它是首选。

注意:我将作业需要执行的 python 函数中的所有内容都包装在一个广泛的错误异常中,但是,有时作业可能会由于内存不足而失败。

【问题讨论】:

    标签: python-3.x kubernetes kubernetes-jobs kubernetes-python-client


    【解决方案1】:

    为什么不在集群中实施无服务解决方案, knative 或 kubeless 或其他解决方案。

    【讨论】:

      猜你喜欢
      • 2021-07-15
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多