Kubernetes AI 代理
使用简单的问题与您的Kubernetes集群交谈!
这有什么作用?
用简单的英语询问有关Kubernetes集群的问题并获得答案。
示例:
- “列出我的所有Pod”
- “哪些吊舱在运行?”
- “显示我的服务”
先决条件
在开始之前,请确保您已经:
- AWS账户 具有凭据(访问密钥ID和秘密访问密钥)
- 码头工人 已安装在您的计算机上
- 地形 已安装(以创建集群)
- kubectl 的 已安装(用于管理Kubernetes)
- Python 3.10+ 安装
- Git 安装
什么是MCP服务器?
MCP=模型上下文协议
这是一座让人工智能与Kubernetes对话的桥梁。没有MCP,AI不知道如何从集群中获取信息。
可以这样想: 一个帮助AI和Kubernetes相互理解的翻译器。
Strands是什么?
一个Python工具,用于连接:
- 人工智能模型(亚马逊基岩)
- 工具(MCP服务器)
它使构建人工智能代理变得容易!
运作原理
YOU
↓
AI Agent (Python)
↓
Amazon Bedrock ↔ MCP Server
(AI Brain) (Kubernetes Expert)
↓
Kubernetes Cluster简单流程:
- 你问了一个问题
- AI Agent将其发送到亚马逊基岩(智能AI)
- Bedrock要求MCP服务器从Kubernetes获取信息
- MCP服务器读取集群并返回数据
- 你得到你的答案!
完整架构
graph TB
subgraph "Setup Phase"
A[1. Configure AWS Credentials] --> B[2. Create EKS Cluster
using Terraform]
B --> C[3. Build MCP Server
Docker Image]
C --> D[4. Push to Docker Hub]
D --> E[5. Deploy MCP Server
to Kubernetes]
end
subgraph "Kubernetes Cluster"
E --> F[MCP Server Pod
with RBAC Permissions]
F --> G[LoadBalancer Service
Port 8080]
F --> H[Kubernetes API
Reads cluster info]
end
subgraph "AI Agent Setup"
G --> I[6. Copy LoadBalancer URL]
I --> J[7. Update k8s-ai-agent.py]
J --> K[8. Install Python Packages]
K --> L[9. Run AI Agent]
end
subgraph "Runtime Flow"
M[You Ask Question:
'List all pods'] --> N[Python AI Agent]
N --> O[Amazon Bedrock AI
Claude Model]
O --> P[MCP Server
via LoadBalancer]
P --> H
H --> Q[Returns Cluster Data]
Q --> P
P --> O
O --> N
N --> R[You Get Answer:
Pod list with status]
end
style A fill:#e1f5ff
style B fill:#e1f5ff
style D fill:#ffe1e1
style F fill:#fff4e1
style G fill:#ffe1ff
style O fill:#e1ffe1
style R fill:#90EE90安装指南
步骤1:配置AWS
aws configure您将被要求:
- AWS访问密钥ID:您的AWS访问密钥
- AWS秘密访问密钥:您的AWS密钥
- 默认区域:选择一个地区(例如。,
us-east-1) - 默认输出格式:按Enter键(默认值很好)
步骤2:创建EKS集群
cd EKS-cluster
terraform init
terraform plan --var-file=vpc-eks-cluster.tfvars
terraform apply --var-file=vpc-eks-cluster.tfvars⏱️ 这大约需要10-15分钟。Terraform将在AWS上创建Kubernetes集群。
步骤3:将MCP服务器部署到Kubernetes
3.1克隆MCP服务器存储库
git clone https://github.com/containers/kubernetes-mcp-server.git
cd kubernetes-mcp-server3.2构建和推送Docker镜像
docker build -t your-username/k8s-mcp-server:v1 .
docker push your-username/k8s-mcp-server:v1重要提示: 替换 your-username 使用您的Docker Hub用户名。
3.3更新部署文件
打开 deployment.yaml 并更新图像名称:
image: your-username/k8s-mcp-server:v1 # Change this to your Docker Hub username3.4部署到Kubernetes
kubectl apply -f deployment.yaml这将创建:
- 命名空间:
mcp-system(MCP服务器的单独空间) - 服务账户:
mcp-server-sa(服务器的身份) - 集群角色:读/写Pod、服务、部署的权限
- 部署:运行MCP服务器pod
- 负载均衡器:使服务器可从外部访问
3.5验证部署
kubectl get svc -n mcp-system
kubectl get pods -n mcp-system等待吊舱状态显示 Running LoadBalancer显示 EXTERNAL-IP.
输出示例:
NAME TYPE EXTERNAL-IP PORT(S)
mcp-server LoadBalancer a1b2c3d4e5f6g7h8i9j0.us-east-1.elb.amazonaws.com 8080:31234/TCP步骤4:设置Python AI代理
4.1复制负载平衡器URL
复制 EXTERNAL-IP 从上一步开始。
4.2更新代理配置
打开 ai-agent/k8s-ai-agent.py 并更新:
LOADBALANCER_URL = "http://YOUR-EXTERNAL-IP-HERE:8080/sse"例子:
LOADBALANCER_URL = "http://a1b2c3d4e5f6g7h8i9j0.us-east-1.elb.amazonaws.com:8080/sse"4.3安装Python包
cd ai-agent
uv venv
source .venv/Scripts/activate # On Windows
# OR
source .venv/bin/activate # On Mac/Linux
uv pip install -r requirements.txt步骤5:运行AI代理
python k8s-ai-agent.py对话示例
You: List all pods
Agent: Here are your pods in the cluster:
- mcp-server-5f8f798d8d-94bjd (Running)
- nginx-deployment-7d48b9c8f-xk2l9 (Running)
- redis-master-0 (Running)
You: Show me services
Agent: Here are your services:
- mcp-server (LoadBalancer, port 8080)
- kubernetes (ClusterIP, port 443)
- nginx-service (NodePort, port 80)
You: exit
Goodbye!项目结构
k8s-ai-project/
├── EKS-cluster/ # Terraform files to create Kubernetes cluster
├── k8s-mcp-server/ # MCP Server deployment files
│ └── deployment.yaml # Kubernetes resources
└── ai-agent/ # Python AI agent
├── k8s-ai-agent.py # Main agent script
└── requirements.txt # Python dependencies故障排除
问题:“连接到MCP服务器失败”
解决方案:
# Check if MCP Server pod is running
kubectl get pods -n mcp-system
# Check pod logs for errors
kubectl logs -n mcp-system -l app=mcp-server
# Verify LoadBalancer has external IP
kubectl get svc -n mcp-system问题:“找不到AWS凭据”
解决方案:
# Reconfigure AWS credentials
aws configure
# Verify credentials
aws sts get-caller-identity问题:“端口已在使用中”
解决方案: MCP服务器使用端口8080。确保没有其他应用程序正在使用此端口。
问题:MCP服务器出现“权限被拒绝”错误
解决方案: 检查ClusterRole是否具有正确的权限:
kubectl describe clusterrole mcp-server-role清理
要删除所有内容并避免AWS收费:
# Delete MCP Server
kubectl delete -f deployment.yaml
# Delete EKS Cluster
cd EKS-cluster
terraform destroy --var-file=vpc-eks-cluster.tfvars你学到了什么
✅ 如何在AWS上创建Kubernetes集群\ ✅ 如何将应用程序部署到Kubernetes\ ✅ 什么是MCP服务器及其工作原理\ ✅ 如何构建一个与Kubernetes对话的AI代理\ ✅ 人工智能模型如何与云基础设施交互
关键概念解释
为什么我们需要所有这些工具?
- 地形:自动创建Kubernetes集群(而不是在AWS控制台中单击)
- 码头工人:打包MCP服务器,使其可以在任何地方运行
- kubectl 的:用于管理Kubernetes的命令行工具
- MCP服务器:人工智能和Kubernetes之间的桥梁
- 缕:使人工智能模型与工具的连接变得容易
- 亚马逊基石:理解你问题的人工智能大脑
______________________________________________________________________
由...制作❤️ - 问你的Kubernetes集群任何问题!
有问题吗? 在GitHub上发布一个问题!
