Kubernetes POD memory limits and usage overview.
Project description
kube-cargo-load
List Kubernetes PODs of a specific namespace or all namespaces with their configured memory or cpu requests, limits and the current memory or cpu usage.
Features
- Overview of PODs and their memory or cpu requests, limits and actual usage
- Provides an easy inspection of the cluster utilization in terms of memory or cpu
- Uses
kubectlunder the hood and reuses its config - Supports
--namespaceand--all-namespacescommand line arguments - Supports
--contextcommand line argument filters and column setup
Example:
[15:09:58] enrico@host (0): ~% kubecargoload.py --all-namespaces
Namespace Name Requests Limits Usage %
----------------------------------------------------------------------------------------------------------
default kube-web-view-7c67ddb647-pvjvs 100.0 Mi 100.0 Mi 29.0 Mi 29.00 %
jitsi jitsi-57d5888c88-vzrzl 0.0 B 0.0 B 137.0 Mi 0.00 %
kube-system coredns-66bff467f8-qn4pq 70.0 Mi 170.0 Mi 13.0 Mi 7.65 %
kube-system coredns-66bff467f8-znpxv 70.0 Mi 170.0 Mi 11.0 Mi 6.47 %
kube-system etcd-minikube 0.0 B 0.0 B 58.0 Mi 0.00 %
kube-system kindnet-ptgnz 50.0 Mi 50.0 Mi 13.0 Mi 26.00 %
kube-system kube-apiserver-minikube 0.0 B 0.0 B 257.0 Mi 0.00 %
kube-system kube-controller-manager-minikube 0.0 B 0.0 B 50.0 Mi 0.00 %
kube-system kube-proxy-s7bl8 0.0 B 0.0 B 16.0 Mi 0.00 %
kube-system kube-scheduler-minikube 0.0 B 0.0 B 19.0 Mi 0.00 %
kube-system metrics-server-7bc6d75975-d6sgr 0.0 B 0.0 B 13.0 Mi 0.00 %
kube-system nginx-ingress-controller-6d57c87cb9-tgwwm 0.0 B 0.0 B 0.0 B 0.00 %
kube-system storage-provisioner 0.0 B 0.0 B 15.0 Mi 0.00 %
----------------------------------------------------------------------------------------------------------
Summary (PODs without configured limits ignored) 290.0 Mi 490.0 Mi 66.0 Mi 13.47 %
Setup
Requirements
In order to use kube-cargo-load, you will need:
- A Kubernetes cluster to connect to
- Kubernetes Metrics Server must be installed and running in Kubernetes (https://github.com/kubernetes-sigs/metrics-server)
- kubectl (it must be configured for your Kubernetes cluster)
- Python 3.6 or newer
Installation
The easiest method is to install directly from pypi using pip:
pip install kube-cargo-load
If you prefer, you can download kube-cargo-load and install it directly from source:
python setup.py install
Download
Alternatively, you can download just the script and execute it:
wget https://raw.githubusercontent.com/eht16/kube-cargo-load/master/kubecargoload.py
chmod +x kubecargoload.py
./kubecargoload.py
Command line options
usage: kubecargoload.py [-h] [-A] [--context CONTEXT] [-d] [-n NAMESPACE] [-H] [-s SORT] [-V]
optional arguments:
-h, --help show this help message and exit
-A, --all-namespaces list the requested object(s) across all namespaces (default: False)
-c, --cpu show cpu instead of memory (default: False)
--context CONTEXT the name of the kubeconfig context to use (default: None)
-d, --debug enable tracebacks (default: False)
-n NAMESPACE, --namespace NAMESPACE
namespace to use (default: default)
-H, --no-headers do not print header line before the output (default: False)
-s SORT, --sort SORT sort by column(s), to sort by multiple columns seperate them with comma. Valid options: namespace,name,requests,limits,usage,ratio (default: namespace,name)
-V, --version show version and exit (default: False)
Get the Source
The source code is available at https://github.com/eht16/kube-cargo-load/.
ChangeLog
1.2 / 2020-05-24
* Add support for -c/--cpu flag (#3, Kurounin)
* Round humanized usage values to have more accurate numbers
* Add unit tests
1.1 / 2020-04-15
* Fix Python 3.6 compability (#1, Adrian Gajan)
* Improve docs
* Fix display units (KB -> Ki)
* Consider only PODs with configured limits in the summary
1.0 / 2020-04-12
* Initial release
Contributing
Found a bug or got a feature request? Please report it at https://github.com/eht16/kube-cargo-load/issues.
Author
Enrico Tröger enrico.troeger@uvena.de
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kube-cargo-load-1.2.tar.gz.
File metadata
- Download URL: kube-cargo-load-1.2.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
342a16a4a61dc76c42e386b8953ffd957dc97e88fd0979b49fc4009b15bf5fab
|
|
| MD5 |
af9768cf9d365ff099d7ffd072a89dde
|
|
| BLAKE2b-256 |
1be0b7f8366837fe36f955223af3b54c7d27a454fa4c8624dc5f08d8bb9ec073
|
File details
Details for the file kube_cargo_load-1.2-py2.py3-none-any.whl.
File metadata
- Download URL: kube_cargo_load-1.2-py2.py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47255b8c77eacc0e8648a8aca3a03c1b7f2d9d12665cd66fe023e1aba84a8a0d
|
|
| MD5 |
99628d64cc193db2384c49f80e654f56
|
|
| BLAKE2b-256 |
42a9ca905263044fc814d21d5ced5d123c85936c00e4d601d101b5f8cc22acfa
|