前言¶
DeepSeek Harness (DSH) 的核心設計理念是“一切皆插件”。在 Kubernetes 運維場景中,kubectl 是標準工具,但傳統輸出(如表格)對智能體解析不夠友好。dsh-kubectl 解決了這個問題,它將 kubectl 的能力封裝進 DSH 插件體系,讓智能體能夠以只讀或顯式確認的模式檢查集羣、查詢資源、讀取日誌及進行端口轉發。
插件介紹¶
dsh-kubectl 是一個獨立社區項目(非官方),由 WODE25500 維護。它基於 kubernetes/kubectl(Apache-2.0)開發。插件的主要作用是將 kubectl 常用操作轉化爲 DSH 可識別的技能,輸出 JSON 結構化數據以提高解析可靠性,並對寫操作增加顯式確認機制。
核心功能¶
插件目前包含以下能力:
kubectl_get:查詢資源,使用-o json獲取結構化輸出。kubectl_describe/kubectl_status:查看資源詳情、版本/上下文信息。kubectl_logs:獲取 Pod 日誌,支持 tail、previous、container 等參數。kubectl_exec:在容器內執行一次性命令。kubectl_apply/kubectl_delete:部署或刪除資源。kubectl_port_forward:建立端口轉發通道,使本地可以訪問集羣內服務。
安裝與配置¶
安裝需要使用 DSH 的 patch 命令:
pnpm dsh web --patch ./dsh-kubectl/cordis.patch.yml
安裝後,通常需要在 DSH 配置中指定 kubectl 路徑、上下文和命名空間。配置示例如下:
- insert:
- id: kubectl
name: './src/index.js'
config:
kubectlPath: kubectl
context: my-cluster
namespace: default
典型用法¶
- 查資源:智能體可直接調用
kubectl_get獲取資源列表。 - 讀日誌:通過
kubectl_logs獲取 Pod 最新日誌或歷史日誌。 - 端口轉發:發起
kubectl_port_forward後,可在本地終端通過端口訪問集羣服務。 - 寫操作:執行
kubectl_apply或kubectl_delete時,系統會要求用戶確認,避免誤操作。
適用場景與注意¶
- 連接問題:如果當前環境無集羣連接,命令會返回連接拒絕錯誤(stderr 原樣返回)。
- 進程管理:
kubectl_port_forward啓動後是常駐進程,當前版本不提供自動停止機制,需手動管理。 - 寫操作紅線:所有寫操作(apply/delete)均依賴用戶顯式確認,且 SKILL.md 中有明確的操作紅線,請仔細閱讀。
- 權限運行:插件以當前 DSH 進程的權限運行,安裝前應檢查源碼與許可證。
dsh-kubectl 爲智能體處理 Kubernetes 運維任務提供了結構化、可確認的交互方式。更多細節與源碼可查閱:GitHub