AI powered Kubernetes Assistant - kubectl-ai使用指南
技术背景
kubectl-ai 是一款由人工智能驱动的 Kubernetes 代理工具,它可以在终端中运行,帮助用户更高效地管理 Kubernetes 集群。通过集成多种 AI 模型,kubectl-ai 能够理解用户的自然语言查询,并执行相应的 kubectl 命令,同时提供结果和解释。
实现步骤
1. 环境准备
首先,确保已经安装并配置好 kubectl。
2. 安装 kubectl-ai
从发布页面为目标机器下载最新版本的 kubectl-ai。解压发布包,使二进制文件可执行,并将其移动到 $PATH 中的目录。
1 2 3
| tar -zxvf kubectl-ai_Darwin_arm64.tar.gz chmod a+x kubectl-ai sudo mv kubectl-ai /usr/local/bin/
|
3. 使用不同的 AI 模型
使用 Gemini(默认)
将你的 Gemini API 密钥设置为环境变量。如果没有密钥,可以从 Google AI Studio 获取。
1 2
| export GEMINI_API_KEY=your_api_key_here kubectl-ai
|
使用不同的 Gemini 模型:
1
| kubectl-ai --model gemini-2.5-pro-exp-03-25
|
使用 2.5 flash(更快)模型:
1
| kubectl-ai --quiet --model gemini-2.5-flash-preview-04-17 "check logs for nginx app in hello namespace"
|
使用本地运行的 AI 模型(ollama 或 llamacpp)
以使用 Google 的 gemma3 模型和 ollama 为例:
1 2 3 4 5 6 7 8
|
kubectl-ai --llm-provider ollama --model gemma3:12b-it-qat --enable-tool-use-shim
>> models
|
使用 Grok
设置 X.AI 的 API 密钥:
1 2
| export GROK_API_KEY=your_xai_api_key_here kubectl-ai --llm-provider=grok --model=grok-3-beta
|
使用 Azure OpenAI
设置 OpenAI API 密钥并指定提供程序:
1 2 3 4 5 6
| export AZURE_OPENAI_API_KEY=your_azure_openai_api_key_here export AZURE_OPENAI_ENDPOINT=https://your_azure_openai_endpoint_here kubectl-ai --llm-provider=azopenai --model=your_azure_openai_deployment_name_here
az login kubectl-ai --llm-provider=openai://your_azure_openai_endpoint_here --model=your_azure_openai_deployment_name_here
|
使用 OpenAI
设置 OpenAI API 密钥并指定提供程序:
1 2
| export OPENAI_API_KEY=your_openai_api_key_here kubectl-ai --llm-provider=openai --model=gpt-4.1
|
使用 OpenAI 兼容 API
例如,使用阿里云的 qwen-xxx 模块:
1 2 3
| export OPENAI_API_KEY=your_openai_api_key_here export OPENAI_ENDPOINT=https://dashscope.aliyuncs.com/compatible-mode/v1 kubectl-ai --llm-provider=openai --model=qwen-plus
|
4. 运行模式
交互式运行
在交互式模式下,你可以与 kubectl-ai 进行聊天,按顺序提出多个问题,同时保持之前交互的上下文。只需输入查询并按 Enter 键即可接收响应。要退出交互式 shell,输入 exit 或按 Ctrl+C。
以任务作为输入运行
1
| kubectl-ai -quiet "fetch logs for nginx app in hello namespace"
|
与其他 Unix 命令结合使用
1 2 3
| kubectl-ai < query.txt
echo "list pods in the default namespace" | kubectl-ai
|
甚至可以将位置参数与标准输入结合使用。位置参数将用作标准输入内容的前缀:
1
| cat error.log | kubectl-ai "explain the error"
|
5. 特殊关键字使用
可以使用以下特殊关键字执行特定操作:
model
:显示当前选择的模型。models
:列出所有可用的模型。version
:显示 kubectl-ai 的版本。reset
:清除对话上下文。clear
:清除终端屏幕。exit
或 quit
:终止交互式 shell(Ctrl+C 也有效)。
6. 作为 kubectl 插件调用
通过 kubectl 插件接口使用:
只要 kubectl-ai 在你的 $PATH 中,kubectl 就会找到它。有关插件的更多信息,请参阅:https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/
核心代码
以下是一些使用 kubectl-ai 的示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| kubectl-ai -quiet "show me all pods in the default namespace"
kubectl-ai -quiet "create a deployment named nginx with 3 replicas using the nginx:latest image"
kubectl-ai -quiet "double the capacity for the nginx app"
kubectl-ai --llm-provider=azopenai --model=your_azure_openai_deployment_name_here -quiet "scale the nginx deployment to 5 replicas"
kubectl-ai --llm-provider=openai --model=gpt-4.1 -quiet "scale the nginx deployment to 5 replicas"
|
最佳实践
- 在使用不同的 AI 模型时,根据具体需求选择合适的模型。例如,如果需要更快的响应速度,可以选择 Gemini 2.5 flash 模型。
- 在交互式模式下,充分利用上下文保持功能,逐步深入解决问题。
- 结合其他 Unix 命令使用 kubectl-ai,提高工作效率。
常见问题
- API 密钥问题:确保正确设置了相应 AI 模型的 API 密钥,否则会导致无法正常使用。
- 模型不可用:如果使用本地模型,确保 ollama 或 llama.cpp 已经正确运行,并且模型已经拉取。
- 插件调用问题:如果 kubectl 无法找到 kubectl-ai 插件,检查 kubectl-ai 是否在 $PATH 中。