【问题标题】:How to increase the execution time for apps served by knative?如何增加 knative 服务的应用程序的执行时间?
【发布时间】:2019-03-28 15:21:39
【问题描述】:

我们正在使用 knative 来提供一个 nodejs 应用程序(使用 express),该应用程序将执行工作流并返回执行结果。该应用程序必须执行可能需要几分钟(如果不是几小时)才能完成执行的工作流。

调用应用程序后,执行会在一定时间(大约 14 分钟)后停止,状态为: upstream request timeout

我们相应地修改了 express 的超时时间,它似乎有轻微的效果,但没有达到需要的程度。我们使用以下指南作为基线https://github.com/knative/docs/tree/master/docs/serving/samples/hello-world/helloworld-nodejs

是否有可以修改的配置值会增加应用程序本身的执行(可能是超时值)?

【问题讨论】:

标签: nginx kubernetes faas knative-serving knative


【解决方案1】:

更新(25/6/19):

根据https://github.com/knative/serving/pull/4196,在Knative v0.7 中,您现在可以指定MaxRevisionTimeoutSeconds,它可以是任何整数。 timeoutSeconds 必须小于或等于 MaxRevisionTimeoutSecondstimeoutSeconds 默认为 300

: 您可以更改timeoutSeconds(我相信默认为 300 秒):

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
  name: my-app
  namespace: default
spec:
  runLatest:
    configuration:
      revisionTemplate:
        spec:
          timeoutSeconds: 300
          ...

【讨论】:

  • 谢谢,我们试过了:timeoutSeconds: 300,收到了:Error from server (InternalError): error when creating 'knative-fn.yaml': Internal error occurred: admission webhook 'webhook.serving.knative.dev' denied the request: mutation failed: expected 0s <= 1800s <= 600s: spec.runLatest.configuration.revisionTemplate.spec.timeoutSeconds
  • @Vedo 你运行的是什么版本的 Knative?您为timeoutSeconds 尝试了哪些整数?没有timeoutSeconds,yaml 是否正确应用?您是否尝试过重新配置/应用所有 Knative yaml 文件以确保 Knative 在您的集群上正确设置?所有的 Knative 豆荚都健康吗?马修
  • 我正在运行 v0.5.0 版本的 Knative(构建、服务和事件)。我尝试过从 300 到 1800 秒的整数,但超过 600 秒的所有内容都会引发错误。 yaml 文件在没有 timeoutSeconds 的情况下正确应用,但平均为 300 秒,太少了。集群中的所有 Knative 部署和 Pod 均处于健康状态、准备就绪且正在运行。
  • 如果您不包含timeoutSeconds,则默认为 300。我收到了相同的问题,即 600s max - 直到现在我们还没有设置任何长期运行的任务......我在 github 上提出了一个问题:github.com/knative/serving/issues/3826
  • @vedo 通过 Knative v0.7 版本的更改更新了答案
猜你喜欢
  • 2012-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-13
相关资源
最近更新 更多