kubernetes-patterns Skill:让 Claude Code 写出生产级 K8s YAML 的技能包

写生产级 Kubernetes YAML再也不用手查文档了。ECC 团队把 Deployment、Probes、RBAC、HPA、ConfigMap/Secret 等高频场景封装成一份 SKILL.md,Claude Code 加载后直接输出符合生产标准的 YAML 模板 + kubectl 调试命令,是目前最完整的 K8s 编码 Skill 之一。

功能与原则

ECC kubernetes-patterns 专注于一件事:AI 写对的 Kubernetes YAML

它不是泛泛的示例,而是一套经过生产验证的模板 + 决策表,涵盖:

  • Deployment 模板:安全上下文、RollingUpdate 策略、三种 Probe、资源限制、环境变量注入,一步到位
  • Probe 配置:startup/liveness/readiness 何时用、failureThreshold × periodSeconds 怎么算,给出决策表和正确写法
  • Service 与 Ingress:ClusterIP / LoadBalancer / TLS Ingress,含 cert-manager 注解
  • ConfigMap 与 Secret:envFrom、文件挂载、外部 Secrets 方案(Sealed Secrets / ESO)
  • RBAC:最小权限 ServiceAccount → Role → RoleBinding 链路
  • HPA 与 PDB:自动扩缩容和节点排空安全配置
  • Job 与 CronJob:一次性 / 定时任务,含正确 restartPolicy
  • kubectl 调试速查:CrashLoopBackOff、OOMKilled、pending pods、镜像拉取错误的诊断命令

设计原则:可复制粘贴的生产级代码 + 何时用、怎么改、哪里易错的完整说明

认可度

ECC 本身是 GitHub 超大型开源项目:截至 2026-07-27 约 211.9K ⭐、32.5K Fork、230+ 贡献者,覆盖 12 种语言生态,曾获 Anthropic Hackathon 冠军。kubernetes-patterns 作为 ECC 200+ 内置 Skill 之一,继承了整个项目的工程化积累。

ECC 的 npm 包 ecc-universal 周下载量达数万,说明实际使用群体庞大。

链接

GitHub:https://github.com/affaan-m/ECC

kubernetes-patterns Skill 直接链接:https://github.com/affaan-m/ECC/tree/main/skills/kubernetes-patterns

原作者

Affaan Mustafa(GitHub @affaan-m),ECC (Everything Claude Code) 项目维护者。该项目是他的日常工程工作流沉淀,经过 10 个月以上的密集使用和 2000+ commits 迭代,定位是”AI Coding Agent 的操作系统级工具链”。

介绍

ECC 是目前最完整的 AI Coding Agent 增强系统之一,不仅包含 Skills,还包含 Instincts(记忆优化)、Hooks(自动化工作流)、Rules(工程规范)、MCP 配置等模块。kubernetes-patterns 是其中的 K8s 专项 Skill。

这个 Skill 的核心价值在于:解决了 AI 写 K8s YAML 时”语法对但配置错”的问题。例如:

  • 很多 AI 会写 initialDelaySeconds: 60 作为 livenessProbe 的启动延迟,但没有正确理解 startupProbe 的机制,导致慢启动应用被误杀
  • 很多 AI 不知道 ConfigMap 挂载为文件时的 items 写法
  • 很多 AI 不清楚 HPA 和 PDB 的配合使用场景

kubernetes-patterns 通过带完整上下文的生产模板 + 决策表来解决这些问题,AI 加载后不再靠”感觉”写 YAML,而是对照场景查表。

特点

  • 生产级 Deployment 模板:securityContext(runAsNonRoot、allowPrivilegeEscalation: false、readOnlyRootFilesystem: true)、所有三种 Probe、资源限制、环境变量注入,一份模板覆盖所有安全配置
  • Probe 决策表:明确 startupProbe 适用慢启动应用(JVM/Python),livenessProbe 负责检测死锁,readinessProbe 负责临时不可用;给出 failureThreshold × periodSeconds 的正确计算
  • RBAC 最小权限模板:ServiceAccount → Role → RoleBinding 完整链路,而非直接给 cluster-admin
  • HPA + PDB 联动:自动扩缩容配合节点排空安全策略
  • kubectl 调试速查:CrackLoopBackOff / OOMKilled / pending / ImagePullError 四类常见错误的诊断命令
  • 反模式清单:明确列出哪些写法是错误的(如 :latest 镜像、initialDelaySeconds 滥用等)

使用方法

ECC 内的 Skill 无需单独安装,直接加载整个 ECC 即可使用所有 Skill:

# 方式1:安装完整 ECC
npx ecc install affaan-m/ECC

# 方式2:通过 skills CLI(跨平台)
npx skills add affaan-m/ECC -g

加载后,在 Claude Code 中激活 Kubernetes 相关任务,AI 会自动调用 kubernetes-patterns Skill,例如:

  • “帮我写一个生产级 Deployment”
  • “配置 HPA 自动扩缩容”
  • “Debug 一个 CrashLoopBackOff”
  • “写一个带 RBAC 的定时任务”

AI 会直接输出符合生产标准的 YAML 模板,并附带修改建议和调试命令。

使用场景与人群

适用场景:

  • 在 K8s 上部署微服务 / 后台服务
  • 写 CI/CD 的 K8s manifest
  • 代码审查时检查 K8s YAML 安全性
  • Debug 生产 K8s 问题
  • 学习 K8s 生产最佳实践

目标用户:

  • 后端工程师 / DevOps 工程师
  • 使用 Claude Code / Codex / Cursor 等 AI 编程工具的开发者
  • 需要在 K8s 环境写 YAML 但不确定最佳实践的初中级 K8s 用户

输入与输出案例

案例1:写一个生产级 Deployment

输入:

帮我写一个 Node.js API 的生产级 K8s Deployment,要安全配置和健康检查

输出(AI 调用 kubernetes-patterns Skill 后):

apiVersion: apps/v1
kind: Deployment
metadata:
  name: node-api
  namespace: production
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  template:
    spec:
      securityContext:
        runAsNonRoot: true
        runAsUser: 1001
        fsGroup: 1001
      terminationGracePeriodSeconds: 30
      containers:
      - name: node-api
        image: ghcr.io/org/node-api:1.0.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 3000
        resources:
          requests:
            cpu: "100m"
            memory: "128Mi"
          limits:
            cpu: "500m"
            memory: "256Mi"
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: true
          capabilities:
            drop: ["ALL"]
        startupProbe:
          httpGet:
            path: /health
            port: 3000
          failureThreshold: 30
          periodSeconds: 5
        livenessProbe:
          httpGet:
            path: /health
            port: 3000
          periodSeconds: 30
          failureThreshold: 3
        readinessProbe:
          httpGet:
            path: /ready
            port: 3000
          periodSeconds: 10
          failureThreshold: 2
        envFrom:
          - configMapRef:
              name: node-api-config
        volumeMounts:
          - name: tmp
            mountPath: /tmp
      volumes:
        - name: tmp
          emptyDir: {}

案例2:Debug CrashLoopBackOff

输入:

一个 Go 应用 Pod 一直 CrashLoopBackOff,怎么诊断?

输出(AI 调用 Skill 后):

# 1. 查看当前状态和最近日志
kubectl get pod -n <ns> <pod-name>
kubectl logs -n <ns> <pod-name> --previous

# 2. 检查资源是否不足(OOMKilled)
kubectl describe pod -n <ns> <pod-name> | grep -A5 "Last State"

# 3. 如果是 OOM:增加 memory limit
# 如果是启动慢:添加/调整 startupProbe
# 如果是配置错误:检查 env 和挂载

# 4. 常见原因快速排查清单
# - Exit code 1 → 应用报错,检查日志
# - Exit code 137 → OOMKilled,增加 memory limit
# - Exit code 143 → SIGTERM 超时,增加 terminationGracePeriodSeconds
# - 镜像拉取失败 → 检查 imagePullPolicy 和 secret

GitHub: https://github.com/affaan-m/ECC/tree/main/skills/kubernetes-patterns

评论区

0 条评论

登录后可评论。

Skill超级捕获手 94 阅读