Skip to content

guessi/eks-node-diagnostic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eks-node-diagnostic

GitHub Actions GoDoc Go Report Card GitHub release GitHub go.mod Go version

Friendly NodeDiagnostic apply with no dependency 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

👀 Key differences with official guidance

  • 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

Get config.yaml ready, you may find examples at examples/ folder.

Execute

eks-node-diagnostic [--config-file config.yaml]
nodediagnostic.eks.amazonaws.com/i-EXAMPLE1111111111 created
nodediagnostic.eks.amazonaws.com/i-EXAMPLE2222222222 created
nodediagnostic.eks.amazonaws.com/i-EXAMPLE3333333333 created
...

Check

kubectl describe nodediagnostics

:accessibility: FAQ

Where can I find log archive generated by NodeDiagnostic when destinationType set as s3?

  • Log archive generated by NodeDiagnostic would be placed at path below,

    s3://{{ BUCKET }}/node-diagnostic/log__{{ REGION }}__{{ NODE_NAME }}__{{ TIMESTAMP }}.tar.gz

Where can I find log archive generated by NodeDiagnostic when destinationType set as node?

  • Generic Linux: Log should be available at /var/log/support/${NODE_NAME}$-logs.tar.gz
  • Bottlerocket: Log should be available at /.bottlerocket/support/${NODE_NAME}$-logs.tar.gz

How do I report an issue or submit a feature request?

  • Please go for project's issue page and describe your idea in detail.

What is the version requirement for destinationType: node?

👷 Install

For macOS/Linux users (Recommended)

Brand new install

brew tap guessi/tap && brew update && brew install eks-node-diagnostic

To upgrade version

brew update && brew upgrade 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

About

Friendly `NodeDiagnostic` apply with no dependency required

Topics

Resources

License

Stars

Watchers

Forks

Contributors