eks-node-viewer
eks-node-viewer copied to clipboard
EKS Node Viewer
Usage
eks-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.

Talks Using eks-node-viewer
- Containers from the Couch: Workload Consolidation with Karpenter
- AWS re:Invent 2022 - Kubernetes virtually anywhere, for everyone
Installation
go install github.com/awslabs/eks-node-viewer/cmd/eks-node-viewer@latest
Note: This will install it to your GOBIN directory, typically ~/go/bin if it is unconfigured.
Usage
Usage of ./eks-node-viewer:
-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")
Examples
# Standard usage
eks-node-viewer
# Karenter nodes only
eks-node-viewer --node-selector "karpenter.sh/provisioner-name"
# Display both CPU and Memory Usage
eks-node-viewer --resources cpu,memory
# Specify a particular AWS profile and region
AWS_PROFILE=myprofile AWS_REGION=us-west-2
Default Options
You can supply default options to eks-node-viewer by creating a file named .eks-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
Troubleshooting
NoCredentialProviders: no valid providers in chain. Deprecated.
This CLI relies on AWS credentials to access pricing data if you don't use the --disable-pricing option. You must have credentials configured via ~/aws/credentials, ~/.aws/config, environment variables, or some other credential provider chain.
See credential provider documentation for more.
I get an error of creating client, exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"
Updating your AWS cli to the latest version and updating your kubeconfig should resolve this issue.
Development
Building
$ make build