<p>I have an application A and application B</p>

<p>application B is not always needed and may be heavy to run.
so we want to keep application B down usually</p>

<p>so is there a way to delay the deployment of application B
wait until receiving request from application A to launch application B</p>

<p>I was initially looking at kubernetes job,
but it seems to be always turned on and restarted after task completion.
any idea?</p>

Mike_H
<p>I used while ago <a href="https://github.com/knative/serving" rel="nofollow noreferrer">knative</a>, which is a serverless solution on Kubernetes. I didn't like it, honestly, that much becuase back then it was using too much resources. But that was knative 0.3, now 0.14 is available.</p>

<p>So, with knative you create a deployment, and that deployment can be scaled to 0, until a request is made to that backend (pod). When the request is made, it will scale to 1. If there are too many requests, naturally it will scale to even more. And if there are no requests, after certain time, it will scale back to 0. Seems to be what you are looking for.</p>

<p>Fritz's answer is correct. You can configure a pod to have enough privileges to create resources in the cluster, but personally I wouldn't do it. With knative, you just make an http request an it scales.</p>
