eks-node-diagnostic

Friendly NodeDiagnostic generator with no Python/SDK required
π€ Why we need this? what it is trying to resolve?
Back on December 3, 2024, Amazon EKS announced Amazon EKS Auto Mode and how to use NodeDiagnostic for troubleshooting. However, not all computers have a pre-set Python environment, and it may be difficult for people who are not familiar with Python, let alone solving package dependencies, version conflicts, and virtual environment setting issues.
To remove these obstacles, eks-node-diagnostic comes to solve this complex problem, aiming to simplify the entire process into executing binaries, easy to install without having to deal with Python dependencies.
π’ Prerequisites
- An existing Amazon EKS cluster with the node monitoring agent.
- An existing Amazon S3 bucket for storing node logs generated by
NodeDiagnostic.
- An IAM Role/User with
s3:PutObject permission (to generate presigned S3 url).
- Single executable binary only, no Python and no AWS SDK required.
- Run anywhere, compatible with Linux (amd64/arm64), Windows (amd64 only), macOS (amd64/arm64).
- Friendly setup with Homebrew for mac users.
π Quick start
$ eks-node-diagnostic --help
Apply in batch:
$ cat config.yaml
---
region: us-east-1
expiredSeconds: 300
bucketName: node-diagnostic-EXAMPLE
nodes:
- i-EXAMPLE1111111111
- i-EXAMPLE2222222222
- i-EXAMPLE3333333333
...
$ eks-node-diagnostic -c config.yaml | kubectl apply -f -
nodediagnostic.eks.amazonaws.com/i-EXAMPLE1111111111 created
nodediagnostic.eks.amazonaws.com/i-EXAMPLE2222222222 created
nodediagnostic.eks.amazonaws.com/i-EXAMPLE3333333333 created
...
Apply one-by-one slowly:
$ eks-node-diagnostic -r ${REGION} -n ${NODE} -b ${BUCKET} | kubectl apply -f -
nodediagnostic.eks.amazonaws.com/i-EXAMPLE created
:accessibility: FAQ
Where can I find log archive generated by NodeDiagnostic?
How do I report an issue or submit a feature request?
- Please go for project's issue page and describe your idea in detail.
π· Install
For macOS users (Recommended)
brew tap guessi/tap && brew update && brew install eks-node-diagnostic
Manually setup (Linux, Windows, macOS)
Click to expand!
For Linux users
curl -fsSL https://github.com/guessi/eks-node-diagnostic/releases/latest/download/eks-node-diagnostic-Linux-$(uname -m).tar.gz -o - | tar zxvf -
mv -vf ./eks-node-diagnostic /usr/local/bin/eks-node-diagnostic
For macOS users
curl -fsSL https://github.com/guessi/eks-node-diagnostic/releases/latest/download/eks-node-diagnostic-Darwin-$(uname -m).tar.gz -o - | tar zxvf -
mv -vf ./eks-node-diagnostic /usr/local/bin/eks-node-diagnostic
For Windows users
$SRC = 'https://github.com/guessi/eks-node-diagnostic/releases/latest/download/eks-node-diagnostic-Windows-x86_64.tar.gz'
$DST = 'C:\Temp\eks-node-diagnostic-Windows-x86_64.tar.gz'
Invoke-RestMethod -Uri $SRC -OutFile $DST
βοΈ License
Apache-2.0