前言¶
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