OpenWhisk 调用程序代理挂起时间

OpenWhisk Invoker Agent Suspend Time

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

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

默认的空闲超时是 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

一旦干细胞容器被使用,nanny process会更换新的容器,这样预热容器的数量一般应该是恒定的。