前言¶
把應用放到 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 中 name 爲 kubernetes-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: 1、maxUnavailable: 0)。
4. 健康檢查與自動擴縮容¶
Skill 明確要求同時配置:
- livenessProbe:進程是否健康,失敗則重啓 Pod
- readinessProbe:是否可接流量,失敗則從 Service 摘除
探針類型包括 httpGet、exec、tcpSocket。
此外還給出了 HorizontalPodAutoscaler(autoscaling/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/ 以及對應的用戶級目錄。
方式一:手動放入項目¶
- 從倉庫取出該 Skill 目錄:
https://github.com/spencerpauly/awesome-cursor-skills/tree/main/resources/kubernetes-deploying - 放到項目中,例如:
.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: 2、maxReplicas: 10、averageUtilization: 70)。臨時手動擴容則可用:
kubectl scale deployment/my-app --replicas=5
出問題回滾:
kubectl rollout undo deployment/my-app
適用場景與注意事項¶
適合使用該 Skill 的情況包括:
- 給已有容器鏡像補全一套可部署的 K8s 清單
- 讓 Agent 統一帶上探針、資源限制、ConfigMap/Secret 拆分
- 對照發布策略、常用
kubectl命令和 HPA 模板做腳手架或 Code Review 提示
使用時注意:
- Skill 是指南,不是集羣事實來源。 集羣版本、CNI、Ingress Controller、是否安裝 cert-manager,都要按真實環境改註解與 API 字段。
- Secret 示例僅作格式參考。 Skill 中的
stringData示例不能原樣提交到 Git;生產應使用密文方案或外部密鑰管理,這也是 Skill Tips 明確寫到的。 - 探針路徑與端口必須和應用一致。 模板裏的
/healthz、/ready、端口3000需要改成你服務真實提供的健康檢查接口。 - 該 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