k8sgpt-ai/k8sgpt-operator

Automatic SRE Superpowers within your Kubernetes cluster

k8sgpt‑operator – Kubernetes 的 AI 驱动分析与自动修复

它是什么 – 一个 Kubernetes Operator,在集群内运行 K8sGPT 引擎。它监视集群,将资源数据发送给可配置的 LLM(OpenAI、Azure OpenAI、Bedrock、LocalAI 等),接收诊断建议,并可自动应用安全、单步骤的修复(例如,替换失败的容器镜像)。所有 LLM 调用皆为只读;operator 本身构建 JSON‑patch,并在策略管控和预演后应用。

主要功能

  • 自动修复(alpha,选择加入) – 检测 ImagePullBackOff 等失败,要求 LLM 提供修复方案,生成语义补丁,进行预演,然后推出修正后的工作负载。LLM 永远没有写入权限。
  • 多集群监控 – 通过提供 kubeconfig 密钥,operator 可以从中央“种子”集群管理远程集群(对 Cluster‑API 集群群很有用)。
  • 可插拔 AI 后端 – OpenAI、Azure OpenAI、Amazon Bedrock、LocalAI,以及通过 spec.ai.backend 字段支持任何兼容的提供商。
  • 分布式缓存 – 可选的 Interplex RPC 缓存、Azure Blob 或 S3 缓存,以避免重复的 LLM 调用。
  • 可配置的分析 – 间隔、资源限制、镜像拉取策略、自定义容器镜像,以及通过 spec.filters 选择的丰富分析器(核心和可选)。
  • 结果对象 – 发现结果以 Result CRD 形式发出,并标记来源 K8sGPT 实例、命名空间和后端,方便过滤。
  • 集成(接收器) – 将结果发送到 Slack、Mattermost、CloudEvents 等。

安装(Helm)

helm repo add k8sgpt https://charts.k8sgpt.ai/
helm repo update
helm install release k8sgpt/k8sgpt-operator \
  -n k8sgpt-operator-system --create-namespace

开始使用 – 使用您的 LLM 凭据创建密钥,然后应用 K8sGPT 自定义资源。OpenAI 示例:

apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
  name: k8sgpt-sample
  namespace: k8sgpt-operator-system
spec:
  ai:
    enabled: true
    model: gpt-4o-mini
    backend: openai
    secret:
      name: k8sgpt-sample-secret
      key: openai-api-key
  repository: ghcr.io/k8sgpt-ai/k8sgpt
  version: v0.4.32

Operator 将启动 K8sGPT 部署,开始扫描,并创建您可以用 kubectl get results 查看的 Result 对象。

启用自动修复 – 添加修复 CR(valid_k8sgpt_remediation_sample.yaml)并设置 spec.autoRemediation.enabled: true。然后 operator 将尝试对检测到的镜像拉取失败进行单镜像修复,并受上述安全闸门约束。

为何重要 – 它将 LLM 驱动的可观测性和自我修复带到 Kubernetes,而不授予 LLM 直接写入权限,符合安全最佳实践,同时缩短常见集群问题的平均解决时间。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目