# DevOpsOne
**Repository Path**: jay-kim/dev-ops-one
## Basic Information
- **Project Name**: DevOpsOne
- **Description**: DevOps 一键发布平台简介
DevOps 一键发布平台是一套面向企业应用交付场景的云原生持续交付平台,旨在实现从代码提交、自动构建、镜像制作、制品管理到 Kubernetes 自动部署的全流程自动化,提升研发交付效率和系统稳定性。
平台基于 CI/CD 流程、Kubernetes、容器化、自动化运维能力 构建,通过统一发布入口,实现应用快速发布、版本管理、灰度发布、自动回滚以及发布过程审计
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 5
- **Forks**: 2
- **Created**: 2026-07-26
- **Last Updated**: 2026-07-31
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🚀 K8sOperation · 企业级 Kubernetes 多集群管理平台
> 集成 **Jenkins + ArgoCD + Argo Workflows** 双模 CI/CD,支持传统 Push 发布与 GitOps Pull 发布
> 当前版本:**v16.16** | 2026-07-25
一个对标 **Rancher/KubeSphere** 的企业级 K8s 管理平台,基于 **Go + Gin + GORM + Vue3 + client-go + AI** 构建。
解决中大型企业 **多集群管理分散、权限隔离困难、运维效率低下** 的核心痛点,并集成 **AI 智能助手** 实现自然语言运维。
------
## 🎯 平台定位与核心价值
| 痛点 | 解决方案 |
|------|----------|
| 多集群管理分散 | 统一控制台管理 N 个 K8s 集群(开发/测试/生产) |
| 权限隔离困难 | 三层 RBAC 模型(平台→集群→命名空间) |
| kubectl 门槛高 | 可视化操作,降低使用门槛 |
| 发布不可追溯 | CI/CD 流水线 + 审计日志 |
| 代码质量无管控 | SonarQube 集成 + 质量门禁自动拦截 |
| 构建产物无追踪 | 制品库全生命周期管理(上传/下载/版本/统计) |
| 镜像管理混乱 | 多仓库接入 + 自动清理策略 |
| 可观测性集成复杂 | 构建探针管理,上传即生效,全自动注入 Agent |
| 日志分散难检索 | 集成 Loki,LogQL 实时查询,日志量趋势可视化 |
| 监控工具异构 | 多数据源统一管理(Prometheus/Loki/VictoriaMetrics),视图自动切换 |
| 告警通知混乱 | 多群路由策略自动分发,按严重级别/团队/标签智能匹配,批量管理 |
| kubectl 操作不便 | 容器 Web 终端,浏览器内直接进入容器 Shell |
| 基础组件部署繁琐 | 应用商城一键部署开源组件 |
| 运维门槛高 | AI 智能助手,自然语言操作平台 |
**核心能力**:
- 🌐 **多集群资源治理** - 统一管理开发/测试/生产环境
- 🔐 **RBAC 精细化权限** - 细粒度权限隔离,满足审计要求
- 🔄 **CI/CD 双模驱动** - Jenkins 推模式 + ArgoCD/Argo Workflows GitOps 拉模式,按需切换,并存互补
- 🔍 **SonarQube 代码质量** - 代码扫描 + 质量门禁,4 语言统一集成(Go/Java/Python/前端)
- 📦 **制品库管理** - 构建产物全生命周期管理,支持上传/下载/版本追踪/统计
- 🏗️ **镜像仓库管理** - 支持 Harbor/ACR/Docker Registry
- 🔭 **构建探针管理** - 可观测性 Agent 全自动注入,上传即生效,无需改流水线
- 🖥️ **容器 Web 终端** - 浏览器内 kubectl exec,WebSocket + xterm.js 交互式 Shell
- 🏪 **应用商城** - 内置应用市场,一键部署开源组件与自有应用
- ⚙ **平台运维监控** - 健康检查、ETCD/核心组件监控、审计日志、系统配置
- 🤖 **AI 智能助手** - 自然语言操作 K8s,多模型支持,高危自动审批
- 🧠 **AIOps 智能运维** - AI 告警分析 + AI 日志诊断 + 智能巡检,从被动响应到主动预判
- 📊 **多数据源监控** - Prometheus 指标视图 + Loki 日志探索,统一告警体系
- 🚨 **告警多群路由** - 通知路由策略自动分发,按 severity/group/labels 智能匹配,多群不漏发
- 🔍 **Loki 日志探索** - LogQL 专业查询、标签筛选、日志量趋势、健康状态实时检测
- ⏪ **版本回滚管理** - 工作负载/CICD 批量回滚,版本对比(当前 vs 目标),ControllerRevision 历史追踪
- 📈 **平台自监控** - 内置 Prometheus 指标 + Grafana 大盘 + 8 条告警规则,平台自身健康可视化
- 🎨 **大厂风格 UI** - Arco Design 线性图标、蓝鲸深色登录主题、可拖拽 YAML 编辑器
------
## 🏗 技术架构
```
┌─────────────────────────────────────────────────────────────────────┐
│ 前端层 (Vue3 + Vite + Pinia) │
│ 企业级 UI · 动态权限菜单 · AI 助手面板 · 流水线可视化 │
└─────────────────────────────────────────────────────────────────────┘
│ RESTful API + JWT
┌─────────────────────────────────────────────────────────────────────┐
│ 后端层 (Go + Gin + GORM) │
│ JWT认证 · RBAC鉴权 · AI服务 · CI/CD引擎(Jenkins+Argo) · 制品管理│
└─────────────────────────────────────────────────────────────────────┘
│ │ │ │ │
┌────┴────┐ ┌────┴─────┐ ┌─────┴─────┐ ┌────┴─────┐ ┌────┴─────┐
│ MySQL │ │ Redis │ │ K8s API │ │ Jenkins │ │ AI LLM │
│ 持久化 │ │ 会话/缓存 │ │ 多集群 │ │ CI/CD │ │ 多提供商 │
│ 审计日志 │ │ Token管理 │ │ client-go │ │ SonarQube│ │ OpenAI.. │
└─────────┘ └──────────┘ └───────────┘ └──────────┘ └──────────┘
```
### 技术选型说明
| 层面 | 技术 | 选型理由 |
|------|------|----------|
| 后端框架 | Go + Gin | 高并发、云原生标准语言、性能优异 |
| ORM | GORM | 功能完善、支持多数据库、开发效率高 |
| 前端框架 | Vue3 + Vite | 响应式、Composition API、热更新快 |
| 状态管理 | Pinia | 轻量、TypeScript 友好 |
| 认证方案 | JWT + Redis | 无状态、可横向扩展、支持主动失效 |
| K8s 客户端 | client-go | 官方 SDK、功能完整、版本兼容好 |
| AI 引擎 | OpenAI Function Calling | 多模型提供商支持、工具调用、意图识别 |
| CI/CD 引擎 | Jenkins + ArgoCD + Argo Workflows | 双模驱动:Push模式(14阶段Jenkins流水线) + GitOps模式(Argo Workflows CI + ArgoCD CD) |
| 代码质量 | SonarQube | Bug/漏洞/异味/覆盖率/重复率 + 质量门禁 |
| 制品库 | 内置制品管理 | SHA256 校验、多类型支持、全生命周期管理 |
| 构建探针 | Build Agent 管理 | 全自动注入可观测性探针(OTEL/SkyWalking/Arthas 等) |
| 容器终端 | xterm.js + WebSocket | 浏览器内交互式 Shell,SPDY 桥接 K8s exec |
| 应用商城 | 内置 App Store | 一键部署开源组件,组件化安装管理 |
| 日志系统 | Zap | 高性能、结构化日志、三日志分类(系统/业务/AI) |
| 日志存储 | Loki | 云原生日志聚合,LogQL 查询,与 Prometheus 同源的可观测生态 |
| 监控指标 | Prometheus / VictoriaMetrics | 多数据源统一接入,指标视图自动切换 |
------
## 🔐 三层 RBAC 权限架构(核心亮点)
```
┌─────────────────────────────────────────────────────────────┐
│ 平台角色 (Platform Role) │
│ super_admin · platform_admin · developer │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 集群权限 (Cluster Permission) │
│ 用户可以管理哪些 K8s 集群 │
│ cluster_admin · cluster_viewer · none │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 命名空间权限 (Namespace Permission) │
│ 用户在集群内可以操作哪些 namespace │
│ 精确到 CRUD 粒度 │
└─────────────────────────────────────────────────────────────┘
```
### 权限实现机制
**后端**:
- 每个 API 请求携带 `x-cluster-id` 头部
- 中间件校验用户对目标集群的权限
- K8s 操作使用 SubjectAccessReview 二次校验
**前端**:
- 登录时获取完整权限树,缓存到 Pinia Store
- 动态菜单:根据角色显示/隐藏菜单项
- 路由守卫:无权限页面自动拦截跳转
- `v-permission` 指令:按钮级权限控制
```vue
```
------
## 🔗 项目地址
- Gitee(主仓库):https://gitee.com/jay-kim/k8s_operation
- GitHub(镜像仓库):https://github.com/jay-codemine/k8s_operation
> 📦 **配套 AppConfig Operator(Kubebuilder 项目)请访问:**
> 👉 https://gitee.com/jay-kim/appconfig-operator
系统支持多集群管理、事件聚合、滚动升级、镜像更新、扩缩容、Pod 日志流、节点驱逐/隔离、PVC 扩容等能力。
------
## 📦 Kubernetes / client-go 版本兼容性
本项目基于:
- `k8s.io/client-go v0.34.2`
根据官方版本映射规则:
- client-go v0.34.x 对应 Kubernetes v1.34.x
由于 Kubernetes 对客户端有向后兼容策略,旧版本 Kubernetes 也可以正常访问绝大多数 API:
- ✅ 推荐:Kubernetes v1.34.x
- 👍 支持:Kubernetes v1.28.x ~ v1.33.x(大多数功能均正常)
- ⚠ 低于 v1.25 可能存在部分 API 不支持或弃用问题
> 建议生产环境尽量使用与 client-go 主版本号一致的 Kubernetes 版本,以获得最佳兼容性。
------
## 🖥️ 多架构支持(amd64 / arm64)
本项目 **完整支持 ARM64 架构部署**,后端基于 Go 纯静态编译(`CGO_ENABLED=0`),所有依赖均为纯 Go 实现,无 C 库依赖。
### 支持的目标架构
| 架构 | 说明 | 典型场景 |
|------|------|----------|
| `linux/amd64` | x86_64,默认架构 | 传统云服务器、PC 开发机 |
| `linux/arm64` | AArch64 | 华为鲲鹏、AWS Graviton、Apple M 系列、树莓派 4/5 |
### 构建方式
**方式一:本地交叉编译(Go 原生支持)**
```bash
# 编译 arm64 二进制
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -trimpath -ldflags="-s -w" -o bin/k8soperation-arm64 ./cmd/k8soperation
# 编译 amd64 二进制(默认)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags="-s -w" -o bin/k8soperation-amd64 ./cmd/k8soperation
```
**方式二:Docker 单架构构建**
```bash
# 构建 arm64 镜像
docker build --build-arg TARGETARCH=arm64 -t k8soperation:arm64 .
# 构建 amd64 镜像(默认)
docker build -t k8soperation:amd64 .
```
**方式三:Docker Buildx 多架构镜像(推荐生产使用)**
```bash
# 一次构建同时生成 amd64 + arm64 镜像并推送到仓库
make docker-buildx IMAGE=registry.example.com/k8soperation:latest
# 或手动执行
docker buildx build --platform linux/amd64,linux/arm64 \
-t registry.example.com/k8soperation:latest . --push
```
### 技术保障
- **纯 Go 编译**:`CGO_ENABLED=0`,无 C 依赖,交叉编译零配置
- **依赖全兼容**:`client-go`、`gin`、`gorm`、`go-openai` 等均为纯 Go 库,天然支持多架构
- **Dockerfile 适配**:使用 `BUILDPLATFORM` + `TARGETARCH` 实现 BuildKit 多架构构建
- **前端无架构依赖**:Vue3 + Vite 构建产物为静态 HTML/JS/CSS,任何架构通用
## 🖥️ 系统界面展示
> 以下为真实系统运行截图
---
### 🔹 核心界面预览
---
📂 点击展开查看全部界面截图
## ✨ 核心特性
### 🚦 CI/CD 14 阶段全链路闭环
平台内置 **14 阶段 CI/CD 闭环流水线**,覆盖从代码检出到生产部署的完整生命周期,将 CI/CD 从脚本编排升级为 **可控、可追踪、可回滚** 的企业级发布体系。
#### 14 阶段执行矩阵
```
┌──────┬──────────────────┬──────────────────────────────────┬──────────┐
│ 序号 │ 阶段 │ 说明 │ 可选 │
├──────┼──────────────────┼──────────────────────────────────┼──────────┤
│ 1 │ Clean Workspace │ 清理 Jenkins 工作空间 │ │
│ 2 │ Checkout │ 拉取代码 + 提取 Git 信息 │ │
│ 3 │ Dependencies │ 依赖下载(go mod/maven/npm/pip) │ │
│ 4 │ Compile │ 编译检查 │ │
│ 5 │ Test │ 单元测试 + 覆盖率报告 │ │
│ 6 │ Lint │ 静态分析(golangci-lint/flake8) │ │
│ 7 │ SonarQube Scan │ 代码质量扫描(Bug/漏洞/异味) │ ✅ 按需 │
│ 8 │ Quality Gate │ 质量门禁(不通过则中断流水线) │ ✅ 按需 │
│ 9 │ Build Binary │ 构建二进制/打包制品 │ ✅ 按需 │
│ 10 │ Upload Artifact │ 上传制品到制品库 │ ✅ 按需 │
│ 11 │ Build Image │ nerdctl/BuildKit 构建容器镜像 │ │
│ 12 │ Push Image │ 推送镜像到 Harbor(并发 8 层) │ │
│ 13 │ Approval │ 人工审批(生产环境强制) │ ✅ 按需 │
│ 14 │ Deploy │ 滚动更新到目标集群 │ ✅ 按需 │
└──────┴──────────────────┴──────────────────────────────────┴──────────┘
```
#### 多语言模板支持
| 语言 | 模板文件 | 特性 |
|------|----------|------|
| **Go** | `go-pipeline.groovy` | go test + golangci-lint + SonarQube + 制品上传 + nerdctl build |
| **Java** | `java-spring-pipeline.groovy` | Maven + SonarQube + 质量门禁 + 制品上传 |
| **Python** | `python-pipeline.groovy` | pip + flake8 + pytest + SonarQube + 制品上传 |
| **前端** | `frontend-pipeline.groovy` | npm ci + SonarQube + 制品上传 + Nginx 镜像 |
> 所有模板统一支持 **BuildKit 层缓存** + **nerdctl push --concurrency 8 并发推送**,二次构建速度提升 50%+
#### 发布流程
1. 创建发布单(Release)
2. 触发构建(CI):Jenkins 自动执行 14 阶段流水线
3. 代码扫描 + 质量门禁自动拦截(可选)
4. 构建制品上传到制品库(可选)
5. 构建镜像 + 推送到 Harbor
6. 进入待审批(PENDING_APPROVAL)
7. 人工审批通过(APPROVED)后进入部署(DEPLOYING)
8. 滚动更新(RollingUpdate)并持续采集状态
9. 发布成功(SUCCEEDED)或失败(FAILED)
10. 支持一键回滚(ROLLBACKING -> ROLLED_BACK)
#### 能力说明
- ✅ **SonarQube 代码扫描**:Bug/漏洞/代码异味/覆盖率/重复率,扫描报告自动回传平台
- ✅ **质量门禁**:扫描不通过自动中断流水线,确保代码质量底线
- ✅ **制品库管理**:构建产物自动上传,支持下载/版本追踪/统计分析
- ✅ **人工审批**:审批人/审批时间/审批意见记录,可做权限控制与审计
- ✅ **发布状态机**:状态迁移可控,避免"脚本式发布不可追踪"
- ✅ **HMAC-SHA256 签名校验**:防伪造回调,保障 Jenkins ↔ 平台通信安全
- ✅ **发布日志**:记录构建/部署/回滚全过程关键事件
- ✅ **回滚能力**:
- Deployment:基于 ReplicaSet 历史版本回滚(或指定历史版本)
- StatefulSet/DaemonSet:基于 ControllerRevision 回滚
- ✅ **发布过程可观测**:14 阶段实时状态 + 滚动更新进度 + Pod 状态 + 事件聚合
- ✅ **批量发布**:支持多个发布单同时触发构建,提升发布效率
- ✅ **批量回滚**:支持多个发布单一键批量回滚到上一个稳定版本
- ✅ **部署失败重试**:失败的发布单支持一键重试,自动创建新的发布单
### 🤖 AI 智能助手(核心亮点)
平台内置 AI 智能助手,支持用自然语言操作 K8s 集群,大幅降低运维门槛。
#### AI 架构设计
```
┌─────────────────────────────────────────────────────────────┐
│ 用户自然语言输入 │
│ "查看 default 命名空间的 Pod" "扩容 nginx 到 5 个副本" │
└─────────────────────────┴───────────────────────────────────┘
│
┌───────┴────────┐
│ LLM 意图识别 │ ← OpenAI Function Calling
└───────┬────────┘
│
┌────────┼────────┐
│ │ │
┌────┴────┐ ┌──┴─────┐ ┌──┴──────┐
│ 只读查询 │ │ 写操作 │ │ 高危操作 │
│ 直接执行 │ │ 确认执行 │ │ 审批流程 │
└─────────┘ └────────┘ └─────────┘
```
#### 核心能力
| 能力 | 说明 |
|------|------|
| 🗣️ 自然语言操作 | 用中/英文描述运维意图,AI 自动转化为 K8s API 调用 |
| 🧠 意图识别 | 基于 OpenAI Function Calling,自动识别查询/扩缩容/删除等意图 |
| 🛡️ 高危操作审批 | 删除/扩容等危险操作自动进入审批流程,防止误操作 |
| 🔄 多模型支持 | 支持 NVIDIA NIM、OpenAI、国产大模型等多提供商,可热切换 |
| 💬 多轮对话 | 支持上下文连续对话,理解复杂运维场景 |
| 📊 意图标签 | 前端可视化展示操作意图(🔍 查询 / ⚙️ 执行 / ⚠️ 审批) |
| 📄 AI 日志 | 独立 AI 日志系统,全链路追踪,支持 API 查询 |
#### 支持的工具调用(Function Calling)
```
✔ list_pods - 查看 Pod 列表
✔ list_deployments - 查看 Deployment 列表
✔ list_services - 查看 Service 列表
✔ list_namespaces - 查看命名空间
✔ get_pod_detail - 获取 Pod 详情
✔ get_pod_logs - 获取 Pod 日志
✔ scale_deployment - 扩缩容(需审批)
✔ delete_pod - 删除 Pod(需审批)
✔ restart_deployment - 重启 Deployment(需审批)
... 更多工具持续扩展中
```
#### 多模型提供商支持
```yaml
# config.yaml 配置示例
ai:
enabled: true
default_provider: nvidia # 默认提供商
providers:
- id: nvidia
name: "NVIDIA NIM"
base_url: "https://integrate.api.nvidia.com/v1"
api_key: "nvapi-xxx"
model: "minimaxai/minimax-m2.7"
- id: openai
name: "OpenAI"
base_url: "https://api.openai.com/v1"
api_key: "sk-xxx"
model: "gpt-4o"
```
> 💡 支持任何兼容 OpenAI API 协议的提供商(NVIDIA NIM、通义千问、智谱 AI、DeepSeek 等)
#### AI 日志与排查
AI 助手拥有独立的日志系统(`storage/logs/ai.log`),方便排查大模型调用问题:
```
─ 全链路追踪:Registry 解析 → API 请求 → 工具执行 → 审批流程 → 响应完成
─ 记录开销:每次调用的 latency、prompt_tokens、completion_tokens
─ 错误定位:模型拒绝/超时/调用失败自动记录 Error 级别日志
─ API 查询:GET /api/v1/ai/logs?level=error&keyword=超时
```
------
### 🧠 AIOps 智能运维(核心亮点)
平台内置 AIOps 智能运维引擎,基于 **大模型 + 平台健康数据 + Loki 日志 + Prometheus 告警** 构建,实现从"被动响应"到"智能预判"的运维模式转变。
#### 设计思想
```
传统运维: 告警 → 人工排查 → 人工决策 → 人工处置(MTTR 长,依赖经验)
AIOps: 告警 → AI 根因分析 → AI 建议方案 → 人工确认执行(MTTR 大幅缩短)
↑
定时巡检 → AI 趋势预测 → 预防性建议(主动运维,问题未发先治)
```
#### 三大核心能力
| 能力 | 说明 | 巡检内容 |
|------|------|----------|
| 🚨 **AI 告警分析** | 告警事件 + PromQL 规则 + 上下文 → AI 自动定位根因、评估影响、给出处置建议 | 告警名/级别/触发值/PromQL/持续时间 |
| 📜 **AI 日志诊断** | 集成 Loki 自动查询 + 采样错误日志 → AI 分析异常模式并给出修复方案 | namespace/pod 日志、错误模式、堆栈信息 |
| 🔍 **智能巡检** | 全平台健康数据收集 → AI 生成巡检报告(评分+等级+建议+趋势预测) | 集群连通性/节点就绪/工作负载状态/Pod 异常/活跃告警 |
#### 智能巡检详解 — 巡检什么?
巡检引擎每 **6 小时** 自动执行一次全量巡检(也可手动触发),覆盖以下维度:
```
┌─────────────────── 巡检数据采集 ────────────────────┐
│ │
│ ① 集群连通性 所有 K8s 集群是否可连接 │
│ ② 节点健康 节点 Ready / NotReady 状态 │
│ ③ 工作负载 Deployment / StatefulSet / DaemonSet│
│ └── 运行状态 Running vs Failed vs Pending │
│ ④ Pod 异常 CrashLoopBackOff / OOMKilled 等 │
│ ⑤ 活跃告警 当前 firing 状态的告警数量和详情 │
│ ⑥ 资源使用率 CPU / Memory / Pod 配额 │
│ │
└──────────────────────┬───────────────────────────────┘
▼
┌─────────── 健康评分算法 ─────────────┐
│ 满分 100,扣分规则: │
│ - 异常集群: 每个 -20 分 │
│ - NotReady节点: 每个 -10 分 │
│ - 异常工作负载: 每个 -2 分 │
│ - firing 告警: 每条 -3 分 │
│ - critical 告警: 额外每条 -5 分 │
└───────────────────┬───────────────────┘
▼
┌─── AI 生成巡检报告 ──────────────────┐
│ 📊 整体评估 - 平台健康状态总评 │
│ 🔍 问题发现 - 发现的异常和风险点 │
│ 💡 优化建议 - 具体可执行的改进措施 │
│ 📈 趋势预测 - 基于当前数据预测趋势 │
│ ✅ 巡检结论 - 一句话总结 │
└───────────────────────────────────────┘
```
**健康评分等级映射:**
| 评分 | 等级 | 含义 | 颜色 |
|------|------|------|------|
| 80-100 | Healthy | 平台运行正常 | 🟢 绿色 |
| 60-79 | Warning | 存在风险需关注 | 🟡 黄色 |
| 0-59 | Critical | 需要立即处理 | 🔴 红色 |
#### AIOps 架构
```
┌──────────────────────────────────────────────────────────────┐
│ AIOps Service Layer │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌────────────────────┐ │
│ │ AlertAnalyze │ │ LogDiagnose │ │ InspectionWorker │ │
│ │ 告警→AI分析 │ │ Loki→AI诊断 │ │ 6h定时→AI巡检报告 │ │
│ └──────┬───────┘ └──────┬───────┘ └─────────┬──────────┘ │
│ │ │ │ │
│ └──────────────────┼─────────────────────┘ │
│ ▼ │
│ ┌─── Prompt Engineering ────────────────────────────────┐ │
│ │ 3 套专业 System Prompt(告警专家/日志专家/巡检专家) │ │
│ └──────────────────────────┬────────────────────────────┘ │
│ ▼ │
│ ┌──── AI Provider Registry ─────────────────────────────┐ │
│ │ OpenAI / DeepSeek / 通义千问 / 智谱 / Moonshot │ │
│ └────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘
```
#### API 接口
```
├── POST /api/v1/ai/ops/alert/analyze # AI 告警分析(输入告警事件 ID)
├── POST /api/v1/ai/ops/log/diagnose # AI 日志诊断(输入 namespace/pod/LogQL)
├── POST /api/v1/ai/ops/inspection/run # 手动触发巡检
├── GET /api/v1/ai/ops/inspection/list # 巡检报告列表
├── GET /api/v1/ai/ops/inspection/:id # 巡检报告详情
├── GET /api/v1/ai/ops/dashboard # AIOps 仪表盘统计
└── GET /api/v1/ai/ops/records # AI 分析记录列表
```
#### 实际运行效果(已验证)
```
[AIOps-InspectionWorker] 启动智能巡检引擎 {"interval": "6h0m0s"}
[AIOps-InspectionWorker] 开始定时巡检
[AI-API] Chat 请求成功 {"model": "qwen-plus", "latency": "13.1s", "total_tokens": 1130}
[AIOps] 巡检完成 {"report_id": 2, "score": 57, "level": "critical", "findings": 1}
```
> 📖 **完整架构设计文档**:[docs/AIOps智能运维架构设计与验证指南.md](docs/AIOps智能运维架构设计与验证指南.md)
### 📊 多数据源监控与 Loki 日志探索(全新能力)
平台构建了 **统一可观测性控制台**,将 Prometheus 指标监控与 Loki 日志探索整合为一体,根据所选数据源类型自动切换视图,打造大厂级监控体验。
#### 架构设计
```
数据源管理
┌──────────────────────────┐
│ Prometheus │ Loki │
│ VictoriaM │ 自定义 │
└──────┬───────┴─────┬────┘
│ │
┌───────┴──┐ ┌──────┴──────┐
│ Metrics │ │ Logs │
│ 视图 │ │ 视图 │
│ 指标大盘 │ │ LogQL 探索 │
└──────────┘ └────────────┘
```
#### 数据源管理
| 数据源类型 | 图标 | 说明 |
|-----------|------|------|
| Prometheus | 🔥 | 指标采集,支持 PromQL |
| Loki | 📜 | 日志聚合,支持 LogQL |
| VictoriaMetrics | 📈 | 高性能 Prometheus 兼容替代 |
| Alertmanager | 🚨 | 告警路由管理 |
| Grafana | 📊 | 可视化大盘 |
| Thanos | ♾️ | 长存储/多集群 Prometheus |
- ✅ **CRUD 管理**:支持增删改查数据源,设置默认数据源
- ✅ **连通性测试**:一键测试数据源连接是否正常
- ✅ **分组展示**:下拉菜单按类型分组,视觉区分清晰
- ✅ **视图自动切换**:选择 Loki 数据源自动切换为日志探索视图,选 Prometheus 自动切换为指标视图
#### 🔍 Loki 日志探索
专业的 LogQL 日志探索界面,对标 Grafana Explore。
##### 健康状态实时检测
```
● Loki 已连接 http://loki:3100 [↻ 刷新]
●(绿色呼吸灯) URL 显示 一键刷新
状态:
🟢 已连接(breathing animation)
🔴 未连接(红色警示)
🟡 检测中(黄色闪烁)
```
进入页面自动执行健康检查,若 Loki 未配置则给出引导提示跳转数据源管理页面。
##### LogQL 查询界面
```
┌──────────────────────────────────────────────────────┐
│ LogQL │ {job="varlogs"} |= "error" [×] │
└──────────────────────────────────────────────────────┘
[近 1 小时 ▼] [100 条 ▼] [▶ 查询]
标签筛选: [job] [namespace] [app] [container] [+12 更多]
```
| 功能 | 说明 |
|------|------|
| LogQL 输入框 | 单行输入,Enter 快速查询,支持清空按钮 |
| 时间范围 | 近 5 分钟 / 15 分钟 / 1 小时 / 3h / 6h / 12h / 24h |
| 查询条数 | 50 / 100 / 200 / 500 条可选 |
| 排序方向 | 最新在前(backward)/ 最旧在前(forward)|
| 标签快捷筛选 | 自动拉取 Loki 标签列表,点击选值自动构建 LogQL |
| 自动查询 | 进入页面自动用第一个活跃日志流执行查询,无需手动输入 |
##### 日志量趋势图
基于 ECharts 绘制的堆叠柱状图,按 `count_over_time` 聚合日志量:
```
日志量趋势 收起 ▴
│ ██
│ ██ ████
│ ██ ████ ██ ████ ██
└────────────────────────────────── 时间
14:00 14:15 14:30 14:45 15:00
```
##### 日志列表
```
日志结果 123 条记录 [↩ 换行] [🏷️ 标签] [最新在前 ▼]
14:35:22.568 [job=varlogs] INFO server started on :8080
14:35:22.359 [job=varlogs] ERROR failed to connect redis ← 红色高亮
14:35:21.846 [job=varlogs] WARN retry attempt 3 ← 黄色高亮
```
| 功能 | 说明 |
|------|------|
| 级别自动高亮 | ERROR/FATAL/PANIC 红色,WARN 黄色,DEBUG 灰色 |
| 自动换行 | 长日志行可切换 wrap 模式 |
| 标签显示 | 可开关显示每条日志的 stream labels |
| 活跃日志流 | 右侧展示活跃流列表,点击即可快速构建查询 |
##### 智能引导与错误反馈
```
─ 空状态引导:📋 该时间范围内未匹配到日志,尝试调整时间范围
─ 查询出错:⚠️ 查询出错 [具体错误原因] [重试]
─ Loki 未配置:弹出 Warning,引导前往数据源管理页面
─ 示例查询:点击示例代码片段自动填入并执行
```
#### 🚨 告警体系(大厂级多群路由)
平台内置 **告警评估引擎**(30s 轮询周期),支持完整的告警生命周期管理与**企业级多群路由分发**。
##### 核心架构
```
┌─────────────────────────────────────────────────────────────────┐
│ 告警评估引擎(30s 周期轮询) │
│ 读取所有 enabled 规则 → PromQL 查询 → 状态机流转 → 通知分发 │
└────────────────────────────────────┬────────────────────────────┘
│
┌────────────────┼────────────────┐
│ │ │
┌──────┴──────┐ ┌─────┴─────┐ ┌──────┴──────┐
│ 规则手动绑定 │ │ 路由策略 │ │ 兜底策略 │
│ (直接发送) │ │ (自动匹配) │ │ (全局默认) │
└─────────────┘ └───────────┘ └─────────────┘
│ │ │
└────────────────┼────────────────┘
▼
┌──────────────────────────────────────────┐
│ 多渠道推送(钉钉/飞书/企微/邮件/Webhook) │
└──────────────────────────────────────────┘
```
##### 功能矩阵
| 模块 | 功能 |
|------|------|
| 告警规则 | PromQL 自定义规则 + YAML 批量导入/导出 + 开关/克隆/分组 |
| 告警事件 | 实时事件列表,支持确认(Ack)和解决(Resolve)|
| 通知渠道 | 支持邮件/钉钉/企业微信/飞书/Webhook 多渠道推送 |
| **通知路由策略** | 按 severity/group/labels 自动分发到不同群(优先级调度+兜底) |
| **批量绑定渠道** | 支持 replace(覆盖)/ append(追加)/ remove(移除)三种模式 |
| **YAML 导入增强** | 导入时自动绑定渠道(default_notify_channels / auto_route) |
| 告警降噪 | 静默规则(Silence)+ 抑制规则(Inhibit)+ 聚合规则 |
| 告警评估引擎 | 30s 轮询,pending → firing → resolved 状态机 |
##### 多群路由策略(核心亮点)
解决**告警规则与通知渠道解耦**的业务诉求——规则定义「什么触发」,路由策略定义「发到哪个群」:
```
┌─────────────────────────────────────────────────────────────────┐
│ 通知路由策略(Notify Route Policy) │
├─────────────────────────────────────────────────────────────────┤
│ 优先级 │ 策略名称 │ 匹配条件 │ 目标群 │
│ 0 │ P0紧急→核心群 │ severity=critical │ 渠道1 │
│ 10 │ 基础设施→运维群 │ group∈[node,kubernetes] │ 渠道2 │
│ 20 │ 应用告警→开发群 │ team=application │ 渠道3 │
│ 99 │ 兜底→全量告警群 │ is_default=true │ 渠道1,2│
└─────────────────────────────────────────────────────────────────┘
```
- ✅ **优先级调度**:优先匹配高优先级策略,支持 all/any 匹配模式
- ✅ **多条件组合**:severity + group + 标签 JSON(=、!=、=~、exists)
- ✅ **兜底策略**:未匹配任何策略的告警走全局默认渠道,确保不漏发
- ✅ **Worker 自动回退**:规则未绑定渠道时,评估引擎自动查询路由策略分发
##### 告警 API 一览
```
├── POST /alert-rule/import-yaml # YAML 批量导入(支持 auto_route + default_notify_channels)
├── POST /alert-rule/batch-bind-channels # 批量绑定渠道(replace/append/remove)
├── GET /notify-route # 路由策略列表
├── POST /notify-route # 创建路由策略
├── PUT /notify-route/:id # 更新路由策略
├── DELETE /notify-route/:id # 删除路由策略
├── POST /silence-rule # 创建静默规则
├── POST /inhibit-rule # 创建抑制规则
└── POST /aggregate-rule # 创建聚合规则
```
#### 后端 API(6 个 Loki 接口)
```
GET /api/v1/monitoring/loki/health # Loki 健康检查
GET /api/v1/monitoring/loki/query # LogQL 日志查询
GET /api/v1/monitoring/loki/labels # 获取所有标签名
GET /api/v1/monitoring/loki/label/:name/values # 获取标签值列表
GET /api/v1/monitoring/loki/streams # 获取活跃日志流
GET /api/v1/monitoring/loki/volume # 获取日志量趋势数据
```
##### Loki 配置方式
**方式一(推荐)**:通过平台【监控 → 数据源管理】页面新增 Loki 数据源,设为默认即可自动识别。
**方式二**:通过 `configs/config.yaml` 静态配置:
```yaml
monitoring:
loki_url: "http://loki:3100" # Loki 服务地址
```
------
### 🔍 SonarQube 代码质量扫描
平台深度集成 SonarQube,为 **Go/Java/Python/前端** 四种语言提供统一的代码质量管控能力。
#### 扫描指标
| 指标 | 说明 |
|------|------|
| Bugs | 代码缺陷数量 |
| Vulnerabilities | 安全漏洞数量 |
| Code Smells | 代码异味(可维护性问题) |
| Coverage | 单元测试覆盖率 (%) |
| Duplications | 重复代码率 (%) |
| Security Hotspots | 安全热点数量 |
| Reliability/Security/Maintainability Rating | A~E 五级评级 |
#### 工作流程
```
Jenkins 构建 → SonarQube Scanner 执行扫描
→ 质量门禁检查(不通过则中断流水线)
→ 扫描报告自动回传平台(sonar-callback)
→ 前端展示完整质量报告
```
- 每种语言自动注入对应的 `SONAR_SOURCES` 和 `SONAR_EXCLUSIONS`
- 通过 `pipeline.EnableSonar` 一键开关,无需修改 Jenkinsfile
- 质量门禁状态:`OK`(通过) / `WARN`(警告) / `ERROR`(未通过)
### 📦 制品库管理
平台内置制品库,对 CI/CD 构建产物进行全生命周期管理。
#### 支持的制品类型
| 类型 | 语言 | 说明 |
|------|------|------|
| `jar` / `war` | Java | Maven 构建产物 |
| `binary` | Go | 编译后的二进制文件 |
| `dist` | 前端 | 前端构建产物(dist.tar.gz) |
| `wheel` | Python | Python wheel 包 |
| `image` | 通用 | Docker 镜像引用(仅记录元数据) |
| `archive` | 通用 | 通用压缩包 |
#### 核心能力
- ✅ **Jenkins 自动上传**:构建完成后自动 gzip 压缩 + curl multipart 上传
- ✅ **手动上传**:支持通过平台界面手动上传制品
- ✅ **SHA256 校验**:上传时自动计算文件哈希,确保完整性
- ✅ **版本追踪**:关联流水线 + 运行记录 + Git 信息(repo/branch/commit)
- ✅ **下载管理**:支持 Token 鉴权下载 + 下载计数统计
- ✅ **批量操作**:支持批量删除 + 制品统计(按类型分组)
- ✅ **生命周期**:uploading → ready → expired → deleted 状态流转
```
API 接口一览:
├── GET /artifact/list # 制品列表(分页 + 多维筛选)
├── GET /artifact/detail # 制品详情
├── GET /artifact/by-run # 某次运行的制品列表
├── POST /artifact/upload # 上传制品(Jenkins 回调 / 手动)
├── POST /artifact/create # 创建制品记录(镜像类型)
├── POST /artifact/attach # 为已有制品补传/替换文件
├── POST /artifact/update # 更新制品信息
├── GET /artifact/download # 下载制品文件
├── POST /artifact/delete # 删除制品
├── POST /artifact/batch-delete # 批量删除
└── GET /artifact/stats # 制品统计(按类型分组)
```
### 🔭 构建探针管理(Build Agent Management)
平台内置构建探针管理系统,实现 **上传即生效** 的全自动 Agent 注入,无需修改流水线或 Dockerfile。
#### 支持的探针分类
| 分类 | 说明 | 典型探针 |
|------|------|----------|
| 可观测性 | 分布式追踪/指标采集 | OpenTelemetry Java Agent、SkyWalking |
| 诊断工具 | 在线诊断/性能分析 | Arthas、JProfiler Agent |
| 安全扫描 | 运行时安全防护 | RASP、Falco Probe |
| 自定义 | 任意自定义 Agent | 用户上传的任意 JAR/Binary |
#### 核心能力
- ✅ **全自动注入**:Jenkins 流水线 `Prepare Build Agents` 阶段自动从平台拉取所有已启用探针
- ✅ **动态 Dockerfile**:Build Image 阶段自动生成 COPY + ENV 指令,零人工干预
- ✅ **三级降级策略**:平台 API → 项目本地 → Maven 中央仓库,确保构建不中断
- ✅ **SHA256 校验**:上传时自动计算文件哈希,确保探针完整性
- ✅ **多语言支持**:Java / Go / Python / 通用,按语言范围自动匹配
- ✅ **版本管理**:支持版本追踪、启用/停用、安装包上传与下载
### 🖥️ 容器 Web 终端(Container Terminal)
类似 `kubectl exec -it` 的浏览器内交互式终端,基于 **WebSocket + SPDY** 双协议桥接。
#### 核心特性
| 特性 | 说明 |
|------|------|
| Tokyo Night 主题 | 暗色终端配色,参考 VS Code Tokyo Night 主题 |
| Shell 自动检测 | 按优先级探测 bash → sh → zsh → ash |
| 窗口自适应 | ResizeObserver + FitAddon 自动适配终端尺寸 |
| 心跳保活 | 双端 ping/pong(前端 25s / 后端 30s) |
| 全屏模式 | 一键切换全屏/窗口模式 |
| 拖拽支持 | 标题栏可拖拽移动窗口位置 |
| Distroless 友好 | 无 Shell 容器自动检测并给出调试提示 |
### 📡 工作负载实时状态监听(Resource Watcher)
参考 KubeSphere 的状态追踪机制,当用户执行镜像更新/重启等操作后,自动开启快速轮询:
- 实时展示 `Updating → Progressing → Running` 完整状态变化
- 自动拉取关联 Events 显示在右下角浮窗
- 覆盖全部 5 类工作负载(Deployment / StatefulSet / DaemonSet / Job / CronJob)
### 🏪 应用商城(App Store)
内置应用市场,支持一键部署开源组件与自有应用到 K8s 集群。
- ✅ **应用目录管理**:分类浏览、搜索、版本管理
- ✅ **一键安装**:选择集群 + 命名空间 + 自定义 Values,自动创建 Deployment/Service
- ✅ **组件化部署**:每个应用支持多组件(如 Prometheus + Grafana + AlertManager)
- ✅ **安装状态追踪**:实时监控 Pod Ready 状态,部分就绪降级运行
- ✅ **卸载与管理**:一键卸载,清理所有关联资源
### 🧩 系统通用能力
- 配置化加载(YAML / ENV)
- JWT 鉴权 + 刷新机制
- Zap 三日志系统(系统日志 / 业务日志 / AI 日志)
- Swagger 在线 API 文档(支持 Standalone)
- 健康检查与优雅关闭(含 ETCD / Controller Manager / Scheduler / CoreDNS 核心组件监控)
- 标准化控制器 / 服务 / DAO 分层
- 全局异常拦截(中间件)
------
## ☸ Kubernetes 高级能力(全部已实现)
### Deployment 管理
- CRUD、扩缩容、镜像更新、滚动升级
- 滚动重启、基于 ReplicaSet 的版本回滚
- Pods 列表、事件聚合、历史版本查询
### Pod 管理
- 列表、详情、日志(流式/非流)
- 镜像 Patch、事件查询、强制删除
### StatefulSet / DaemonSet
- CRUD、扩缩容、镜像更新
- ControllerRevision 回滚
### Service / Ingress
- CRUD
- Strategic / JSON Merge Patch
- TLS 配置、事件聚合
### Job / CronJob
- Job:创建 / 删除 / 状态查询
- CronJob:启停、删除、历史 Job 查询
### Secret / PVC / PV / ConfigMap / StorageClass
- 全生命周期管理
- PVC 扩容、PV ReclaimPolicy 修改
- ConfigMap Patch、StorageClass CRUD
### Node 高级管理
- Cordon / Uncordon
- Drain(驱逐可驱逐 Pod)
- Pod Evict(支持 gracePeriod)
- 节点 Metrics、Pods 列表
### Event 事件聚合
- Pod / Deploy / StatefulSet / Node 等资源
- 支持排障快速定位(Backoff、PullError、Unschedulable)
------
## 🧩 多集群管理
- 动态添加/切换多个 K8s 集群
- **kubeconfig 加密存储**(AES-256-GCM)
- TLS 证书动态信任(解决 x509 证书问题)
- 连通性检测与健康状态监控
- 多集群 clientset 连接池管理
适合企业多集群统一管控场景。
------
## 💡 技术亮点
### 1. 敏感数据加密存储
```go
// kubeconfig 使用 AES-256-GCM 加密
// 数据库存储格式:ENC:base64(nonce+ciphertext)
func EncryptKubeConfig(plain, key string) string {
// AEAD 加密,防篡改,安全性高
}
```
### 2. 统一错误码体系
```go
// 前端可根据错误码精准处理不同场景
var (
InvalidParams = NewError(10001, "参数错误")
Unauthorized = NewError(10002, "认证失败")
ClusterNotFound = NewError(20001, "集群不存在")
PermissionDenied = NewError(20002, "权限不足")
)
```
### 3. K8s 客户端连接池
```go
// 多集群场景,每个集群维护独立 clientset
// 支持动态切换,避免重复创建连接
type ClusterClientManager struct {
clients sync.Map // clusterId -> *kubernetes.Clientset
}
```
### 4. 配置热更新
```
系统设置存储在数据库,修改后立即生效
├── 基础设置(默认页面、语言、时区)
├── 安全设置(会话超时、密码策略)
├── 告警设置(CPU/内存/磁盘阈值)
└── 通知设置(邮件/钉钉/Webhook)
```
### 5. AI 智能助手引擎
```go
// 多模型提供商注册中心(Provider Registry)
// 支持 NVIDIA NIM、OpenAI、国产大模型等,可热切换
type ProviderRegistry struct {
providers sync.Map // providerID -> *Client
defaults struct { providerID, modelID string }
}
// Function Calling 工具注册 + 高危操作审批
func (s *AIService) AIChat(msg string) {
// 1. LLM 意图识别(Function Calling)
// 2. 工具执行(list_pods / scale_deployment ...)
// 3. 高危操作 → 自动进入审批流程
// 4. 全链路 AI 日志记录
}
```
------
## 💡 项目难点与解决方案
| 难点 | 解决方案 |
|------|----------|
| 多集群 TLS 证书信任 | 解析 kubeconfig 中的 CA,动态构建 TLS Config |
| 权限隔离粒度细 | 三层模型 + 前后端双重校验 |
| 配置热更新 | 数据库存储 + 内存缓存,修改后立即生效 |
| 空集群启动 | 降级策略,无集群时跳过 K8s 初始化 |
| 错误码统一 | 全局错误码体系 + 中间件统一处理 |
| 前后端类型一致性 | DAO 层强制返回空切片而非 nil |
| AI 多模型兼容性 | Provider Registry 抽象层 + 统一 OpenAI 协议适配 |
| AI 调用问题排查 | 独立 AI 日志 + 全链路追踪 + API 查询接口 |
| CI/CD 14 阶段闭环 | DefaultStageDefinitions 声明式阶段 + Jenkins 回调协议 + 动态阶段推断 |
| GitOps 双模并存 | DeployMode 策略分发 + ArgoCD Webhook 回调 + Argo Workflows 轮询 fallback |
| 代码质量管控 | SonarQube 4 语言统一集成 + 质量门禁自动拦截 + 扫描报告回传 |
| 制品全生命周期 | SHA256 完整性校验 + 1MB 大缓冲区加速 I/O + 流式下载 |
| 构建性能优化 | BuildKit 本地层缓存 + nerdctl push --concurrency 8 并发推送 |
| 构建探针全自动注入 | 平台 API 自动拉取 + 动态 Dockerfile 生成 + 三级降级策略 |
| 容器终端桥接 | WebSocket ↔ SPDY 双协议桥接 + Shell 自动检测 + 心跳保活 |
| 应用商城组件化部署 | 多组件自动创建 + Pod Ready 等待 + 部分就绪降级 |
| Loki 多数据源实时切换 | 数据源管理 DB + currentDs.type 计算属性自动切换 Metrics/Logs 视图 |
| Loki 后端日志接入 | `pkg/loki/client.go` 封装 QueryRange/Labels/Series/Healthy API,层次分明 |
| LogQL 自动查询 | 进入页面健康检查 → 拉取活跃流 → 自动构建表达式并执行,体验零门槛起步 |
| 告警多群路由分发 | 路由策略优先级调度 + severity/group/labels 多维匹配 + 兜底策略 + Worker 自动回退 |
| 告警规则与渠道解耦 | 规则定义触发条件、路由策略定义分发目标,YAML 导入自动绑定 + 批量操作 3 种模式 |
------
------
## 📈 项目收益
通过这个平台,运维团队可以:
- **效率提升**:多集群统一管理,减少 80% 切换成本
- **安全合规**:细粒度权限隔离,满足审计要求
- **降低门槛**:开发人员无需学习 kubectl,可视化操作
- **AI 赋能**:自然语言操作 K8s,零门槛运维,高危自动拦截审批
- **质量保障**:SonarQube 代码扫描 + 质量门禁,从源头把控代码质量
- **制品管理**:构建产物全链路追踪,版本可查、文件可下载、统计可视
- **探针管理**:构建探针上传即生效,全自动注入到 Docker 镜像,零运维成本
- **终端体验**:浏览器内直接进入容器 Shell,免去 kubectl 配置
- **告警治理**:多群路由智能分发,按团队/级别自动推送,告警不漏发不轰炸
- **应用商城**:一键部署开源组件,降低基础设施搭建成本
------
## 📦 项目结构(真实仓库对应)
```bash
k8soperation/
├── cmd/k8soperation/ # 程序入口
├── configs/ # 配置文件(config.yaml / k8s.yaml)
├── docs/ # 部署文档 / SQL / Swagger
├── global/ # 全局变量(DB/Redis/Logger/AILogger)
├── initialize/ # 初始化(日志/数据库/路由/集群)
├── internal/
│ ├── app/
│ │ ├── controllers/ # API 控制器(含 AI / CI/CD / 制品库 / 探针 / 终端 / 应用商城)
│ │ ├── services/ # 业务服务(含 AI / 流水线 / 制品 / SonarQube / 探针 / 应用商城)
│ │ ├── models/ # 数据模型(含 CicdArtifact / SonarQube / BuildAgent / AppStore)
│ │ ├── dao/ # 数据访问层
│ │ └── routers/ # 路由注册
│ ├── bootstrap/ # 启动编排
│ └── errorcode/ # 统一错误码
├── pkg/
│ ├── k8s/ # K8s 客户端封装(含容器终端 WebSocket 桥接)
│ ├── loki/ # Loki HTTP API 客户端(QueryRange/Labels/Series/健康检查)
│ ├── openai/ # AI 多模型 Provider Registry
│ ├── jwt/ # JWT 认证
│ ├── jenkins/ # Jenkins CI 集成(连接池化 + 缓存优化)
│ ├── argocd/ # ArgoCD API 客户端(Application管理/同步状态)
│ └── argoworkflows/ # Argo Workflows API 客户端(Workflow提交/日志)
├── configs/
│ ├── jenkins-templates/ # 多语言 Jenkins 流水线模板
│ │ ├── go-pipeline.groovy
│ │ ├── java-spring-pipeline.groovy
│ │ ├── python-pipeline.groovy
│ │ └── frontend-pipeline.groovy
│ ├── dockerfile-templates/ # 多语言 Dockerfile 模板
│ └── argo-workflow-templates/ # Argo Workflow 模板 (go/java/frontend/python)
├── k8s-web/ # Vue3 前端项目
│ └── src/
│ ├── views/monitoring/
│ │ ├── Monitoring.vue # 监控主页(数据源切换器)
│ │ ├── LokiView.vue # Loki 日志探索(LogQL查询/健康检查/趋势图)
│ │ ├── Datasources.vue # 数据源管理 CRUD
│ │ ├── AlertRules.vue # 告警规则(含 YAML 导入/批量绑定渠道)
│ │ ├── AlertEvents.vue # 告警事件
│ │ └── NotifyRoute.vue # 通知路由策略管理
│ └── components/AiAssistant.vue # AI 助手前端组件
├── build/ # Docker / Containerd 构建
├── storage/
│ ├── logs/ # 日志(app.log / biz.log / ai.log)
│ └── artifacts/ # 制品存储(pipeline_id/日期/文件)
└── docs/ # 部署文档 / SQL / Swagger / 发布流程
```
------
## ⚙️ 快速启动
> 📖 **完整操作手册**:[QUICK_START.md](QUICK_START.md) — 包含详细的环境准备、配置说明、Docker 部署、常见问题等
### 🚀 一键启动(推荐)
项目提供一键脚本,自动完成 **环境检查 → 数据库初始化 → 配置生成 → 编译 → 启动**:
```bash
# Linux / macOS
git clone https://gitee.com/jay-kim/k8s_operation.git
cd k8s_operation
chmod +x scripts/*.sh
bash scripts/quick-start.sh
```
```powershell
# Windows (PowerShell)
git clone https://gitee.com/jay-kim/k8s_operation.git
cd k8s_operation
powershell -ExecutionPolicy Bypass -File scripts\quick-start.ps1
```
> 💡 所有配置均可通过环境变量覆盖:`DB_HOST`、`DB_PASS`、`REDIS_HOST`、`REDIS_PASS` 等,详见 [QUICK_START.md](QUICK_START.md#七脚本工具一览)
### 📋 环境要求
| 组件 | 最低版本 | 说明 |
|------|---------|------|
| **Go** | 1.21+ | 后端编译(必须) |
| **MySQL** | 5.7+ | 主数据库(必须) |
| **Redis** | 5.0+ | Session/缓存(必须) |
| Node.js | 20+ | 前端编译(可选) |
| Docker | 20+ | 容器化部署(可选) |
### 🔧 手动分步启动
```bash
# 1. 克隆仓库
git clone https://gitee.com/jay-kim/k8s_operation.git
cd k8s_operation
# 2. 初始化数据库(MySQL 8.0+,含 34 张表 + RBAC 权限 + CICD 模板)
mysql -u root -padmin123 --default-character-set=utf8mb4 < docs/sql/k8s_platform_full_init.sql
# 或使用脚本:bash scripts/init-db.sh
# 3. 生成配置文件
cp configs/config.yaml.example configs/config.yaml
# 编辑 configs/config.yaml 修改数据库/Redis 连接信息
# 4. 编译 & 启动后端
make build
./bin/k8soperation
# 后端运行在 http://localhost:8080
# 5. 编译 & 启动前端
cd k8s-web
npm install
npm run dev
# 前端运行在 http://localhost:5173
```
### 🐳 Docker 一键部署
```bash
# 单架构构建
make docker-build && make docker-run
# 多架构构建(amd64 + arm64)
make docker-buildx IMAGE=registry.example.com/k8soperation:latest
```
### 🔑 访问系统
| 服务 | 地址 |
|------|------|
| 前端界面 | http://localhost:5173 |
| 后端 API | http://localhost:8080 |
| Swagger 文档 | http://localhost:8080/swagger |
| 默认账号 | `admin` / `admin123` |
### 🛠 脚本工具
| 脚本 | 平台 | 用途 |
|------|------|------|
| `scripts/quick-start.sh` / `.ps1` | Linux/Mac / Windows | 一键启动(全自动) |
| `scripts/check-env.sh` / `.ps1` | Linux/Mac / Windows | 仅检查环境依赖 |
| `scripts/init-db.sh` / `.ps1` | Linux/Mac / Windows | 独立数据库初始化 |
------
## 📄 部署文档(强烈推荐阅读)
官方部署说明文档(包括 **后端服务** 与 **前端管理界面** 的部署方式):
📖 **GitOps 操作指南(ArgoCD + Argo Workflows)**:
👉 https://gitee.com/jay-kim/k8s_operation/blob/master/docs/GitOps-ArgoCD-ArgoWorkflows-完整操作指南.md
👉 **K8sOperation 后台系统部署文档(后端)**
https://gitee.com/jay-kim/k8s_operation/blob/master/docs/📄%20K8sOperation%20后台系统部署文档.md
👉 **前端管理系统部署文档(k8s-web)**
https://gitee.com/jay-kim/k8s_operation/blob/master/docs/%E5%89%8D%E7%AB%AF%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3.md
---
### 后端部署文档内容包括:
- 构建后端二进制
- Docker / Containerd 镜像构建(支持 **amd64 / arm64** 多架构)
- 使用 Systemd 管理服务
- Kubernetes Deployment / Service 部署示例
- 参数说明与优化建议
- 生产环境目录规划
---
### 前端部署文档内容包括:
- 前端项目构建(Vite)
- 环境变量配置(API_BASE)
- Nginx 部署(SPA 路由支持)
- Docker 部署
- Kubernetes(Deployment / Service / Ingress)
- 与后端 API 对接说明
## 🔗 关联项目(推荐配套使用)
### 📘 AppConfig Operator
(Kubebuilder 开发,用于管理自定义资源 AppConfig)
👉 https://gitee.com/jay-kim/appconfig-operator
Operator → 管理 AppConfig CRD
k8soperation → 提供 HTTP API/Web 后台
两者解耦,便于独立演进。
------
## 📋 版本更新日志
### v2.5.0 (2026-07-08)
**🎉 GitOps 双模发布:ArgoCD + Argo Workflows 集成**
- 🚀 **GitOps 部署模式**:新增 `deploy_mode` 字段,支持 Jenkins(推模式)和 GitOps(拉模式)双模并存
- 🔄 **ArgoCD 集成**:原生 ArgoCD API 客户端,支持 Application 管理、同步状态追踪、Webhook 回调
- ⚡ **Argo Workflows 集成**:4 语言 WorkflowTemplate(Go/Java/Python/前端),Kaniko 镜像构建 + Git Manifest 自动更新
- 🔗 **完整 GitOps 链路**:平台触发 → Argo Workflow CI → 更新 Git Manifest → ArgoCD 检测 → Auto Sync → Webhook 回调平台
- 📊 **同步状态追踪**:`sync_status`/`sync_revision` 实时展示,GitOpsSyncWorker 轮询 fallback
- 📄 **完整操作文档**:[docs/GitOps-ArgoCD-ArgoWorkflows-完整操作指南.md](docs/GitOps-ArgoCD-ArgoWorkflows-完整操作指南.md)
- 🗄️ **DB 兼容升级**:幂等补丁自动新增 8 个字段,存量库零停机升级
### v15.0 (2025-06-24)
**前端体验优化 & 部署更新**
- ✨ **构建跳转优化**:点击「发布」或触发构建后,自动跳转到「执行阶段」界面,实时查看各阶段进度
- 🔧 **统一导航策略**:AppCenter、Pipelines、PipelineDetail、PipelineCreate、Releases 五个组件统一跳转 `?tab=stages`
- 🐛 **修复审批页白屏**:更新前端部署镜像至 v14.9,修复 `/cicd/approvals` 页面白屏问题
- 📦 **前端镜像**:`registry.cn-hangzhou.aliyuncs.com/k8s-gos/devops-fe:v14.9`
------
## ⭐ Star / Watch / Fork
如果本项目对你有帮助,非常欢迎:
- ⭐ **Star**
- 👀 **Watch**
- 🍴 **Fork**
你的支持是我持续完善的最大动力!
------
## 📝 更新日志
### v16.16 (2026-07-25)
**新功能**:
- 版本回滚弹窗:当前版本 VS 目标版本对比卡片,Deployment/StatefulSet 均支持
- CICD 批量回滚:带版本对比确认对话框
- 平台监控大盘:Grafana Dashboard JSON + 8 条 Prometheus 告警规则
- 平台健康中心新增 8 个性能指标卡片(API 请求量/CICD 成功率/错误率/DB 连接数等)
- 蓝鲸风格深色登录主题
**修复/优化**:
- 前端 Dockerfile:`npm ci` → `npm install`,修复 lock 文件不同步
- 添加 `gettext` 到 nginx 镜像,修复 `envsubst` 缺失
- 后端 Dockerfile 运行时添加 `git`,修复仓库验证失败
- Kaniko 构建简化:仅用 `--cache=true`,移除 `--cache-repo` 避免层引用丢失
- 前端部署移除 nginx ConfigMap 只读挂载,修复 entrypoint `mv` 冲突
- Makefile 支持任意目录执行
**UI**:
- Arco Design 线形图标全面替换 Emoji(80+ 页面)
- YAML 编辑器弹窗布局修复(flex 自适应高度)
---
## 📜 License
Apache-2.0