kubectl-ai

GitHub
1.2k 89 简单 1 次阅读 5天前MIT语言模型Agent图像插件开发框架
AI 解读 由 AI 自动生成,仅供参考

kubectl-ai 是一款专为 Kubernetes 开发者设计的命令行插件,它能利用大语言模型(如 OpenAI GPT 或本地部署的兼容模型)直接生成并应用 Kubernetes 资源清单文件。在日常开发和测试中,工程师往往需要花费大量时间搜索、拼凑或手动编写复杂的 YAML 配置文件,而 kubectl-ai 通过自然语言交互,让用户只需描述需求即可自动获得准确的配置代码,从而显著减少查找随机模板的繁琐过程。

该工具特别适合熟悉 kubectl 命令的 DevOps 工程师、后端开发者以及云原生技术爱好者。其核心亮点在于高度的灵活性与智能化:不仅支持标准的 OpenAI 接口和 Azure OpenAI 服务,还允许用户通过 AIKit 等方案在无 GPU 环境下搭建本地兼容端点,保障数据隐私与离线可用性。此外,kubectl-ai 可选集成 Kubernetes OpenAPI 规范,结合模型的功能调用能力,生成包含自定义资源定义(CRD)在内的高精度清单,并内置确认机制防止误操作。无论是快速原型验证还是日常运维辅助,它都能成为提升工作效率的得力助手。

使用场景

某后端工程师在紧急排查生产环境问题时,需要快速部署一个带有特定健康检查配置和资源限制的临时 Nginx 服务进行流量复现。

没有 kubectl-ai 时

  • 工程师需在搜索引擎中反复查找碎片化的 YAML 模板,难以确认哪些字段适用于当前集群版本。
  • 手动编写复杂的 livenessProberesources 配置时,极易因缩进错误或字段拼写失误导致部署失败。
  • 若涉及自定义 CRD(如监控规则),必须查阅大量文档才能构造出符合 OpenAPI 规范的完整清单。
  • 从查找、修改到最终应用,整个流程耗时较长,严重拖慢了故障排查的响应速度。

使用 kubectl-ai 后

  • 只需输入自然语言指令(如“创建一个带健康检查的 Nginx"),kubectl-ai 即可结合集群 OpenAPI 规范自动生成精准清单。
  • 工具自动处理繁琐的 YAML 语法细节,确保缩进、类型及必填字段完全正确,消除人为笔误。
  • 能够智能识别集群中已安装的 CRD,直接生成包含自定义资源的复杂配置,无需人工查阅文档。
  • 配合 --require-confirmation 标志,工程师可在预览确认后立即应用,将准备时间从半小时压缩至几分钟。

kubectl-ai 通过将自然语言意图直接转化为符合集群规范的可执行代码,彻底消除了手动编写 Kubernetes 清单的认知负荷与时间成本。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU
  • 非必需
  • 若使用云端 OpenAI/Azure API 则无需 GPU
  • 若本地部署兼容接口(如 AIKit/LocalAI),README 指出可在无 GPU 环境下运行,具体硬件需求取决于所选本地模型
内存

未说明

依赖
notes1. 必须预先配置有效的 Kubernetes 集群及 kubeconfig。2. 核心依赖为 OpenAI API 密钥、Azure OpenAI 服务或本地兼容接口(如 AIKit)。3. 可通过 Homebrew、Krew 或直接下载二进制文件安装。4. 支持通过环境变量自定义 API 端点、模型名称及温度参数。5. 可选功能包括利用 Kubernetes OpenAPI Spec 提高生成准确性(需支持 function calling 的模型)。
python未说明
kubectl
OpenAI API Key 或 Azure OpenAI 凭证
kubectl-ai hero image

快速开始

Kubectl OpenAI 插件 ✨

本项目是一个 kubectl 插件,用于使用 OpenAI GPT 生成并应用 Kubernetes 清单文件。

我的主要动机是避免在开发或测试时手动查找和收集各种随机的清单文件。

演示

asciicast

安装

Homebrew

添加到 brew tap 并安装:

brew tap sozercan/kubectl-ai https://github.com/sozercan/kubectl-ai
brew install kubectl-ai

Krew

添加到 krew 索引并安装:

kubectl krew index add kubectl-ai https://github.com/sozercan/kubectl-ai
kubectl krew install kubectl-ai/kubectl-ai

GitHub 发布

  • GitHub 发布页面 下载二进制文件。

  • 如果您希望将其用作 kubectl 插件,请将 kubectl-ai 二进制文件复制到您的 PATH 中。否则,您也可以单独使用该二进制文件。

使用方法

前提条件

kubectl-ai 需要有效的 Kubernetes 配置,并且需要以下之一:

对于 OpenAI、Azure OpenAI 或兼容 OpenAI API 的端点,您可以使用以下环境变量:

export OPENAI_API_KEY=<您的 OpenAI 密钥>
export OPENAI_DEPLOYMENT_NAME=<您的 OpenAI 部署/模型名称,默认为 "gpt-3.5-turbo-0301">
export OPENAI_ENDPOINT=<您的 OpenAI 端点,例如 "https://my-aoi-endpoint.openai.azure.com" 或 "http://localhost:8080/v1">

如果设置了 OPENAI_ENDPOINT 变量,则会使用该端点;否则将使用 OpenAI API。

Azure OpenAI 服务不允许在部署名称中使用某些字符,例如 .。因此,kubectl-ai 会自动将 gpt-3.5-turbo 替换为 gpt-35-turbo 以适应 Azure。但是,如果您使用的 Azure OpenAI 部署名称与模型名称完全不同,可以设置 AZURE_OPENAI_MAP 环境变量来映射模型名称到 Azure OpenAI 部署名称。例如:

export AZURE_OPENAI_MAP="gpt-3.5-turbo=my-deployment"

设置一个本地兼容 OpenAI API 的端点

如果您没有 OpenAI API 访问权限,可以在本地机器上使用 AIKit 设置一个本地兼容 OpenAI API 的端点,无需任何 GPU!有关更多信息,请参阅 AIKit 文档

docker run -d --rm -p 8080:8080 ghcr.io/sozercan/llama3.1:8b
export OPENAI_ENDPOINT="http://localhost:8080/v1"
export OPENAI_DEPLOYMENT_NAME="llama-3.1-8b-instruct"
export OPENAI_API_KEY="n/a"

按照上述方式设置环境后,您可以像往常一样使用 kubectl-ai

标志和环境变量

  • --require-confirmation 标志或 REQUIRE_CONFIRMATION 环境变量可用于在应用清单之前提示用户确认。默认为 true。

  • --temperature 标志或 TEMPERATURE 环境变量可设置为 0 到 1 之间的值。较高的温度会产生更具创造性的补全结果,而较低的温度则会产生更确定性的补全结果。默认为 0。

  • --use-k8s-api 标志或 USE_K8S_API 环境变量可用于使用 Kubernetes OpenAPI 规范生成清单。这将产生非常准确的补全结果,包括 CRD(如果配置的集群中存在)。此设置会使用更多的 OpenAI API 调用,并且需要 函数调用,而该功能仅在 0613 或更高版本的模型中可用。默认为 false。不过,为了准确性和完整性,建议启用此选项。

  • --k8s-openapi-url 标志或 K8S_OPENAPI_URL 环境变量可用于指定自定义的 Kubernetes OpenAPI 规范 URL。此设置仅在启用 --use-k8s-api 时生效。默认情况下,kubectl-ai 会使用已配置的 Kubernetes API 服务器获取规范,除非您配置了此设置。您可以使用 默认的 Kubernetes OpenAPI 规范 或生成包含自定义资源定义 (CRD) 的自定义规范。您可以通过运行 kubectl get --raw /openapi/v2 > swagger.json 来生成自定义的 OpenAPI 规范。

管道输入和输出

Kubectl AI 可以与管道输入和输出一起使用。例如:

$ cat foo-deployment.yaml | kubectl ai "将副本数改为 5" --raw | kubectl apply -f -

保存到文件

$ cat foo-deployment.yaml | kubectl ai "将副本数改为 5" --raw > my-deployment-updated.yaml

与外部编辑器结合使用

如果您想使用外部编辑器编辑生成的清单,可以设置 --raw 标志,并将其通过管道传递给您选择的编辑器。例如:

# Visual Studio Code
$ kubectl ai "创建一个 foo 命名空间" --raw | code -

# Vim
$ kubectl ai "创建一个 foo 命名空间" --raw | vim -

示例

创建具有特定值的对象

$ kubectl ai "创建一个拥有 3 个副本的 nginx 部署"
✨ 尝试应用以下清单:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
使用方向键导航:↓ ↑ → ←
? 您是否要应用此清单?[重新提示/应用/不应用]:
+   重新提示
  ▸ 应用
    不应用

重新提示以优化您的提示

...
重新提示:更新为 5 个副本,并将端口改为 8080
✨ 尝试应用以下清单:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 5
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 8080
使用方向键导航:↓ ↑ → ←
? 您是否要应用此清单?[重新提示/应用/不应用]:
+   重新提示
  ▸ 应用
    不应用

多个对象

$ kubectl ai "创建一个名为 foo 的命名空间,然后在该命名空间中创建一个 nginx Pod"
✨ 尝试应用以下清单:
apiVersion: v1
kind: Namespace
metadata:
  name: foo
---
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: foo
spec:
  containers:
  - name: nginx
    image: nginx:latest
使用方向键导航:↓ ↑ → ←
? 您是否要应用此清单?[重新提示/应用/不应用]:
+   重新提示
  ▸ 应用
    不应用

可选的 --require-confirmation 标志

$ kubectl ai "创建一个类型为 LoadBalancer、选择器为 'app:nginx' 的服务" --require-confirmation=false
✨ 尝试应用以下清单:
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
  - port: 80
    targetPort: 80
  type: LoadBalancer

请注意,该插件目前尚无法了解集群的当前状态,因此它始终会生成完整的清单。

版本历史

v0.0.132024/08/05
v0.0.122024/03/09
v0.0.112023/08/01
v0.0.102023/05/03
v0.0.92023/04/16
v0.0.82023/04/15
v0.0.72023/04/12
v0.0.62023/03/22
v0.0.52023/03/21
v0.0.42023/03/20
v0.0.32023/03/20
v0.0.22023/03/20
v0.0.12023/03/20

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

158.1k|★★☆☆☆|今天
开发框架Agent语言模型

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|今天
Agent插件

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|6天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像