Skip to main content

Kubernetes POD memory limits and usage overview.

Project description

kube-cargo-load

PyPI Python Versions License

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 kubectl under the hood and reuses its config
  • Supports --namespace and --all-namespaces command line arguments
  • Supports --context command 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:

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kube-cargo-load-1.2.tar.gz (12.3 kB view hashes)

Uploaded source

Built Distribution

kube_cargo_load-1.2-py2.py3-none-any.whl (11.7 kB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page