我有一个申请A和申请B
应用B并不总是需要的,而且运行起来可能会很繁重,所以我们通常要减少应用B的数量。
那么有没有办法将应用Bwait的部署延迟到收到应用A的请求后再启动应用B呢?
我最初看的是kubernetes job,但它似乎总是在任务完成后被打开并重新启动.任何想法?
我用了一段时间前 节点这是一个基于Kubernetes的无服务器解决方案。说实话,我并不喜欢它,因为当时它使用的资源太多。但那是knative 0.3,现在0.14已经有了。
所以,用knative你创建了一个部署,而这个部署可以被缩放为0,直到对这个后端(pod)提出请求。当有请求的时候,它就会扩展到1,如果请求太多,自然会扩展到更多。如果没有请求,在一定时间后,它将缩减到0,似乎是你要找的。
Fritz的回答是正确的。你可以配置一个pod有足够的权限在集群中创建资源,但我个人不会这么做。使用knative,你只需要做一个http请求,它就可以扩展。
在实践中,你所建议的是很可能的。你需要给你的Pod添加足够的RBAC权限,例如
https:/itnext.iorunning-kubectl-commands-from-within-a-pod-b303e8176088。
然后,你必须使用一个API来发送部署到API服务器上,例如
例如: https:/github.comkubernetes-clientjava。
话虽如此,但设置起来并不简单,让这个Application在后台运行而不请求资源可能会更容易。