我有一个应用程序 A 和应用程序 B
应用程序 B 并不总是需要并且运行起来可能很繁重。所以我们通常希望让应用程序 B 保持关闭
那么有没有办法延迟应用程序 B 的部署,等到收到应用程序 A 的请求以启动应用程序 B
我最初正在查看 kubernetes 作业,但它似乎总是在任务完成后打开并重新启动。任何想法?
我有一个应用程序 A 和应用程序 B
应用程序 B 并不总是需要并且运行起来可能很繁重。所以我们通常希望让应用程序 B 保持关闭
那么有没有办法延迟应用程序 B 的部署,等到收到应用程序 A 的请求以启动应用程序 B
我最初正在查看 kubernetes 作业,但它似乎总是在任务完成后打开并重新启动。任何想法?
我之前使用过 knative,它是 Kubernetes 上的无服务器解决方案。老实说,我不喜欢它,因为当时它使用了太多资源。但那是 knative 0.3,现在 0.14 可用。
因此,使用 knative 您可以创建一个部署,并且该部署可以缩放到 0,直到向该后端(pod)发出请求。当请求发出时,它会缩放到 1。如果请求太多,自然会缩放到更多。如果没有请求,在一定时间后,它会缩小到 0。似乎是你要找的。
弗里茨的回答是正确的。您可以将 pod 配置为具有足够的权限来在集群中创建资源,但我个人不会这样做。使用 knative,您只需发出一个 http 请求即可扩展。
实际上,您的建议很有可能。您需要为您的 Pod 添加足够的 RBAC 权限,例如
https://itnext.io/running-kubectl-commands-from-within-a-pod-b303e8176088
然后您必须使用 API 将部署发送到 API 服务器,例如:
https://github.com/kubernetes-client/java
话虽如此,这并不容易设置,让这个应用程序在没有请求资源的情况下在后台运行可能会更容易。