继k9s之后,新一代Kubernetes终端UI工具k10s正式亮相。相较于传统命令行工具,k10s引入了鼠标交互、即时全局搜索、主题定制以及内置AI助手,旨在降低K8s集群管理的认知负荷与操作门槛。

核心特性:鼠标交互与瞬时启动

k10s针对集群仪表板高频使用的场景进行了优化,核心改进包括:

  • 鼠标可用与可视化操作:支持点击行、窗格、缩放按钮及命名空间切换。选中对象的操作直接列于专用窗格,无需记忆复杂快捷键,点击或按下对应字母键即可执行。
  • 瞬时启动与惰性加载:启动时注册零监听器,Informers采用惰性加载模式,仅在首次查看某类资源时才启动,避免全量监听Secrets和Events带来的延迟。
  • 全局统一搜索:通过ctrl+p即可同时搜索资源类型和具体对象,无需学习前缀语言。
  • 内置AI助手:按ctrl+a进入AI模式,支持自然语言提问。当前上下文、命名空间、资源类型及选中对象会自动注入提示词,实现精准问答。支持OpenAI兼容接口(如Groq、Ollama等)及Anthropic模型,数据仅在用户确认发送时离开本地。

运维工具箱与Day-2操作

k10s覆盖了Workloads、Network、Config、Storage、RBAC等30种资源类型,并自动发现CRDs。侧边栏分组可折叠,折叠组不会向集群请求数据,以节省资源。

常用运维操作通过单键直达:

  • d:查看kubectl describe输出
  • y:查看实时YAML
  • l:跟随日志(支持回溯500行)
  • s:进入交互式Shell会话
  • p:端口转发
  • m:查看Pod/节点指标
  • e/r/c:编辑、重启、扩缩容
  • D:删除资源(带红色确认模态框)

此外,k10s兼容k9s风格的命令插件,用户可通过~/.k10s/plugins.yaml添加自定义作用域快捷方式。

开箱即用与离线演示

k10s附带离线演示后端,用户无需真实集群即可体验。运行go run . demo即可启动包含CrashLoopBackOff状态的逼真示例集群。演示环境作为一个独立的Context存在,头部带有DEMO标记,防止误操作真实集群。退出演示只需切换至其他Context。

在真实环境中,k10s读取与kubectl相同的kubeconfig文件。若无配置或API无响应,主面板将显示“No cluster”并提供设置指引。

安装与升级

k10s支持macOS、Linux(amd64/arm64)及Windows(amd64)。提供预编译静态二进制文件,并通过安装脚本自动校验sha256值。

curl -fsSL https://p10node.com/k10s/install.sh | sh

若本地已安装Go,也可通过go install github.com/p10node/k10s@latest安装。工具支持自我更新,运行k10s update即可原子式覆盖二进制文件并提示重启。

与k9s的定位差异

k10s致敬k9s,但两者设计理念有所不同:

  • 交互方式:k9s以键盘命令为主;k10s强调鼠标与键盘并重,操作直观可见。
  • 搜索体验:k9s需在不同视图间跳转过滤;k10s提供全局统一搜索框。
  • AI集成:k9s依赖插件;k10s内置AI并自动注入集群上下文。
  • 体量与生态:k9s功能庞大、生态成熟;k10s保持精简,核心兼容k9s插件,适合快速上手。

若追求极致功能与成熟生态,k9s仍是首选;若希望降低团队使用门槛,让非资深用户也能快速定位日志与资源,k10s提供了更友好的替代方案。

注意事项与现状

作者指出,虽然k10s已通过伪造客户端集进行测试,但尚未在生产集群上进行大规模冒烟测试,建议用户先在kind等测试环境中试用。已知限制与路线图已在文档中公开。

k10s采用Apache-2.0许可证,代码开源,欢迎社区贡献。项目依赖Charm团队的Bubble Tea、Lip Gloss等库实现TUI交互。