A user-friendly platform to monitor, identify bottlenecks, and interact with your Kubernetes clusters.
Uncorking Kubernetes Bottlenecks & Insights, One Pod at a Time
- π About this Project
- π₯ Demo
- β¨ Features
- π Getting Started
- π¦ Prerequisites
- βοΈ Project Setup
- π Environment Variables
- π οΈ Manual Setup
- βοΈ AWS Integration
- π Roadmap Ahead
- π Contribution Guidelines
- π Contributors
- π License
- π€ Connect with Us
Bottlenetes is a productivity tool that helps you monitor, identify bottlenecks, and manage your Kubernetes clusters. It provides:
-
Realtime & Historical Monitoring: View the current and past status of pods and services on your cluster.
-
Intuitive Web UI: Restart pods, view logs, adjust replicas, and configure resource requests/limitsβall from your browser!
-
Latency tracking: Integrated service mesh to track latency and help identify bottlenecks in your cluster.
Why Bottlenetes?
Managing Kubernetes can be time-consuming and often requires a suite of different tools. Bottlenetes consolidates these needs into a single UI, letting you manage cluster health, resources, logs, and performance data all under one roof. Say goodbye to the days of juggling multiple dashboards! β¨
- Real-time Metrics β±οΈ: Monitor the CPU and memory usage of each pod in real time.
- K8s Resource Management π€: Debug, manage, scale, and remove workloads from a convenient UI.
- Bottlenecks Identification
β οΈ : Track latency and service mesh metrics to quickly detect inefficiencies. - Security & Permissions π: Manage user access for your dashboard.
- AI Integration π€: Enjoy automatic resource allocation recommendations powered by LLMs based on historical data.
- And More π±: Our feature set grows continuously based on community feedback.
- Docker Desktop
- Download Docker Desktop and install.
- Ensure itβs running in the background.
- Node.js
- Install the latest LTS version of Node.js.
- Homebrew (for macOS)
- Install Homebrew
- Clone this repository In your terminal, run:
git clone https://github.com/oslabs-beta/BottleNetes.git
cd bottlenetes
- Create .env.production in the root directory
# Example fields (please update with your real values for each one)
OPENAI_API_KEY=sk-proj-123456789-...
SUPABASE_URI=postgresql://postgres.abcdefg:[email protected]:6543/postgres
SUPABASE_PASSWORD=123456789
SUPABASE_ANON_KEY=abcdefg.abcedfg.abcdefg123456789
SECRET_SESSION_KEY=abcdefg123456789
NODE_ENV=production
GITHUB_CLIENT_ID=abcdefg123456789
GITHUB_CLIENT_SECRET=abcdefg123456789
GITHUB_REDIRECT_URI=http://localhost:3000/oauth/github/callback
GOOGLE_CLIENT_ID=abcdefg123456789.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=abcdefg123456789
GOOGLE_REDIRECT_URI=http://localhost:3000/oauth/google/callback
FRONTEND_URL=http://localhost:4173/
- Run the Quickstart script
A quickstart script is provided for your convenience, automating much of the setup process (you can also follow the manual setup instructions here).
- Make the quickstart script executable by running in your terminal:
chmod +x QUICKSTART.sh
- Execute the script by running:
./QUICKSTART.sh
If you are running this script for the first time, select "n" when prompted about skipping dependency installations, so everything is installed correctly.
Towards the end, youβll be asked if you want to generate fake traffic to test latency for the demo app. Choose "y" if you want traffic logs, or "n" to skip.
- Access Bottlenetes
Once the script finishes, it will:
- Install needed dependencies.
- Spin up a local Kubernetes cluster.
- Deploy a demo application.
- Launch your default browser to open both the demo app and the Bottlenetes UI.
If your browser doesnβt open automatically, navigate to http://localhost:4173/ to begin using Bottlenetes!
A quick overview of the fields in your .env.production file:
-
OPENAI_API_KEY For GPT-based services, if you leverage AI integrations.
-
SUPABASE_URI A PostgreSQL connection string provided by Supabase.
-
SUPABASE_PASSWORD The database password for your Supabase PostgreSQL instance.
-
SUPABASE_ANON_KEY The anon/public key from Supabase for client-side APIs.
-
SECRET_SESSION_KEY A secret key used to secure session data, cookies, tokens, etc.
-
NODE_ENV Typically set to "production" for a deployed environment.
-
GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET OAuth credentials for GitHub login and callbacks.
-
GITHUB_REDIRECT_URI URL to redirect to after successful GitHub authentication.
-
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET OAuth credentials for Google login.
-
GOOGLE_REDIRECT_URI URL to redirect to after successful Google authentication.
-
FRONTEND_URL The URL hosting your frontend, e.g., http://localhost:4173/.
If you prefer a manual setup or want to customize each step, please follow:
- this page for the initial manual setup.
- and this page for installing service mesh for latency tracking.
If you want to make Bottlenetes work with your AWS EKS cluster, please follow the instructions in this page.
Weβre continuously evolving Bottlenetes. Some upcoming items on our to-do list include:
- AI-Driven Auto-scaling π€: Leverage historical resource usage to scale clusters automatically.
- AI Agent Automation π€: AI agent to implement customized recommendations for resource allocation.
- Deeper EKS & Istio Integration βοΈ: Enhance multi-cloud and service mesh functionalities.
- Ephemeral Pods π οΈ: Create and inspect ephemeral pods on-the-fly for enhanced debugging.
- UI/UX Refresh π¨: Redesign dashboards for better clarity and aesthetics.
We β€οΈ contributions from the community! Hereβs how to get involved:
-
Fork the Repo Click the "Fork" button at the top-right corner of this page.
-
Create a Feature Branch
git checkout -b feature/yourNewFeatureName
-
Implement Your Feature Add your code, tests, or documentation.
-
Commit Your Changes
git commit -m "Added [your-new-feature-description]"
-
Push to Your Branch
git push origin feature/yourNewFeatureName
-
Create a Pull Request Open a PR to the dev branch (unless otherwise specified). Our team will review and, once approved, merge it in!
- Funan Wang: GitHub | LinkedIn
- Julie Hoagland-Sorensen: GitHub | LinkedIn
- Mark (Kiet) Nghiem: GitHub | LinkedIn
- Quin Kirsten: GitHub | LinkedIn
- Zoe Xu: GitHub | LinkedIn
A huge π thank you π to all our contributors β past, present, and future! π»
Distributed under the MIT License. Please see LICENSE
for more information.
If you enjoy Bottlenetes, please drop us a β on GitHub, share with your dev circle, and help our community grow! π