Skip to main content

Kalc - the Kubernetes Calculator core

Project description

kalc, the Kubernetes calculator

License PyPI version Build Status

Overview

kalc is application aware Kubernetes rebalancing tool built on pure AI planning.

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

If your Linux host has other versions of Python installed you will recieve an error regarding "Could not find a version that satisfies the requirement kalc (from versions: )No matching distribution found for kalc"... If you recieve this, type the following to install kalc

python3.7 -m 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. You can run kalc-optimize as a cron job, wait for X minutes and then run the most recent generated script file.

Architecture

  • kalc-optimize will download current cluster state by executing kubectl get all and will start generating bash scripts into current folder
  • Each generated bash script contains a sequence of kubectl 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.

Source Distribution

kalc-0.1.5.tar.gz (48.2 kB view details)

Uploaded Source

Built Distribution

kalc-0.1.5-py3-none-any.whl (61.0 kB view details)

Uploaded Python 3

File details

Details for the file kalc-0.1.5.tar.gz.

File metadata

  • Download URL: kalc-0.1.5.tar.gz
  • Upload date:
  • Size: 48.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.2 CPython/3.7.5 Linux/5.0.0-1025-gcp

File hashes

Hashes for kalc-0.1.5.tar.gz
Algorithm Hash digest
SHA256 171f17f430180ca5e784035c3534221e686cb9f3e5b589f1ad1f08ddb1af1179
MD5 9a230e29181715e74c61ea75229ce432
BLAKE2b-256 9bbf7f7bb3dfdff05a9ecf1dc1f1c001badbbd26f7cf299f11bd30efc049596c

See more details on using hashes here.

File details

Details for the file kalc-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: kalc-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 61.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.2 CPython/3.7.5 Linux/5.0.0-1025-gcp

File hashes

Hashes for kalc-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 78d3395c21a2f123121979b974e9d2d0760768b76a2b30f028e5029e3b741069
MD5 8565428dc9ac94169195c06c81586dc8
BLAKE2b-256 9aaf23eee8cbcc0d9c4bf27e3f10f221dcaba9309ee34e8a82dd266aa9598e63

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page