从代理人工智能到具有能动性的人工智能:构建可学习的自我修复 Kubernetes 集群

这是关于使用 AI 实现 Kubernetes 自动诊断和修复的系列文章,主要内容如下:

  • Part 1:AI 驱动的 Kubernetes 诊断:构建了一个分析 Kubernetes 容器故障并提出修复建议的 AI 代理,适用于人工干预时,但存在需要人工在场、不记得过往修复等问题。
  • Part 2:从 Agent AI 到 Agentic AI

    • 新系统 Agentic AI:自动监控,连续运行观察、计划、执行和学习四个操作,学习能力强,能根据过往经验快速处理类似问题,如遇到 OOMKilled 会自动增加内存限制。
    • 核心循环:持续扫描命名空间中的所有容器,查找故障并创建修复计划,执行后存储成功模式用于下次快速处理。
    • 模式检测:提前检测常见模式,如图片拼写错误、缺失环境变量、OOMKilled 模式等,减少 GPT-4 调用次数。
    • 内存系统:通过简单的 JSON 文件存储学习结果,成功的修复模式会被保存以供下次使用。
  • 快速设置:需 Python 3.8+、kubectl 配置和 OpenAI API 密钥,约 5 分钟可完成设置,包括克隆仓库、安装依赖、部署测试场景和启动自动监控等。
  • 实际案例

    • 图片拼写错误案例:首次发现并修正,无需 GPT-4 调用,避免重复故障。
    • 缺失环境变量案例:自动分析日志并修复,无需人工干预。
    • 渐进式内存学习案例:系统记住成功的内存调整值,快速处理类似问题,降低 API 调用次数和成本。
  • 实现细节:代码可在github.com/opscart/k8s-ai-diagnostics获取,包括克隆仓库、设置环境、部署测试场景和启动自动监控等步骤。
  • 生产考虑因素:这是一个概念验证,仍存在安全机制缺失(无回滚能力、无验证机制、无审计追踪、无资源管理和无错误边界等),实际部署需分阶段进行,包括观察模式、受控测试、有限范围部署和评估等,并提供了控制操作的命令选项。
  • 结果与权衡

    • 时间到解决:Agentic AI 比 Agent AI 更快,能在短时间内处理 2 AM 的 OOMKilled 场景。
    • 学习效率:随着学习,API 调用次数减少,成本降低,处理问题更高效。
    • 成本比较:Agentic AI 相比 Agent AI 大大降低了人工时间成本。
    • 放弃的东西:自动系统牺牲了部分控制权,带来调试复杂、信任建立和维护负担等问题。
  • 结论:Part 1 的诊断工具等待人工,Part 2 的系统可连续运行和学习,两种方式各有适用场景,此 POC 证明了自治学习在 Kubernetes 操作中的有效性,但仍需进行工程工作来完善,完整实现和比较可在仓库中查看。
阅读 31
0 条评论