首页 > 解决方案 > OpenWhisk 调用程序代理暂停时间

问题描述

在 Rancher 上部署 Openwhisk,启用 kubernetesContainerFactory 和 Invoker Agent。调用 hello.js 操作并 wsk 创建了 pod wskowdev-invoker-00-1-prewarm-nodejs10 和 wskowdev-invoker-00-2-prewarm-nodejs10。Pod 1 在 15 分钟后被移除,但 Pod 2 从未被调用者代理移除。我的理解是在指定的时间段后应该暂停豆荚。请阐明调用程序代理和 pod 暂停/删除的工作原理。

标签: serverlessopenwhisk

解决方案


其中一个预热的容器在使用后被移除。另一个仍然是原始的并且仍然存在/未回收。这称为干细胞容器。一旦容器被专门化(用用户代码初始化),它就会在以后进行垃圾收集。

但是,默认空闲超时为 10 分钟,而不是每个此配置的 15 分钟,除非被覆盖。

https://github.com/apache/incubator-openwhisk/blob/2f0155fb750ce8b5eef6d5b0f4e2e2db40e5a037/core/invoker/src/main/resources/application.conf#L103-L110

干细胞的数量特定于运行时并由运行时清单确定。例如:https ://github.com/apache/incubator-openwhisk/blob/ce45d54c824ef6c3e5d98ce0b220b924c81e688b/ansible/files/runtimes.json#L45-L50

一旦使用了干细胞容器,保姆程序将用一个新容器替换它,因此预热容器的数量通常应该是恒定的。


推荐阅读