Open source is not easy. If you find CiliKube helpful or inspiring, please consider giving it a Star ⭐! Your encouragement is the primary motivation for the author to maintain and update the project regularly.
Follow the WeChat Official Account 希里安 to get the latest project updates and tech sharing!
Thanks to all the contributors who have contributed to CiliKube. Your efforts make this project better.
CDN acceleration and security protection for this project is sponsored by Tencent EdgeOne
CiliKube is an open-source, full-stack Kubernetes multi-cluster resource management platform built with modern mainstream technology stack (Vue3, TypeScript, Go, Gin). It aims to provide a concise and elegant interface to simplify daily Kubernetes resource management (CRUD operations) while supporting feature extensions. It's an excellent choice for beginners learning k8s development.
Unlike complex systems pursuing "large and comprehensive" features, CiliKube focuses on being "small and beautiful." Its core goals are:
- Core Functionality: Offers a clear, intuitive interface for managing common K8s resources.
- Learning-Friendly: Features clean code structure and a modern tech stack, making it an excellent starting point for learning Vue3/Go Web Development and custom Kubernetes tooling/development.
- Easy to Extend: Designed with extensibility in mind, allowing users to easily add custom features based on their needs.
- Developers looking to learn Vue3 + TypeScript + ElementPlus frontend development.
- Developers looking to learn Go + Gin backend development.
- Cloud-native enthusiasts interested in using the Kubernetes API and client-go.
- Teams or individuals needing a concise K8s management dashboard with the potential for customization.
CiliKube originated from the author's practical project while learning full-stack web development. During the learning process, the author delved deep into Kubernetes and obtained relevant certifications. This project is not just a demonstration of learning outcomes but also aims to be a "Key," helping more learners like the author open the door to the open-source world, contribute, and grow together.
- Online Demo: http://cilikubedemo.cillian.website
- Demo Credentials:
- Username: admin
- Password: 12345678
- Official Documentation: cilikube.cillian.website
This project utilizes popular frontend and backend technology stacks, ensuring developers can engage with the latest tools and libraries.
Environment Requirements (Recommended):
- Node.js >= 18.0.0 (Project developed with v22.14.0)
- Go >= 1.20 (Project developed with v1.24.2)
- PNPM >= 8.x
Frontend: Vue3
TypeScript
Vite
Element Plus
Pinia
Vue Router
Axios
UnoCSS
Scss
ESLint
Prettier
- Developed based on the excellent v3-admin-vite template, thanks to the original author un-pany.
Backend: Go
Gin
Kubernetes client-go
JWT
Gorilla Websocket
Viper
Zap Logger
- User Authentication: JWT-based login and authorization.
- Dashboard: Cluster resource overview.
- Multi-Cluster Management: Support for managing multiple Kubernetes clusters.
- Resource Management:
- Node Management
- Namespace Management
- Pod Management (List, Details, Logs, Terminal)
- Volume Management (PV/PVC)
- Configuration Management (ConfigMap/Secret)
- Network Management (Service/Ingress)
- Workload Management (Deployment/StatefulSet/DaemonSet)
- System Settings: Theme switching, Internationalization (i18n) support.
Frontend
- Login Page
- Basic Layout (Sidebar, Topbar, Tabs)
- Notifications
- Workload Resource Pages (Deployment, StatefulSet, DaemonSet, etc.)
- Configuration Management Pages (ConfigMap, Secret)
- Network Resource Pages (Service, Ingress)
- Storage Resource Pages (StorageClass, PV, PVC)
- Access Control Pages (RBAC - ServiceAccount, Role, ClusterRoleBinding, etc.)
- Log Viewer Enhancements
- Web Shell Terminal Integration
- Events Viewer
- Basic CRD Resource Management
- Monitoring Integration (Display data from Prometheus/Grafana)
Backend
- Kubernetes Client Initialization
- Basic Routing Setup (Gin)
- CORS Configuration
- JWT Authentication Middleware
- WebSocket Endpoint (for Logs and Web Shell)
- Multi-cluster Support
- Node Resource API
- Pod Resource API (List, Get, Delete, Logs, Exec)
- PV/PVC Resource API
- Namespace Resource API
- Deployment / StatefulSet / DaemonSet Resource API
- Service / Ingress Resource API
- ConfigMap / Secret Resource API
- RBAC Related Resource API
- Event Resource API
- Install Node.js (>=18) and pnpm
- Install Go (>=1.20)
- Have a Kubernetes cluster and configure the kubeconfig file (defaults to reading
~/.kube/config
)
# Navigate to the frontend directory
cd cilikube-web
# Install dependencies
pnpm install
# Start the development server
pnpm dev
Visit http://localhost:8888 to see the frontend interface.
# Navigate to the backend directory
cd cilikube
# (Optional) Update Go dependencies
go mod tidy
# Run the backend service (listens on port 8080 by default)
# Configuration files are modified in configs/config.yaml
go run cmd/server/main.go
# Build frontend production package (output to cilikube-web/dist)
cd cilikube-web
pnpm build
# Build backend executable
cd ../cilikube
go build -o cilikube cmd/server/main.go
# Backend
docker run -d --name cilikube -p 8080:8080 -v ~/.kube:/root/.kube:ro cilliantech/cilikube:latest
# Frontend
docker run -d --name cilikube-web -p 80:80 cilliantech/cilikube-web:latest
docker-compose up -d
Visit http://localhost to access the interface.
- Install Helm (>=3.0)
- Have a Kubernetes cluster and configure the kubeconfig file
- Install kubectl (>=1.20)
# Add Helm repository
helm repo add cilikube https://charts.cillian.website
# Update Helm repository
helm repo update
# Install CiliKube
helm install cilikube cilikube/cilikube -n cilikube --create-namespace
# Check service status
kubectl get svc cilikube -n cilikube
We welcome contributions of all forms! If you'd like to help improve CiliKube, please:
- Fork this repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'feat: Add some AmazingFeature'
) - Please follow the Git Commit Guidelines - Push your branch to your fork (
git push origin feature/AmazingFeature
) - Submit a Pull Request
Please follow the Conventional Commits specification:
feat
: Add new featuresfix
: Fix issues/bugsperf
: Optimize performancestyle
: Change the code style without affecting the running resultrefactor
: Refactor coderevert
: Revert changestest
: Test related, does not involve changes to business codedocs
: Documentation and Annotationchore
: Updating dependencies/modifying scaffolding configuration, etc.workflow
: Workflow Improvementsci
: CICD related changestypes
: Type definition changeswip
: Work in progress (should generally not be merged)
- Email: cilliantech@gmail.com
- Website: https://www.cillian.website
- WeChat: 希里安
This project is open-sourced under the Apache 2.0 License