AI

AIOps 项目学习计划

·10 分钟阅读·3638 字

面向 AIOps 项目的 Python、GPU、Prometheus、Kubernetes 与 Agent 学习路线

📋 目录

AIOps 项目学习计划

结合你目前的学习方向(AI 与大模型、Kubernetes/云原生、Python、自动化运维、AIOps),以及你正在学习 Kubernetes Python SDK、深度学习基础(自动微分),还有你希望把知识沉淀到 Obsidian,建议不要做”刷知识点”式学习,而是采用项目驱动(Project-Based Learning)。

我的建议是把未来 3~4 个月的学习围绕一个最终项目展开:

构建一个 Kubernetes GPU 集群 AIOps Agent

能够自动监控模型训练任务 → 分析异常 → 给出诊断 → 自动恢复。

整个学习过程中,每学一个知识点,就把它加入到这个项目中。


最终项目架构

最终希望达到这样的效果:

                +----------------------+
                |      LLM Agent       |
                +----------+-----------+
                           |
             Function Calling / MCP
                           |
      +--------------------+--------------------+
      |                    |                    |
 Kubernetes API     Prometheus API       GPU(NVML/DCGM)
      |                    |                    |
      +--------------------+--------------------+
                           |
                   Diagnosis Engine
                           |
          +----------------+----------------+
          |                                 |
     Restart Pod                     Send Alert
          |                                 |
      Kubernetes                    Email/Feishu

这个项目会覆盖:

  • Python

  • Kubernetes

  • GPU

  • Prometheus

  • Grafana

  • Docker

  • CUDA

  • PyTorch

  • Agent

  • MCP

  • Function Calling

  • 自动化运维

  • AIOps


第一阶段:Python 与 GPU(约 2 周)

目标:

让 Python 能控制 GPU。

这一阶段不要碰 Kubernetes。


实验 1:读取 GPU 信息

学习内容:

  • nvidia-smi

  • NVML

  • pynvml

需要完成:

Python
│
├── GPU 型号
├── GPU 利用率
├── 显存
├── 温度
├── 功耗
└── 风扇速度(如果支持)

最终:

python gpu_monitor.py

输出:

GPU0

Utilization: 63%

Memory:

4200 / 6144 MB

Temperature:

71℃

实验 2:持续采集 GPU

目标:

每秒采集一次:

GPU
↓

Python

↓

JSON

例如:

{
  "timestamp": "...",
  "gpu": 63,
  "memory": 4200,
  "temperature": 71
}

保存:

metrics/
    gpu.json

实验 3:GPU 压力测试

使用:

PyTorch

写:

while True:
    x @ y

观察:

GPU 利用率变化。

理解:

为什么:

GPU 利用率

显存

并不是同步增长

这一阶段需要掌握:

✅ Python

✅ NVML

✅ CUDA 基础


第二阶段:Prometheus(约 2 周)

目标:

让 GPU 指标进入 Prometheus。


实验 1:Prometheus Exporter

Python:

gpu_monitor.py

改成:

gpu_exporter.py

暴露:

http://localhost:8000/metrics

例如:

gpu_utilization 62

gpu_temperature 71

gpu_memory_used 4211

实验 2:Prometheus

学习:

Prometheus

↓

Scrape

最终:

Prometheus:

成功抓到:

gpu_utilization

实验 3:Grafana

画:

GPU Dashboard:

包括:

  • GPU 利用率

  • 显存

  • 温度

  • 功耗


这一阶段完成:

GPU

↓

Prometheus

↓

Grafana

第三阶段:Kubernetes(约 3 周)

目标:

Python 控制 Kubernetes。


实验 1:本地 K8s

安装:

建议:

k3d

或者:

kind

完成:

kubectl get pod

实验 2:Python SDK

写:

list_pods.py

实现:

获取所有 Pod

然后:

删除 Pod

再:

创建 Job

实验 3:Watch

实现:

实时监听:

Pod 创建

Pod 删除

Pod CrashLoop

实验 4:Log

Python:

自动:

获取 Pod Log

例如:

OOM

CUDA Error

Killed

实验 5:Exec

Python:

进入:

Pod:

执行:

nvidia-smi

或者:

ps

这一阶段结束:

Python:

已经可以:

控制整个 Kubernetes

第四阶段:GPU Kubernetes(约 3 周)

目标:

真正跑 GPU Pod。


安装:

NVIDIA Container Toolkit

↓

Device Plugin

然后:

部署:

GPU Job:

例如:

PyTorch:

训练:

MNIST。


实验

每个 Pod:

持续:

训练。

Python:

获取:

GPU

↓

Pod

↓

Node

映射关系。

例如:

GPU0

↓

Pod

↓

training-job-1

第五阶段:训练监控(约 2 周)

目标:

不仅监控 GPU。

还监控:

训练。


训练程序:

增加:

Prometheus:

Loss

Learning Rate

Step

Epoch

最终:

Grafana:

看到:

Loss 曲线

Python:

判断:

Loss

10 分钟没有下降

↓

报警

第六阶段:规则引擎(约 2 周)

目标:

不用 AI。

先做:

规则。

例如:

GPU 利用率

<10%

持续:

10 分钟

↓

异常

再:

Loss

没有变化

↓

异常

再:

Pod

Restart

>5 次

↓

异常

输出:

诊断:

GPU Idle

原因:

DataLoader

建议:

检查数据集

第七阶段:LLM Agent(约 3 周)

这一阶段:

加入:

LLM。

例如:

Agent:

获取:

GPU

↓

Prometheus

↓

Logs

↓

Pod

↓

综合分析

输出:

训练卡死

原因:

GPU Idle

DataLoader

Worker 死锁

建议:

增加 num_workers

Agent:

调用:

restart_job()

自动恢复。


第八阶段:完整 AIOps 平台(持续完善)

最终形成一个可展示的项目:

Web

↓

FastAPI

↓

Agent

↓

Prometheus

↓

Grafana

↓

Kubernetes

↓

GPU

能够完成:

查看:

GPU

查看:

训练

查看:

Loss

↓

Agent

↓

诊断

↓

恢复

每个阶段的学习方法

建议每个阶段都遵循固定节奏:

第一天阅读官方文档,理解原理
第二天跑官方 Demo
第三天自己从零重写一遍
第四天给 Demo 增加一个新功能
第五天写一篇 Obsidian 笔记(包含原理、代码、踩坑)
第六天把功能集成到最终项目
第七天总结复盘,整理下周计划

这样,你最终不仅会有:

  • 一个持续迭代的 AIOps 项目;

  • 一套完整的 Obsidian 技术知识库;

  • 可展示的 GitHub 项目;

  • 每个阶段都能独立演示的实验成果,而不是一堆零散的 Demo。

建议增加一个“项目成果物”要求

为了避免学完就忘,每个阶段都要求自己交付固定成果:

阶段代码成果文档成果演示成果
GPU 基础gpu-monitorGPU/NVML 原理笔记实时监控 GPU
Prometheusgpu-exporterPrometheus 工作原理Grafana Dashboard
Kubernetesk8s-controllerPython SDK 笔记自动管理 Pod
GPU K8sgpu-trainerGPU 调度笔记GPU 训练 Job
训练监控training-monitor指标设计笔记Loss 曲线与告警
规则引擎diagnosis-engine故障诊断规则自动生成诊断结果
LLM Agentaiops-agentAgent 架构设计自动分析并恢复训练

这样学完后, GitHub、知识库和项目会同步成长,最后形成一个完整的作品集,这对以后找 AIOps、平台工程或 AI 基础设施相关岗位会非常有说服力。

Yanche Blog

记录云原生、Linux、数据库等技术领域的学习心得,以及日常生活的思考与感悟。

© 2026 Yanche Blog. All rights reserved.

Powered by Astro