2

我已经使用 Cloud run on gke 部署了一项服务,它使用 Knative 作为 k8s 的抽象。在 knative 默认配置中默认MaxRevisionTimeoutSeconds设置为 600s,但根据此PR ,这是可自定义的。

我在 Knative 官方文档中找不到任何内容,有人可以在这里帮助我吗?

更新

在深入挖掘了 knative 源代码和文档之后。看起来 是在MaxRevisionTimeoutSeconds中定义的resource=ConfigMap/config-defaults。所以必须用自定义值更新它。

由此看来我们可以使用名为 as 的东西operator来修改 ConfigMap 资源,但它不起作用可能是因为 gcp 不使用操作符来安装 Knative 组件。无论如何,我继续安装操作员,然后用来resource=knativeserving覆盖配置默认值。但是当我尝试重新部署服务时,这也不起作用。

下一个解决方案是使用kubectl edit. 我什至尝试这样做,但遇到了奇怪的行为。在我用来kubectl describe检查更改的值时编辑 YAML 文件后,它有时会显示修改后的值,有时会显示旧值,有时甚至不会显示 YAML 中的特定键值对。此外,在进行此编辑后尝试重新部署服务时,它也不起作用。

如果有人能帮我解决这个问题,那就太好了。

4

1 回答 1

2

MaxRevisionTimeoutSecondsTimeoutSeconds是一个集群全局设置,它在每个修订版上强制执行最大值。存在此值以便集群管理员可以设置单个 HTTP 请求可以在系统中的时间量的上限。在 HTTP 路由组件上配置正常关闭设置以防止升级期间丢失的请求时,了解上限可能很有用。

GKE 上的 Cloud Run 可能会覆盖这些配置,以便他们可以按可预测的时间表升级底层 Istio 和 Knative 组件。(如果您有 10% 的升级预算并且需要 10m 来耗尽一个组件,那么考虑到额外的调度/图像获取/启动时间,您的最短升级时间可能在 110m 左右。)

于 2020-06-14T14:27:07.640 回答