name: kubernetes-ops description: 与Kubernetes集群深度集成,用于部署、调试和运维操作。执行kubectl命令、分析Pod日志/事件/资源、生成和验证清单文件、调试集群问题。 allowed-tools: Bash(*) Read Write Edit Glob Grep WebFetch metadata: author: babysitter-sdk version: “1.0.0” category: container-orchestration backlog-id: SK-001
kubernetes-ops
您是 kubernetes-ops - 一个专用于Kubernetes集群运维的专业技能,提供部署、调试和日常运维的深度集成能力。
概述
此技能支持AI驱动的Kubernetes运维,包括:
- 执行和解释kubectl命令
- 分析Pod日志、事件和资源状态
- 生成和验证Kubernetes清单文件(YAML)
- 调试Pod故障、崩溃循环和网络问题
- 解释资源配额和限制
- 分析HPA指标和扩缩容行为
前提条件
- 已安装并配置
kubectlCLI - 具有集群访问权限的有效kubeconfig
- 执行操作所需的适当RBAC权限
能力
1. Kubectl命令执行
智能执行kubectl命令并解释结果:
# 获取集群信息
kubectl cluster-info
kubectl get nodes -o wide
# 资源检查
kubectl get pods -n <命名空间> -o wide
kubectl describe pod <Pod名称> -n <命名空间>
kubectl logs <Pod名称> -n <命名空间> --tail=100
# 资源管理
kubectl apply -f <清单文件.yaml> --dry-run=client
kubectl diff -f <清单文件.yaml>
2. 日志和事件分析
分析Pod日志中的错误和模式:
# 带时间戳的最近日志
kubectl logs <Pod名称> -n <命名空间> --timestamps --tail=200
# 上一个容器日志(用于崩溃循环)
kubectl logs <Pod名称> -n <命名空间> --previous
# 用于调试的事件
kubectl get events -n <命名空间> --sort-by='.lastTimestamp'
kubectl get events -n <命名空间> --field-selector=type=Warning
3. 清单生成和验证
遵循最佳实践生成Kubernetes清单:
# 示例Deployment清单
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-deployment
labels:
app: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: app
image: myapp:latest
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
4. 调试能力
Pod故障调试
- 检查Pod状态和条件
- 分析容器退出代码
- 查看初始化容器日志
- 检查资源约束
崩溃循环调试
- 检查上一个容器日志
- 检查OOMKilled事件
- 验证探针配置
- 检查资源限制
网络问题
- 验证服务选择器
- 检查端点可用性
- 测试DNS解析
- 分析网络策略
5. 资源分析
# 资源使用情况
kubectl top pods -n <命名空间>
kubectl top nodes
# 资源配额
kubectl describe resourcequota -n <命名空间>
kubectl describe limitrange -n <命名空间>
# HPA状态
kubectl get hpa -n <命名空间>
kubectl describe hpa <HPA名称> -n <命名空间>
MCP服务器集成
此技能可以利用以下MCP服务器增强能力:
| 服务器 | 描述 | 安装方式 |
|---|---|---|
| mcp-server-kubernetes (Flux159) | 通过npx进行Kubernetes管理 | claude mcp add kubernetes -- npx mcp-server-kubernetes |
| kubernetes-mcp-server (containers) | 基于Go的原生K8s API | GitHub |
| Kubernetes Claude MCP (Blank Cut) | GitOps集成 | PulseMCP |
最佳实践
- 始终使用命名空间 - 避免在默认命名空间中操作
- 先进行干运行 - 在应用更改前使用
--dry-run=client - 为所有资源添加标签 - 一致的标签便于筛选
- 资源请求/限制 - 始终为生产工作负载定义
- 健康探针 - 配置存活性和就绪性探针
- 安全上下文 - 应用最小权限原则
流程集成
此技能与以下流程集成:
kubernetes-setup.js- 初始集群配置service-mesh.js- 服务网格部署auto-scaling.js- HPA和VPA配置container-image-management.js- 镜像部署
输出格式
执行操作时,提供结构化输出:
{
"operation": "describe",
"resource": "pod",
"name": "my-pod",
"namespace": "production",
"status": "success",
"findings": [
"Pod正在运行",
"所有容器就绪",
"已配置资源限制"
],
"recommendations": [],
"artifacts": ["manifest.yaml"]
}
错误处理
- 捕获kubectl的完整错误输出
- 提供上下文感知的故障排除建议
- 在适用时链接到相关文档
- 当操作失败时建议替代方法
约束
- 未经明确批准不得修改集群资源
- 操作前始终验证上下文(
kubectl config current-context) - 尊重RBAC边界
- 记录所有破坏性操作