用 kubernetes-deploying Skill:讓 AI Agent 按規範生成 Kubernetes 部署清單

前言

把應用放到 Kubernetes 上,往往不只是寫一個 Deployment。Service、Ingress、ConfigMap、Secret、健康檢查、資源配額和擴縮容,每一項都有容易踩坑的細節:漏寫 resources、生產環境用了 :latest、Secret 明文進倉庫、只配了 liveness 沒配 readiness。清單文件一多,人工對照最佳實踐也容易漏。

Agent Skill 是一套可複用的 SKILL.md 指令文件,用來教 AI 編程助手按固定流程完成某類任務。kubernetes-deploying 就是其中面向 K8s 部署的一份 Skill:把常見資源模板、常用 kubectl 命令、發佈策略和注意事項寫進 Skill,讓 Agent 在生成或修改 YAML 時有據可依。

本文基於該 Skill 的官方 SKILL.md 與倉庫說明整理,介紹它是什麼、覆蓋哪些能力、如何安裝啓用,以及典型用法。

這是什麼

kubernetes-deploying 來自 GitHub 倉庫 spencerpauly/awesome-cursor-skills,歸類在 Infrastructure & DevOps。官方描述是:

Deploy applications to Kubernetes — Deployments, Services, Ingress, ConfigMaps, Secrets, health checks, and scaling.

它是一份標準 Agent Skills 格式的 SKILL.md(frontmatter 中 namekubernetes-deploying,並聲明 user-invocable: true),本身不替代集羣或 kubectl,而是約束 Agent:按模板寫清單、帶上健康檢查與資源限制,並提醒密鑰與鏡像標籤等實踐。

Cursor 官方文檔說明,Agent Skills 是開放標準,兼容支持該標準的 AI 編程工具;Cursor 會自動發現技能目錄中的 Skill,也可在 Agent 對話裏用 / 按名稱手動調用。Claude Code、Codex CLI 等同樣可按各自目錄加載同類 SKILL.md

核心功能與亮點

根據官方 SKILL.md,該 Skill 主要覆蓋以下內容。

1. 核心資源模板

Skill 內給出了可直接參照的 YAML 示例,包括:

  • Deployment:副本數、標籤選擇器、鏡像、端口、resources 的 requests/limits、liveness/readiness 探針,以及從 Secret 注入環境變量等。
  • Service:例如 ClusterIP,把 Service 端口映射到容器端口。
  • Ingress:主機路由、TLS、以及常見的 cert-manager 註解示例。
  • ConfigMap & Secret:非敏感配置與敏感配置分開聲明。

這樣 Agent 生成清單時,更容易一次帶上「能跑且相對規範」的字段,而不是隻剩一個光禿禿的 Deployment。

2. 常用運維命令

Skill 彙總了部署與排障時常用的 kubectl 命令,例如:

# Apply manifests
kubectl apply -f k8s/

# Check deployment status
kubectl rollout status deployment/my-app

# View pods
kubectl get pods -l app=my-app

# View logs
kubectl logs -f deployment/my-app

# Execute into a pod
kubectl exec -it <pod-name> -- /bin/sh

# Scale
kubectl scale deployment/my-app --replicas=5

# Rollback
kubectl rollout undo deployment/my-app

# Port forward for local debugging
kubectl port-forward svc/my-app 3000:80

生成清單之後,可以用同一套命令做應用、觀察滾動發佈、看日誌或回滾。

3. 發佈策略

Skill 用表格說明了幾種常見策略及適用場景:

Strategy How When
Rolling update (default) 逐個替換 Pod 大多數發佈
Recreate 先停舊再起新 不能同時跑兩個版本時
Blue/green 兩套環境,切換流量 需要快速回切
Canary 少量流量打到新版本 高風險變更

並給出 RollingUpdate 的配置示例(如 maxSurge: 1maxUnavailable: 0)。

4. 健康檢查與自動擴縮容

Skill 明確要求同時配置:

  • livenessProbe:進程是否健康,失敗則重啓 Pod
  • readinessProbe:是否可接流量,失敗則從 Service 摘除

探針類型包括 httpGetexectcpSocket

此外還給出了 HorizontalPodAutoscalerautoscaling/v2)示例,例如按 CPU 利用率 70% 在 2~10 副本間伸縮。

5. Tips(實踐提醒)

Skill 末尾強調了幾條容易被忽略的點:

  • 始終設置 resource requests 和 limits
  • 用 namespace 隔離環境(如 dev / staging / prod
  • 不要把明文 Secret 提交進 Git,改用 Sealed Secrets、SOPS 或外部密鑰管理
  • 生產環境用具體版本標籤,不要用 :latest
  • 高可用工作負載考慮設置 PodDisruptionBudget

安裝與啓用

官方倉庫說明:把現成的 SKILL.md 複製到 Cursor 的技能目錄即可;Agent 會自動發現。Cursor 文檔中的常見目錄包括:

位置 範圍
.cursor/skills/.agents/skills/ 項目級
~/.cursor/skills/~/.agents/skills/ 用戶級(全局)

爲兼容其他工具,Cursor 也會加載 .claude/skills/.codex/skills/ 以及對應的用戶級目錄。

方式一:手動放入項目

  1. 從倉庫取出該 Skill 目錄:
    https://github.com/spencerpauly/awesome-cursor-skills/tree/main/resources/kubernetes-deploying
  2. 放到項目中,例如:
.cursor/skills/kubernetes-deploying/SKILL.md

目錄名需與 frontmatter 裏的 name 一致(kubernetes-deploying)。

方式二:用 npx skills 安裝

倉庫 Tools 一節推薦了 vercel-labs/skills CLI。可按 Skill 名稱安裝,例如(目標 Agent 按你實際使用的工具調整 --agent):

# Claude Code 示例:安裝到當前項目的 .claude/skills/
npx skills add spencerpauly/awesome-cursor-skills --skill kubernetes-deploying --agent claude-code

# Cursor 示例(agent 名爲 cursor)
npx skills add spencerpauly/awesome-cursor-skills --skill kubernetes-deploying --agent cursor

-g / --global 可裝到用戶目錄。具體落盤路徑以 npx skills 當前文檔中各 Agent 的 Project Path / Global Path 爲準。

安裝後,在 Cursor Agent 對話中輸入 /,搜索 kubernetes-deploying 可手動調用;涉及 K8s 部署時,Agent 也可能根據描述自動選用該 Skill。

典型用法示例

下面示例均來自官方 SKILL.md,可直接作爲對照或提示 Agent 時的參考。

1. 讓 Agent 按模板生成一套清單

在已啓用該 Skill 的對話裏,可以這樣說明需求(提示詞示例,按你的應用改鏡像與域名即可):

請按 kubernetes-deploying Skill 的規範,爲 Web 服務生成 k8s/ 目錄下的清單:
- Deployment:鏡像 my-registry/my-app:v1.2.3,容器端口 3000,3 副本
- 配置 resources、livenessProbe(/healthz)和 readinessProbe(/ready)
- Service(ClusterIP)與 Ingress(主機 app.example.com,TLS)
- ConfigMap 與 Secret 分開;數據庫連接串從 Secret 注入

Agent 可參照 Skill 中的 Deployment 結構生成,例如資源與探針部分類似:

resources:
  requests:
    cpu: 100m
    memory: 128Mi
  limits:
    cpu: 500m
    memory: 512Mi
livenessProbe:
  httpGet:
    path: /healthz
    port: 3000
  initialDelaySeconds: 10
  periodSeconds: 30
readinessProbe:
  httpGet:
    path: /ready
    port: 3000
  initialDelaySeconds: 5
  periodSeconds: 10

2. Service 與 Ingress

Skill 中的 Service 將 80 映射到容器 3000;Ingress 示例包含 TLS 與 cert-manager 註解。生成後可用:

kubectl apply -f k8s/
kubectl rollout status deployment/my-app

3. 滾動發佈與擴縮容

需要滾動更新策略時,可讓 Agent 按 Skill 補上:

spec:
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0

需要按 CPU 自動伸縮時,可參照 Skill 中的 HPA 示例(minReplicas: 2maxReplicas: 10averageUtilization: 70)。臨時手動擴容則可用:

kubectl scale deployment/my-app --replicas=5

出問題回滾:

kubectl rollout undo deployment/my-app

適用場景與注意事項

適合使用該 Skill 的情況包括:

  • 給已有容器鏡像補全一套可部署的 K8s 清單
  • 讓 Agent 統一帶上探針、資源限制、ConfigMap/Secret 拆分
  • 對照發布策略、常用 kubectl 命令和 HPA 模板做腳手架或 Code Review 提示

使用時注意:

  1. Skill 是指南,不是集羣事實來源。 集羣版本、CNI、Ingress Controller、是否安裝 cert-manager,都要按真實環境改註解與 API 字段。
  2. Secret 示例僅作格式參考。 Skill 中的 stringData 示例不能原樣提交到 Git;生產應使用密文方案或外部密鑰管理,這也是 Skill Tips 明確寫到的。
  3. 探針路徑與端口必須和應用一致。 模板裏的 /healthz/ready、端口 3000 需要改成你服務真實提供的健康檢查接口。
  4. 該 Skill 主要覆蓋清單與常見命令。 複雜的 GitOps、多集羣、服務網格等超出當前 SKILL.md 範圍,不要指望它單獨完成整條交付鏈路。

小結

kubernetes-deploying 把 K8s 部署裏最容易漏的模板與實踐(Deployment / Service / Ingress / ConfigMap / Secret、健康檢查、發佈策略、HPA 與安全提示)收進一份可被 Agent 加載的 Skill,適合雲原生開發者在 Cursor、Claude Code、Codex 等支持 Agent Skills 的工具裏複用。

官方地址:

https://github.com/spencerpauly/awesome-cursor-skills/tree/main/resources/kubernetes-deploying

SKILL 原文:

https://github.com/spencerpauly/awesome-cursor-skills/blob/main/resources/kubernetes-deploying/SKILL.md

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜