Watch requested CPU/Memory, scale AWS AutoScaler Worker group based on thresholds
2.3K
Speculator is an automated scaling service for AWS EC2 AutoScale Groups based on Kubernetes Pod CPU/Memory Request Percentages of the cluster.
Default Ideal range is lower than typical solutions (40%-57%) because of the way Deis deploys on my cluster. Range is modifyable via environment variables.
I still build and deploy this in deis (aka: git push) but basic binary should be
buildable with a go build -o speculator *.go
Currently, its built to look at the Kubernetes internal API and will need a service account. I'm not using RBAC at the moment because of Deis as well.
It needs a few environment variables in order to run.
ASGROUPNAME - AWS AutoScaler Group Name
AWSREGION - AWS Region (default: us-east-1)
ENABLED - TRUE|FALSE Enable scaling to take place (default: False)
DISABLECOOLDOWN - TRUE|FALSE - Disable AWS ASG Cooldown timeout period
CPUWATERMARK - CPU Requests Watermark Percentage, When to scale down (default:"40")
CPUTHRESHOLD - CPU Threshold Percentage, When to scale up (default:"56")
AWS_ACCESS_KEY - AWS KEY with permissions to ASG
AWS_SECRET_ACCESS_KEY - AWS KEY with permissions to ASG
Prometheus metrics are exported (default port 5000 /metrics). Metrics are prefixed with speculator
Thorough documentation is on the wiki.

Check out CONTRIBUTING.md for notes on making contributions.
This library is licensed under the Apache 2.0 License.
Content type
Image
Digest
Size
37.2 MB
Last updated
almost 8 years ago
docker pull undeadops/speculator