aks-node-viewer

module
v0.0.2-alpha Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2024 License: Apache-2.0

README

GitHub License contributions welcome Go Report Card

Usage

aks-node-viewer is a tool for visualizing dynamic node usage within a cluster. It was originally developed as an internal tool at AWS for demonstrating consolidation with Karpenter. It displays the scheduled pod resource requests vs the allocatable capacity on the node. It does not look at the actual pod resource usage.

Installation

Please either fetch the latest release or install manually using:

go install github.com/Azure/aks-node-viewer/cmd/aks-node-viewer@latest

Note: This will install it to your GOBIN directory, typically ~/go/bin if it is unconfigured.

Usage

Usage of ./aks-node-viewer:
  -attribution
    	Show the Open Source Attribution
  -context string
    	Name of the kubernetes context to use
  -disable-pricing
    	Disable pricing lookups
  -extra-labels string
    	A comma separated set of extra node labels to display
  -kubeconfig string
    	Absolute path to the kubeconfig file (default "~/.kube/config")
  -node-selector string
    	Node label selector used to filter nodes, if empty all nodes are selected
  -resources string
    	List of comma separated resources to monitor (default "cpu")
  -v	Display aks-node-viewer version
  -version
    	Display aks-node-viewer version

Examples

# Standard usage
aks-node-viewer
# Karenter nodes only
aks-node-viewer --node-selector "karpenter.sh/provisioner-name"
# Display both CPU and Memory Usage
aks-node-viewer --resources cpu,memory
# Display extra labels, i.e. AZ
aks-node-viewer --extra-labels topology.kubernetes.io/zone

Default Options

You can supply default options to aks-node-viewer by creating a file named .aks-node-viewer in your home directory and specifying options there. The format is option-name=value where the option names are the command line flags:

# select only Karpenter managed nodes
node-selector=karpenter.sh/provisioner-name

# display both CPU and memory
resources=cpu,memory

Building

$ make build

Or local execution of GoReleaser build:

$ make goreleaser

Source Attribution

Notice: Files in this source code originated from a fork of https://github.com/aws/eks-node-viewer which is under an Apache 2.0 license. Those files have been modified to reflect environmental requirements in AKS and Azure.

Many thanks to @ellistarn, @jonathan-innis, @tzneal, @bwagner5, @njtran, and many other developers active in the Karpenter community for laying the foundations of a Karpenter provider ecosystem!

Directories

Path Synopsis
cmd
aks-node-viewer
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
pkg
text
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL