# k8s 资源查询 **Repository Path**: vipty/k8s-resource-query ## Basic Information - **Project Name**: k8s 资源查询 - **Description**: k8s 资源查询 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-08 - **Last Updated**: 2025-11-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # K8s 环境变量与资源查询系统 一个用于查询和管理 Kubernetes 环境变量、资源使用情况的 Web 应用系统。 ## 功能特性 - **环境变量查询**:查询 K8s 项目中的环境变量,支持模糊搜索和精确匹配 - **资源监控**:监控 CPU、内存等资源使用情况,支持排序和统计 - **项目管理**:管理 Java 项目,支持项目排除和命名空间排除 - **重启统计**:统计 Pod 重启次数,按重启次数排序 - **事件查询**:查询 K8s Warning 事件,支持时间过滤和跳转 - **数据导出**:支持 CSV 和 Excel 格式导出 - **跳转功能**:直接跳转到阿里云控制台对应的 K8s 项目页面 ## 环境变量配置 ### 必需的环境变量 #### 1. KUBECONFIG 配置 系统需要配置不同区域的 KUBECONFIG 文件路径: ```bash # 杭州区域 export KUBECONFIG_HZ=/opt/homebrew/etc/k8s/hz/config.dev # 硅谷区域 export KUBECONFIG_USA=/opt/homebrew/etc/k8s/usa/config.dev ``` #### 2. 认证配置(安全建议) **重要**:为了提高安全性,建议通过环境变量设置认证信息: ```bash # 后端认证配置 export ADMIN_USERNAME=your_username export ADMIN_PASSWORD=your_secure_password # 如果未设置环境变量,系统将使用默认值: # 默认用户名:amking # 默认密码:49186865 ``` #### 3. 前端环境变量 在 `k8s/node/.env` 文件中配置: ```bash # API 基础地址 VITE_API_BASE=http://127.0.0.1:7080 # 认证信息(可选,用于开发环境) VITE_AUTH_USER=amking VITE_AUTH_PASSWORD=49186865 ``` #### 4. 后端环境变量 在 `k8s/.env` 文件中配置: ```bash # 认证配置(建议设置) ADMIN_USERNAME=your_username ADMIN_PASSWORD=your_secure_password # 数据库配置(如果使用) DATABASE_URL=sqlite:///./k8s.db # 日志级别 LOG_LEVEL=INFO # 缓存配置 CACHE_TTL=60 ``` ### 安全配置说明 #### 1. 认证安全 - **生产环境**:必须通过环境变量设置 `ADMIN_USERNAME` 和 `ADMIN_PASSWORD` - **开发环境**:可以使用默认值,但建议修改 - **密码要求**:建议使用强密码,包含大小写字母、数字和特殊字符 #### 2. 网络安全 - **CORS 配置**:当前允许所有来源,生产环境建议限制特定域名 - **HTTPS**:生产环境建议使用 HTTPS 加密传输 - **防火墙**:限制 API 端口的访问权限 #### 3. 文件权限 - **KUBECONFIG 文件**:确保只有授权用户可以访问 - **配置文件**:避免将包含敏感信息的配置文件提交到版本控制 ### 配置示例 #### 完整的 .env 文件示例 **后端 .env 文件:** ```bash # K8s 配置路径 KUBECONFIG_HZ=/opt/homebrew/etc/k8s/hz/config.dev KUBECONFIG_USA=/opt/homebrew/etc/k8s/usa/config.dev # API 配置 API_HOST=127.0.0.1 API_PORT=7080 # 认证配置 AUTH_USERNAME=amking AUTH_PASSWORD=49186865 # 缓存配置 CACHE_TTL=300 # 日志配置 LOG_LEVEL=INFO ``` **前端 .env 文件:** ```bash # API 基础地址 VITE_API_BASE=http://127.0.0.1:7080 # 开发环境认证(可选) VITE_AUTH_USER=amking VITE_AUTH_PASSWORD=49186865 # 其他配置 VITE_APP_TITLE=K8s 环境变量与资源查询系统 VITE_APP_VERSION=1.1 ``` ## 安装和运行 ### 1. 后端安装 ```bash # 进入后端目录 cd k8s # 创建虚拟环境 python3 -m venv .venv source .venv/bin/activate # 安装依赖 pip install -r requirements.txt # 运行后端服务 python3 -m uvicorn main:app --host 127.0.0.1 --port 7080 --reload ``` ### 2. 前端安装 ```bash # 进入前端目录 cd k8s/node # 安装依赖 npm install # 运行前端服务 npm run dev ``` ### 3. 访问应用 打开浏览器访问:http://localhost:5173 ## 项目结构 ``` k8s/ ├── main.py # FastAPI 主应用 ├── query_logic.py # K8s 查询逻辑 ├── config_manager.py # 配置管理 ├── java_projects_config.yaml # Java 项目排除配置 ├── requirements.txt # Python 依赖 ├── .env # 后端环境变量 ├── README.md # 项目说明 └── node/ # 前端项目 ├── src/ │ ├── App.jsx # 主组件 │ ├── App.css # 样式文件 │ └── index.css # 全局样式 ├── package.json # 前端依赖 ├── .env # 前端环境变量 └── vite.config.js # Vite 配置 ``` ## 配置说明 ### KUBECONFIG 配置 系统支持多区域 K8s 集群,需要在代码中配置 KUBECONFIG 路径: ```python # query_logic.py 中的配置 AREA_KUBECONFIG = { 'hz': '/opt/homebrew/etc/k8s/hz/config.dev', 'usa': '/opt/homebrew/etc/k8s/usa/config.dev' } ``` ### 排除配置 Java 项目排除配置存储在 `java_projects_config.yaml` 文件中: ```yaml areas: hz: excluded_projects: - namespace: kube-system name: coredns kind: Deployment excluded_namespaces: - kube-system - frontend usa: excluded_projects: [] excluded_namespaces: - kube-system - frontend ``` ## API 接口 ### 认证接口 - `POST /auth/login` - 用户登录 ### K8s 查询接口 - `POST /k8s/getenv` - 查询环境变量 - `POST /k8s/getresources` - 查询资源使用情况 - `POST /k8s/projects` - 查询 Java 项目 - `POST /k8s/restart-stats` - 查询重启统计 - `POST /k8s/events` - 查询 K8s 事件 ## 功能说明 ### 1. 环境变量查询 - 支持按环境变量名或值搜索 - 支持精确匹配和模糊匹配 - 支持多区域查询 - 支持导出 CSV/Excel ### 2. 资源监控 - 显示 CPU 请求/限制(millicores) - 显示内存请求/限制(MiB) - 显示平均 CPU/内存使用情况 - 支持按各列排序 - 支持导出 CSV/Excel ### 3. 项目管理 - 显示所有 K8s 项目 - 支持项目排除和命名空间排除 - 显示 RUNJVM 环境变量状态 - 支持跳转到阿里云控制台 ### 4. 重启统计 - 统计 Pod 重启次数 - 按重启次数排序 - 显示节点信息 - 支持多区域查询 ### 5. 事件查询 - 查询 Warning 类型事件 - 默认只显示当天事件 - 过滤掉 Unhealthy 和 FailedGetScale 事件 - 支持跳转到相关项目 ## 开发说明 ### 添加新功能 1. 在后端 `query_logic.py` 中添加查询逻辑 2. 在 `main.py` 中添加 API 接口 3. 在前端 `App.jsx` 中添加 UI 组件 4. 更新配置文件和文档 ### 调试 - 后端日志:查看控制台输出 - 前端调试:使用浏览器开发者工具 - K8s 连接:确保 KUBECONFIG 文件路径正确 ## 故障排除 ### 常见问题 1. **K8s 连接失败** - 检查 KUBECONFIG 文件路径是否正确 - 确保 K8s 集群可访问 - 检查网络连接 2. **认证失败** - 检查用户名和密码配置 - 确保认证信息正确 3. **数据不显示** - 检查 K8s 权限 - 查看后端日志 - 确认资源存在 4. **前端无法访问** - 检查 API 地址配置 - 确保后端服务运行 - 检查 CORS 配置 ## 版本历史 - **v1.1** - 优化资源监控显示格式,修复计算错误 - **v1.0** - 完成基础功能,支持环境变量查询、资源监控、项目管理、重启统计、事件查询 ## 许可证 MIT License