kubernetes延迟部署

时间:2020-05-19 21:53:24

标签: kubernetes kubernetes-jobs

我有一个应用程序A和一个应用程序B

应用程序B并非总是需要的,并且可能很重。 因此我们通常希望将应用B保持关闭状态

有没有办法延迟应用程序B的部署 等到收到来自应用程序A的启动应用程序B的请求

我最初是在寻找kubernetes的工作, 但是它似乎总是打开并在任务完成后重新启动。 有什么主意吗?

2 个答案:

答案 0 :(得分:2)

我之前使用过knative,它是Kubernetes上的无服务器解决方案。老实说,我不喜欢它,因为那是因为它使用了太多的资源。但这是0.3的基数,现在是0.14。

因此,使用knative,您可以创建一个部署,并且可以将该部署缩放为0,直到对该后端(pod)发出请求为止。发出请求后,它将缩放为1。如果请求太多,则自然会缩放到甚至更多。并且,如果没有请求,则在一定时间后,它会缩小为0。似乎就是您要的内容。

弗里茨的答案是正确的。您可以将Pod配置为具有足够的特权,以便在集群中创建资源,但就我个人而言,我不会这样做。使用knative,您只需发出一个http请求即可缩放。

答案 1 :(得分:0)

实际上,您的建议是完全可能的。您需要为您的Pod添加足够的RBAC权限,例如

https://itnext.io/running-kubectl-commands-from-within-a-pod-b303e8176088

然后,您必须使用API​​将部署发送到API服务器,例如:

https://github.com/kubernetes-client/java

话虽如此,这并不容易设置,而让该应用程序在后台运行而无需请求的资源可能会更容易。