An experiment about predicting cluster size using historical data.
To build, use go 1.20+, then type go build in the root of project.
Demo:
Apply the predictive_node_scaling_demo.yaml manifest
It will generate a sample data series in the init container and dump it into the the /data volume
The generated data currently sine-wave oscillates over an hour so it's fast enough that you can see it predict scale your machineset while you're watching it
Then the predictive-cluster-sizer "controller" will feed the generated data into the prediction server in autoscaler-predictor-model to fit the model to the data
Then the predictive-cluster-sizer "controller" will start asking the autoscaler-predictor-model for predictions
The predictive-cluster-sizer will use those predictions to scale the machineset in your cluster (for now, the first machineset it sees)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.