This service evaluates POD parameters to determine a better configuration to improve the resource use reducing the total number of nodes a cluster will need.
The current resources spec is taken from the POD controller and K8AutoTune will monitor the POD activity so both values will be checked adjusting their values if there is a big gap between both values.
Different strategies will be allowed to decide the best value for each use profile.
To recreate mocks do:
$GOPATH/bin/mockery --all
- Handle Deployments
- Measure CPU activity
- Automatically adjust CPU ussage
- Use Prometheus as metrics source
- Update limit if needed
- Allow to configure namespaces to include
- Persist metrics ussage locally in file system
- Automatically adjust Memory ussage
- Allow to annotate objects to configure behaviour
- Configure by custom resource
- Emit allert of changes
- Emit allert of exceptional conditions (like possible memory leaks)
- Take into account warm-up times for heavy PODs (like those that use a JVM)
- Let one controller to stabilize before tuning next
- [ ]
Here many sources with good ideas many of them used in this project