# k8s-cube-server **Repository Path**: k8s_cube/k8s-cube-server ## Basic Information - **Project Name**: k8s-cube-server - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-06 - **Last Updated**: 2025-09-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Kubernetes 管理面板 一个基于 Go 语言开发的 Kubernetes 集群管理 Web 应用,提供直观的图形界面来管理 K8s 资源。 ## ✨ 功能特性 ### 🚀 核心功能 - **多命名空间管理** - 支持切换和管理多个 Kubernetes 命名空间 - **资源管理** - 完整的 CRUD 操作支持 - **实时监控** - 实时查看资源状态和事件 - **Web界面** - 现代化的响应式 Web 界面 ### 📦 资源管理 - **部署管理 (Deployments)** - 创建、删除、扩缩容部署 - 查看部署状态和详情 - YAML 配置查看 - **服务管理 (Services)** - 创建、编辑、删除服务 - 支持 ClusterIP、NodePort、LoadBalancer 类型 - NodePort 端口点击直接访问 - 外部访问链接自动生成 - **Pod 管理** - Pod 列表查看和管理 - Pod 删除操作 - 详细的 Pod 信息展示 ### 🔍 监控与调试 - **容器管理** - 查看 Pod 中的所有容器信息 - 容器状态、重启次数监控 - 容器日志实时查看 - 容器终端(模拟)功能 - **健康检查** - 存活探针 (Liveness Probe) 信息 - 就绪探针 (Readiness Probe) 信息 - 启动探针 (Startup Probe) 信息 - 探针配置详情展示 - **日志查看** - Pod 日志查看 - 指定容器日志查看 - 日志行数自定义 - 日志实时刷新 - **事件监控** - 集群事件查看 - Pod 相关事件筛选 - 事件时间排序 ### 🖥️ 终端功能 - **容器终端** - 在容器中执行命令(模拟) - **常用命令** - 预设常用命令快捷按钮 - **命令历史** - 终端输出历史记录 ## 🛠️ 技术栈 ### 后端 - **Go 1.24** - 主要编程语言 - **Kubernetes client-go** - Kubernetes API 客户端 - **Gorilla Mux** - HTTP 路由器 - **YAML** - 配置文件解析 ### 前端 - **HTML5/CSS3** - 页面结构和样式 - **JavaScript (ES6+)** - 交互逻辑 - **Fetch API** - HTTP 请求 - **响应式设计** - 适配各种设备 ### Kubernetes - **Token认证** - 安全的集群访问 - **RBAC** - 基于角色的访问控制 - **多集群支持** - 可配置多个集群 ## 🚀 快速开始 ### 前置要求 - Go 1.24+ - 有效的 Kubernetes 集群 - kubeconfig 配置文件 ### 安装步骤 1. **克隆项目** ```bash git clone https://github.com/your-username/k8s-management-panel.git cd k8s-management-panel ``` 2. **安装依赖** ```bash go mod download ``` 3. **配置 kubeconfig** ```bash # 将您的 kubeconfig 文件放在项目根目录 cp ~/.kube/config ./kubeconfig ``` 4. **运行应用** ```bash go run main.go ``` 5. **访问界面** 打开浏览器访问: `http://localhost:8080` ## 🔧 配置说明 ### kubeconfig 配置 应用使用项目根目录下的 `kubeconfig` 文件连接 Kubernetes 集群。确保: - 文件路径正确 - 集群访问凭证有效 - 具有足够的权限 ### 端口配置 默认端口为 8080,可在 `main.go` 中修改: ```go log.Fatal(http.ListenAndServe(":8080", router)) ``` ## 📖 API 文档 ### 命名空间 - `GET /api/namespaces` - 获取所有命名空间 ### 部署管理 - `GET /api/deployments/{namespace}` - 获取部署列表 - `POST /api/deployments/{namespace}` - 创建部署 - `GET /api/deployments/{namespace}/{name}` - 获取部署详情 - `PUT /api/deployments/{namespace}/{name}/scale` - 扩缩容 - `DELETE /api/deployments/{namespace}/{name}` - 删除部署 - `GET /api/deployments/{namespace}/{name}/yaml` - 获取YAML ### 服务管理 - `GET /api/services/{namespace}` - 获取服务列表 - `POST /api/services/{namespace}` - 创建服务 - `GET /api/services/{namespace}/{name}` - 获取服务详情 - `PUT /api/services/{namespace}/{name}` - 更新服务 - `DELETE /api/services/{namespace}/{name}` - 删除服务 ### Pod管理 - `GET /api/pods/{namespace}` - 获取Pod列表 - `GET /api/pods/{namespace}/{name}` - 获取Pod详情 - `DELETE /api/pods/{namespace}/{name}` - 删除Pod - `GET /api/pods/{namespace}/{name}/logs` - 获取Pod日志 - `GET /api/pods/{namespace}/{name}/containers` - 获取容器信息 - `GET /api/pods/{namespace}/{name}/containers/{container}/logs` - 获取容器日志 - `POST /api/pods/{namespace}/{name}/containers/{container}/exec` - 执行命令 ### 事件管理 - `GET /api/events/{namespace}` - 获取事件列表 - `GET /api/events/{namespace}/pod/{podName}` - 获取Pod事件 ## 🔒 安全说明 - kubeconfig 文件包含敏感信息,已在 .gitignore 中排除 - 建议在生产环境中使用 HTTPS - 建议配置适当的 RBAC 权限 - 不要在公共环境中暴露管理界面 ## 🤝 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## 🙏 致谢 - [Kubernetes](https://kubernetes.io/) - 容器编排平台 - [client-go](https://github.com/kubernetes/client-go) - Kubernetes Go 客户端 - [Gorilla Mux](https://github.com/gorilla/mux) - HTTP 路由器 ## 📞 联系方式 如有问题或建议,请提交 Issue 或 Pull Request。 --- ⭐ 如果这个项目对您有帮助,请给它一个星标!