A quick and dirty kubernetes cost estimator
Project description
skrooge
A quick and dirty kubernetes cost estimator
Ebenezer scrooge standing at the helm of a ship, pencil sketch
Idea
I've been manually calculating how much scaling kubernetes deployments up or down will cost (or save!). It's a bit of grunt work every time pulling together our instance types, figuring out if the deployment is cpu-bound or memory-bound, and working out the cost. Instead we could have a CLI tool (or potentially automated during CI down the road) that could calculate these numbers for us.
Previous example (in english):
It would be nice to have a CLI tool which could do these calculations for us (and integrate with GCP pricing / instance APIs to get instance shapes and costs automatically)
Pod size: 2 cpu, 3GB RAM
Previous deployment: 32 cpu, 48GB RAM
New deployment: 64 cpu, 96GB RAM
Running on c2-standard-30 which have 30 cpu, 120GiB RAM, and cost $914/month
Up to 2 new instances to support +32 CPU, cost $1828 / month ($21,936 / year)
How a CLI tool could work:
$ kubecost --cpu 32 --mem 48 --instance c2-standard-30
c2-standard-30: 30 cpu, 120GiB RAM, $914/month
Limiting factor: CPU (ceil(32/30) = 2)
Cost: $1828 / month ($21,936 / year)
Installation
Install this tool using pip
:
pip install skrooge
Usage
For help, run:
skrooge --help
You can also use:
python -m skrooge --help
Development
To contribute to this tool, first checkout the code. Then create a new virtual environment:
cd skrooge
python -m venv venv
source venv/bin/activate
Now install the dependencies, test dependencies, and GCP cost scraping dependencies:
pip install -e '.[lint,scrape,test]'
To run the tests:
pytest
To update the instances.json file:
python3 skrooge/scraper.py > skrooge/instances.json
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file skrooge-1.0.2.tar.gz
.
File metadata
- Download URL: skrooge-1.0.2.tar.gz
- Upload date:
- Size: 171.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7461d04c5a6f29621d05a3f9c67bd401ab21ae1b6ad65d0cec60101fbc01052 |
|
MD5 | 29744387e9045fd34bbbfefb67647df8 |
|
BLAKE2b-256 | 4c5596ab08dd445c8aed95362670de6bec0ddae7d33b9f5ad6e40feac1f14600 |
File details
Details for the file skrooge-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: skrooge-1.0.2-py3-none-any.whl
- Upload date:
- Size: 175.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef5d7ac45a07779ea2c14c41661d08d3d4b27bdb00252f188190d0d9781a8d23 |
|
MD5 | 61940e6e8418545bb9bca5af7670e8cc |
|
BLAKE2b-256 | d08775ca95a370d80096e30a327f255899a9fdf18780da245a21af41ef7f9094 |