GitHub - robscott/kube-capacity: A simple CLI that provides an overview of the r...
source link: https://github.com/robscott/kube-capacity
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
kube-capacity
This is a simple CLI that provides an overview of the resource requests, limits, and utilization in a Kubernetes cluster. It attempts to combine the best parts of the output from kubectl top
and kubectl describe
into an easy to use CLI focused on cluster resources.
Installation
Go binaries are automatically built with each release by GoReleaser. These can be accessed on the GitHub releases page for this project.
Homebrew
This project can also be installed with Homebrew:
brew tap robscott/tap
brew install robscott/tap/kube-capacity
Usage
By default, kube-capacity will output a list of nodes with the total CPU and Memory resource requests and limits for all the pods running on them. For clusters with more than one node, the first line will also include cluster wide totals. That output will look something like this:
kube-capacity
NODE CPU REQUESTS CPU LIMITS MEMORY REQUESTS MEMORY LIMITS
* 560m (28%) 130m (7%) 572Mi (9%) 770Mi (13%)
example-node-1 220m (22%) 10m (1%) 192Mi (6%) 360Mi (12%)
example-node-2 340m (34%) 120m (12%) 380Mi (13%) 410Mi (14%)
Including Pods
For more detailed output, kube-capacity can include pods in the output. When -p
or --pods
are passed to kube-capacity, it will include pod specific output that looks like this:
kube-capacity --pods
NODE NAMESPACE POD CPU REQUESTS CPU LIMITS MEMORY REQUESTS MEMORY LIMITS
* * * 560m (28%) 780m (38%) 572Mi (9%) 770Mi (13%)
example-node-1 * * 220m (22%) 320m (32%) 192Mi (6%) 360Mi (12%)
example-node-1 kube-system metrics-server-lwc6z 100m (10%) 200m (20%) 100Mi (3%) 200Mi (7%)
example-node-1 kube-system coredns-7b5bcb98f8 120m (12%) 120m (12%) 92Mi (3%) 160Mi (5%)
example-node-2 * * 340m (34%) 460m (46%) 380Mi (13%) 410Mi (14%)
example-node-2 kube-system kube-proxy-3ki7 200m (20%) 280m (28%) 210Mi (7%) 210Mi (7%)
example-node-2 tiller tiller-deploy 140m (14%) 180m (18%) 170Mi (5%) 200Mi (7%)
Including Utilization
To help understand how resource utilization compares to configured requests and limits, kube-capacity can include utilization metrics in the output. It's important to note that this output relies on metrics-server functioning correctly in your cluster. When -u
or --util
are passed to kube-capacity, it will include resource utilization information that looks like this:
kube-capacity --util
NODE CPU REQUESTS CPU LIMITS CPU UTIL MEMORY REQUESTS MEMORY LIMITS MEMORY UTIL
* 560m (28%) 130m (7%) 40m (2%) 572Mi (9%) 770Mi (13%) 470Mi (8%)
example-node-1 220m (22%) 10m (1%) 10m (1%) 192Mi (6%) 360Mi (12%) 210Mi (7%)
example-node-2 340m (34%) 120m (12%) 30m (3%) 380Mi (13%) 410Mi (14%) 260Mi (9%)
Including Pods and Utilization
For more detailed output, kube-capacity can include both pods and resource utilization in the output. When --util
and --pods
are passed to kube-capacity, it will result in a wide output that looks like this:
kube-capacity --pods --util
NODE NAMESPACE POD CPU REQUESTS CPU LIMITS CPU UTIL MEMORY REQUESTS MEMORY LIMITS MEMORY UTIL
* * * 560m (28%) 780m (38%) 340m (17%) 572Mi (9%) 770Mi (13%) 470Mi (8%)
example-node-1 * * 220m (22%) 320m (32%) 160m (16%) 192Mi (6%) 360Mi (12%) 210Mi (7%)
example-node-1 kube-system metrics-server-lwc6z 100m (10%) 200m (20%) 70m (7%) 100Mi (3%) 200Mi (7%) 120Mi (4%)
example-node-1 kube-system coredns-7b5bcb98f8 120m (12%) 120m (12%) 90m (9%) 92Mi (3%) 160Mi (5%) 90Mi (3%)
example-node-2 * * 340m (34%) 460m (46%) 180m (18%) 380Mi (13%) 410Mi (14%) 260Mi (9%)
example-node-2 kube-system kube-proxy-3ki7 200m (20%) 280m (28%) 110m (11%) 210Mi (7%) 210Mi (7%) 120Mi (4%)
example-node-2 tiller tiller-deploy 140m (14%) 180m (18%) 70m (7%) 170Mi (6%) 200Mi (7%) 140Mi (5%)
It's worth noting that utilization numbers from pods will likely not add up to the total node utilization numbers. Unlike request and limit numbers where node and cluster level numbers represent a sum of pod values, node metrics come directly from metrics-server and will likely include other forms of resource utilization.
Prerequisites
Any commands requesting cluster utilization are dependent on metrics-server running on your cluster. If it's not already installed, you can install it with the official helm chart.
Kubernetes Configuration
If a KUBECONFIG
environment variable is specified, kube-capacity will attempt to use the config at that path, otherwise it will default to ~/.kube/config
.
Similar Projects
There are already some great projects out there that have similar goals.
- kube-resource-report: generates HTML/CSS report for resource requests and limits across multiple clusters.
- kubetop: a CLI similar to top for Kubernetes, focused on resource utilization (not requests and limits).
License
Apache License 2.0
Recommend
-
2
Instagram Provides the Capacity to Add Music to Still Image Posts Published Nov. 10, 2022 By
-
6
TikTok Provides New Video Overview of How to Set Up a TikTok Ad Campaign Are you looking to add TikTok into your digital marketing mix in 2021? The short-form video app has seen huge gro...
-
1
YouTube Provides New Overview of How its Video Recommendation Systems Work YouTube has published a handy new overview of how its recommendation system work...
-
5
LinkedIn Provides an Overview of Effective Ad Targeting [Infographic] Published May 6, 2021 By
-
3
Pinterest Provides an Overview of Content Removal Trends in the Second Half of 2020 Published May 27, 2021 By
-
4
Facebook Provides New Overview of its Efforts to Combat Racist Abuse Online in the Wake of Euro 2020 Published July 15, 2021 By
-
2
Facebook Provides New Overview of Oversight Board Decisions and Actions Published July 15, 2021 By
-
4
Instagram Provides New Overview of How its Reels Algorithm Works Published Aug. 4, 2021 By
-
3
Facebook Provides Updated Overview of its Verification Guidelines for Facebook and Instagram Published Sept. 2, 2021 By
-
1
Google Provides New Overview of Key Display Network Best Practices and Tips [Infographic] Published July 12, 2022 By
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK