K8s Cluster Management + AI Assistant Platform
đ¨đŗ įŽäŊ䏿 | đēđ¸ English
## Table of Contents - [Introduction](#introduction) - [Features](#features) - [Tech Stack](#tech-stack) - [Project Structure](#project-structure) - [Quick Start](#quick-start) - [Configuration](#configuration) - [API Reference](#api-reference) - [Deployment](#deployment) - [Contributing](#contributing) - [License](#license) ## Introduction Kubernetes AI Dashboard is a Kubernetes management platform built for **Ops teams**, integrating an AI assistant and an MCP toolchain. It uses Fabric8 Kubernetes Client for full-resource management, Spring AI for tool-calling and chat, and ships with a built-in A2A (Agent-to-Agent) protocol framework. > [!NOTE] > Designed for operations scenarios â unified K8s cluster resource management with AI-assisted ops. ## Features - â¸ī¸ **Full K8s Resource Management**: CRUD for Namespace / Pod / Deployment / Service / Ingress / PVC / ConfigMap / Secret / Event / Job / CRD - đ **Cluster Monitoring**: node status and resource usage statistics - đ **Resource Ownership Tracking**: resources created via the platform are tracked per user; users can only delete their own - đ¤ **AI Chat**: Spring AI integration with tool-calling, streaming responses, and conversational memory - đ **MCP Toolchain**: 7 built-in MCP tool services (K8s / System Info / Command Line / File / SSH / OSS / Docker Registry) - đ¤ **A2A Protocol Framework**: Agent-to-Agent JSON-RPC 2.0 endpoint with reserved extension point - đž **Object Storage**: MinIO integration, auto-creates bucket - đ **Auth**: Sa-Token, 32-char random token, Redis-backed sessions ## Tech Stack | Category | Technology | Version | |----------|------------|---------| | Language | Java | 21 | | Framework | Spring Boot | 3.5.8 | | AI Framework | Spring AI | 1.1.4 | | K8s Client | Fabric8 Kubernetes Client | 6.9.2 | | ORM | MyBatis Plus | 3.5.14 | | Auth | Sa-Token | 1.44.0 | | Object Storage | MinIO | 8.6.0 | | Database | MySQL | 8.0+ | | Cache | Redis | 7.0+ | | Frontend Framework | Vue | 3.5 | | Frontend Build | Vite | 8 | | UI Components | Element Plus | 2.13 | ## Project Structure ```mermaid graph TD A[kubernetes-ai-dashboard] --> B[dashboard backend app] A --> C[dashboard-fe frontend] A --> D[common shared module] A --> E[ai-base AI core] A --> F[oss object storage] A --> G[user auth] A --> H[search full-text search] A --> I[message site messages] ``` ``` kubernetes-ai-dashboard/ âââ dashboard/ # Backend main app (cc.shiyi.dashboard) âââ dashboard-fe/ # Frontend app (Vue 3) âââ common/ # Shared module (AOP annotations, utils) âââ ai-base/ # AI core (ChatClient pool, chat memory) âââ oss/ # Object storage (MinIO) âââ user/ # Auth (Sa-Token) âââ search/ # Full-text search (Lucene) âââ message/ # Site messages âââ pom.xml ``` ## Quick Start ### Prerequisites - JDK 21+ - Maven 3.9+ - Node.js 18+ - Docker & Docker Compose - Kubernetes cluster v1.24+ ### Start Dependencies ```bash cd docker docker-compose up -d mysql redis minio ``` ### Backend ```bash mvn clean install -DskipTests cd dashboard mvn spring-boot:run ``` Backend runs at http://localhost:8080 ### Frontend ```bash cd dashboard-fe npm install npm run dev ``` Frontend runs at http://localhost:3000 ## Configuration Config file: `dashboard/src/main/resources/application.yml`. All values support `${ENV_VAR:default}` overrides. | Env Var | Description | Default | |---------|-------------|---------| | `SPRING_DATASOURCE_URL` | MySQL JDBC URL | jdbc:mysql://localhost:3306/mpi_dashboard | | `SPRING_DATA_REDIS_HOST` | Redis host | localhost | | `MINIO_ENDPOINT` | MinIO URL | http://localhost:9000 | | `SPRING_AI_OPENAI_BASE_URL` | AI API URL | https://api.deepseek.com | | `SPRING_AI_OPENAI_API_KEY` | AI API Key | `