We have an application that we are running in kubernetes. However, this application only support a fixed number of people.
It has multiple systems:
- DB
- Authentication system
- Web Application
- Media manager
We can scale the Web Application
and the Media Manager
on demand. However, the Authentication system
is not designed as to scale up to higher numbers. This is a problem too because is a close system so is not possible to modify it.
However, the system can scale by itself, behaving like a shard. And we can send different users to each shard without problems.
How can we scale up these shards
themselves?
The system now behaves like this:
- 1 DB/Authentication deployment
- 1 Web Application deployment
- HPA that checks the load of the app and scale it up as needed
- Stateful set for Media manager
- HPA that scales it up as needed
So what we need is a higher level thing that will do:
- Operator? Controller? Analyzing metrics maybe? That will scale up the following things:
- 1 DB/Authentication deployment
- 1 Web Application deployment
- HPA that checks the load of the app and scale it up as needed
- Stateful set for Media manager
- HPA that scales it up as needed
So as the load increases we are able to scale up these "shards" on demand.
I think this can be done with a controller or operator. But, is there any operator out there that already works like this?
Thanks for your help!