Skip to content

asklokesh/k9s-gui

Repository files navigation

K9s GUI - Kubernetes Management in Your Browser

K9s GUI Logo

A modern, intuitive web-based alternative to K9s terminal UI for Kubernetes cluster management

FeaturesInstallationUsageDevelopmentContributingLicense

Overview

K9s GUI brings the power of K9s to your web browser with a modern, user-friendly interface. If you find the terminal-based K9s challenging to navigate or want a more visual approach to Kubernetes management, K9s GUI is for you.

Why K9s GUI?

  • Browser-Based: Access your Kubernetes clusters from any modern web browser
  • Modern UI: Clean, intuitive interface with dark/light theme support
  • Real-time Updates: Live cluster monitoring and resource management
  • Powerful Search: Quick resource filtering and navigation
  • Keyboard Shortcuts: K9s-style keyboard navigation for power users
  • Secure: Uses your existing kubeconfig for authentication
  • Multi-Context: Easy switching between different Kubernetes contexts

Screenshots

Cluster Information View Pods View

Features

Core Features

  • Cluster Overview: Real-time cluster metrics and health status
  • Resource Management: View and manage all Kubernetes resources
    • Pods, Deployments, Services, ConfigMaps, Secrets
    • StatefulSets, DaemonSets, ReplicaSets
    • Ingresses, PersistentVolumes, StorageClasses
    • Events, Nodes, Namespaces
  • Context Switching: Seamlessly switch between different clusters
  • Namespace Filtering: View resources by namespace or across all namespaces
  • Resource Actions: View, edit, delete resources with ease
  • YAML Editor: Built-in YAML editor for resource manifests
  • Log Viewer: Stream container logs in real-time
  • Shell Access: Execute commands in containers
  • Port Forwarding: Forward ports from pods to your local machine

K9s Feature Parity

  • Keyboard shortcuts matching K9s commands
  • Fuzzy search across all resources
  • Resource utilization metrics
  • Quick actions and navigation

Installation

Prerequisites

  • Node.js 16+ and npm/yarn
  • kubectl configured with access to your Kubernetes cluster(s)
  • A Kubernetes cluster (local or remote)

Quick Start

# Clone the repository
git clone https://github.com/yourusername/k9s-gui.git
cd k9s-gui

# Install dependencies
npm install

# Start the application
npm start

# Open your browser at http://localhost:3002

Docker Installation

# Using Docker
docker run -d \
  -p 3002:3002 \
  -p 3003:3003 \
  -v ~/.kube:/home/node/.kube:ro \
  --name k9s-gui \
  k9s-gui:latest

# Using Docker Compose
docker-compose up -d

Usage

Basic Navigation

  1. Cluster Selection: Use the dropdown in the header to switch between clusters
  2. Namespace Selection: Choose a specific namespace or "All Namespaces"
  3. Resource Navigation: Click on any resource type in the sidebar
  4. Resource Actions: Click on resource names to view details

Keyboard Shortcuts

Key Action
/ Focus search
j/k Navigate up/down
Enter View resource
e Edit resource
d Describe resource
l View logs (pods)
s Shell into container
Ctrl+D Delete resource
Ctrl+K Open command palette
? Show help

Development

Project Structure

k9s-gui/
├── frontend/          # React TypeScript frontend
│   ├── src/
│   │   ├── components/   # Reusable UI components
│   │   ├── views/        # Resource-specific views
│   │   ├── features/     # Redux slices and state
│   │   └── app/          # App configuration
│   └── public/
├── backend/           # Express TypeScript backend
│   ├── src/
│   │   ├── controllers/  # API endpoints
│   │   ├── services/     # Business logic
│   │   └── config/       # Configuration
│   └── dist/
└── docs/              # Documentation

Development Setup

# Install dependencies
npm install

# Start backend in development mode
cd backend
npm run dev

# In another terminal, start frontend
cd frontend
npm start

# Run tests
npm test

# Build for production
npm run build

Technology Stack

Frontend:

  • React 18 with TypeScript
  • Redux Toolkit for state management
  • Ant Design UI components
  • React Router for navigation
  • Socket.io for real-time updates

Backend:

  • Express.js with TypeScript
  • @kubernetes/client-node for K8s API
  • Socket.io for WebSocket connections
  • Express middleware for security

Contributing

We welcome contributions! Please see our Contributing Guide for details.

How to Contribute

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • Follow the existing code style
  • Write tests for new features
  • Update documentation as needed
  • Ensure all tests pass before submitting PR

Bug Reports & Feature Requests

Found a bug or have a feature request? Please open an issue using our templates:

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • K9s - The amazing terminal UI that inspired this project
  • Kubernetes - The container orchestration platform
  • All contributors who help make this project better

Star History

Star History Chart


Made with love by the K9s GUI community

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors