We have the scenario, that we want to deploy ~300 java-applications for a in-house use-case in a kubernetes cluster. A lot of them are just used 4 times a year - and the rest of the year they are just wasting RAM.
To reduce the memory footprint we're currently discussing the following options:
- Using a kubernetes-"buildt-in" mechanism, which starts the container when a request will arrive. After a timeout of (f.e. 10 hours) the container will be suspended/hibernated.
- Offloading the RAM to disc (for specific containers) is allowed too.
- Starting the containers by a "Proxy-Webpage": First, the user have to login to a web-app, where he is searching for and selecting the desired application. OnDemand (perhaps by a kubectl command in background etc) the application will be started.
Does someone have this special use-case, too? We're starting this roject right now. So other options are helpful too. Just Java as development language is fixed.
- Is there a built-in solution in kubernetes, to reduce the memory footprint?
- Is our option #3 really a "good" solution?