Kalc - the Kubernetes Calculator core
Project description
kalc, the Kubernetes calculator
Overview
kalc
is a Kubernetes operations automation system built on pure AI planning.
Currently, kalc
provides a single command, kalc-optimize
to do automatic cluster rebalancing and optimization.
kalc
can also be used with Jupyter Lab in interactive mode.
Quick Start
Requirements
- Linux x86_64
- Python 3.7+
- 6+ GB RAM, decent CPU
- Up to 20GB of disk space in
/tmp
for generated models kubectl
installed and connected to cluster
Installation
pip install kalc
Basic usage
$ kalc-optimize
kalc-optimize
will generate bash
scripts containing kubectl
commands to get to more optimal states. Have a look at those scripts and execute any one of them, then stop and re-run kalc-optimize
.
Autopilot
kalc
can optimize your cluster in background, gradually increasing reliability by rebalancing and reducing cost by freeing nodes with low utilization.
Architecture
kalc-optimize
will download current cluster state by executingkubectl get all
and will start generatingbash
scripts into current folder- Each generated
bash
script contains a sequence ofkubectl
commands to get the cluster in a more optimal state: better balanced nodes for availability and OOM/eviction resilience and a more compact packing - As
kalc
continues to compute, it will emit more optimal states and bigger bash scripts with kubectl commands
kalc
aims to take into account current policies, anti-affility, SLO levels and best practices from successful production Kubernetes clusters.
Project Status
kalc
is a developer preview and currently supports a subset of Kubernetes resources and behaviour model.
We invite you to follow @criticalhop on Twitter and to chat with the team at #kalc
on freenode. If you have any questions or suggestions - feel free to open a github issue or contact andrew@kalc.io directly.
For enterprise enquiries, use the form on our website: kalc.io or write us an email at info@kalc.io
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.