skyhook-io/radar · 上手攻略

  • 仓库:skyhook-io/radar
  • 链接:https://github.com/skyhook-io/radar
  • 分类:devops / kubernetes / ai-integration
  • 作者:spark
  • 更新:2026-08-10

是什么

skyhook-io/radar(也称 Radar)是一个面向 Kubernetes 的开源可视化与诊断工具,由 YC W23 投资的 Skyhook 公司维护,Apache-2.0 协议。它用一个 约 30 MB 的 Go 单文件二进制 提供:

  • 给人类看的 Web UI(Topology、Resources、Timeline、Helm、Compare、GitOps、Traffic、Audit、TLS、Image Filesystem、Cost、RBAC、Upgrade impact、Auth 等视图);
  • 给 AI 代理用的 内置 MCP 服务器(Model Context Protocol),让 Claude Code、Cursor、Copilot 等代理能查询集群状态。

Radar 在本地模式直接读 ~/.kube/config 跟 K8s API server 对话,不在集群里跑任何 agent / CRD / sidecar;也可以 Helm 部署到集群内部共享使用(带 RBAC)。在 airgapped、锁定出站、单机调试三种场景下都能跑同一份二进制。

解决什么问题

  • Kubernetes 仪表盘的真空期:原生 Dashboard 2026 年 1 月归档,官方博客改指向 Headlamp;Lens 被 Mirantis 接管后改收费,开发者靠 OpenLens / FreeLens 分叉补位。Radar 直接填补"开源、单机、零账号"这一档。
  • 多视图割裂:kubectl + Lens + ArgoCD UI + Flux CLI + Hubble UI + Prometheus 各自一段链路,Radar 把 Topology / Timeline / Helm / GitOps / Traffic / Audit 拉到一个 UI 里。
  • AI 代理缺可信上下文:Claude Code / Cursor 想"帮我看这个 Service 挂没挂"时,缺一个能跨资源、跨时间窗、跨 Helm/GitOps 抓事实的 MCP 端点。Radar 自带 MCP server,把"代理能查到的 K8s 视图"和"人能看到的 K8s 视图"对齐。
  • 隐私与合规:不需要把集群数据发给云厂商,不需要装集群内 agent;airgapped 集群也能跑。

快速安装

Radar 给出 30 秒上手的官方命令:

curl -fsSL https://get.radarhq.io | sh && kubectl radar

安装完成后默认会有两条命令:radarkubectl radar(作为 kubectl 插件)。

按平台挑安装方式:

# macOS / Linux(Homebrew)
brew install skyhook-io/tap/radar

# macOS / Linux 桌面 GUI(独立 app,无需终端)
brew install --cask skyhook-io/tap/radar-desktop

# Debian / Ubuntu
sudo apt install ./radar-desktop_*.deb

# Fedora / RHEL
sudo rpm -i radar-desktop_*.rpm

# Windows(PowerShell)
irm https://get.radarhq.io/install.ps1 | iex

# Windows(Scoop)
scoop bucket add skyhook https://github.com/skyhook-io/scoop-bucket
scoop install radar

# kubectl Krew
kubectl krew install radar

集群内部署(Helm,多人共享 + RBAC):

helm repo add skyhook https://skyhook-io.github.io/helm-charts
helm install radar skyhook/radar -n radar --create-namespace

Helm Chart 文档:https://github.com/skyhook-io/radar/blob/main/deploy/helm/radar/README.md

校验版本:

radar --version
kubectl radar --version

核心用法

1. 本地起 UI

radar                    # 或 kubectl radar,默认开 http://127.0.0.1:9280
radar --no-browser       # 不自动弹浏览器
radar --port 9280 --listen-address 0.0.0.0   # 容器/远端访问前显式指定
radar --namespace my-ns                     # 进入时锁定 namespace
radar --namespaces ns1,ns2,ns3              # 多 namespace 筛选
radar --kubeconfig /path/to/kubeconfig     # 多 kubeconfig 场景
radar --kubeconfig-dir ~/.kube,~/work/kube  # 多 kubeconfig 目录

2. 视图快速参考

视图 用途
Topology 资源关系图(ELK.js 自动布局,SSE 实时更新);支持 Resources 与 Traffic 两种模式
Resources 表格式资源浏览器,支持 CRD、按 status/问题过滤、任意 label/annotation 加列
Image Filesystem 不拉镜像、不 exec 容器,直接从 Pod 视图浏览容器镜像文件系统(支持私有仓库 + ImagePullSecrets)
Timeline 统一事件时间线(K8s events + 资源变更 diff),支持 SQLite 持久化(--timeline-storage sqlite
Helm release 管理:values / rendered manifest / revision 比较 / upgrade / rollback / uninstall;跟踪 chart 升级候选
Compare 同类资源 YAML side-by-side diff(managedFields / resourceVersion 自动去噪)
GitOps ArgoCD + Flux 同屏 fleet 视图 + per-app Topology/Changes/Activity;含 lifecycle 感知(Terminating chip 等)
Traffic 自动识别 Hubble(Cilium)/ Caretta / Istio 数据源,动画流量图 + setup wizard
Audit 36 项 cluster 审计检查(含 RBAC read-only 检查,in-UI 编辑、can-i 查询在 #1090 跟踪)
TLS TLS secret 解析 + 证书到期概览
Cost 资源成本展示
RBAC 角色与权限可视化
Upgrade impact 升级影响预览
Auth none / proxy / oidc 三种认证模式

3. MCP 集成(AI 代理直连)

Radar 内置 MCP server,默认端口 9280(与 UI 同端口不同 path)。在 Claude Code / Cursor / Copilot 的 MCP 配置里指过去即可:

{
  "mcpServers": {
    "radar": {
      "url": "http://127.0.0.1:9280/mcp"
    }
  }
}

可用动作涵盖资源查询、Helm 升级/回滚、GitOps sync/suspend/resume/reconcile/rollback(含 lifecycle-aware refusal,如对 Terminating 资源拒绝 mutate 操作)。完整 MCP 文档:https://github.com/skyhook-io/radar/blob/main/docs/mcp.md

启动纯 MCP stdio(不跑 UI)做 registry 自检:

radar --mcp-catalog-stdio

关闭 MCP:

radar --no-mcp

4. 慢集群 / 跨地域调优

SSH 隧道、远端 control plane、API-server 限流场景下默认超时(context switch 30s / first-paint 5m / namespace LIST 5s / scope candidates 20)会过早触发"Limited list — RBAC"假报。调宽:

kubectl radar \
  --context-switch-timeout=120s \
  --first-paint-backstop=10m \
  --namespace-list-timeout=30s \
  --max-scope-candidates=200

集群内部署可用 ConfigMap 注入同名环境变量(避免出现在 ps 里)。

5. RBAC 收口

radar --namespace-scope=true 把 informer cache 钉在单个 namespace,适合大集群的低权限账号。

典型适用场景

  • 开发本地:用一份 kubeconfig 接入 minikube / kind / k3s,UI 直接给团队分享(--listen-address 0.0.0.0 + 配 auth)。
  • SRE 排障:Topology 看 Service/Pod/Node 连接 → Timeline 找 CrashLoopBackOff 时间点 → Resources 看 YAML + 日志 + Events → Image Filesystem 直接查镜像根目录(不用本地拉镜像)。
  • GitOps 运维:Argo + Flux 混用团队,fleet 视图一眼看出哪些 Application 处于 Terminating、哪些 drift loop 卡住;一键 reconcile / rollback。
  • Helm release 升级对比:升级前 Compare view 渲染新旧 values,Timeline 同时记录失败升级,原子回滚历史。
  • AI 代理诊断:让 Claude Code / Cursor 通过 MCP 直接问"为什么 pod x 一直 pending"、"list CrashLoopBackOff pods last 1h",结果基于同一份集群数据,与 UI 看到的一致。
  • 离线/隔离集群:airgapped + 阻断外发的环境,单二进制 + 集群 API 即可工作。

坑与注意

  1. Airgapped 集群的 debug 镜像:默认 --debug-image=busybox:latest,如果内网镜像仓库不开放外网拉取,要把 busybox:latest 换成内网 mirror;PodSecurity restricted 模式下默认会被拒,会自动用 restricted-compatible security context 重试。
  2. 大集群首屏:默认首屏 critical-cache 同步 backstop 是 5 分钟,超过会强制 partial-data 渲染。超大集群(>20k pods)建议直接拉宽 --first-paint-backstop + --context-switch-timeout,并考虑 --list-page-size 2000 做初始 LIST 分页(仅当 WatchList streaming 不可用时生效)。
  3. Helm Chart Gateway API 互斥ingresshttpRoute 不能同时开;同时开会在 install 阶段报错。启用 httpRoute 必须显式给 parentRefs,否则 install 失败而不是生成"未挂载的 HTTPRoute"。
  4. GitOps 状态展示:fleet 视图同屏 Argo + Flux,但单集群 scope;多集群聚合要走 Radar Cloud(OSS 不做 fleet 聚合)。
  5. Audit 功能边界:RBAC 检查目前 read-only,in-UI 编辑、subject explorer、can-i 查询都在 issue #1090 跟踪。
  6. 零账号 ≠ 零授权:本地模式默认 --listen-address 127.0.0.1,要给团队共享必须显式改 0.0.0.0 并配 --auth-mode proxyoidc + 网络访问策略;不要默认开 0.0.0.0
  7. MCP 与 --cloud-url 互斥--base-path 改 URL 前缀时 MCP 与 --cloud-url 不兼容;要在 ingress 子路径后挂 Radar 时确认所有 path(包括 /api/health)都改前缀。
  8. 协议:Apache-2.0,商业使用、二次分发、商标使用均宽松;README 末尾有商标与"Skyhook" 命名使用说明。
  9. OSS ≠ 全部功能:Radar Cloud 提供 fleet 多集群聚合、持久化留存、路由告警、SSO — 这部分是付费云托管,OSS 没被掐脖子(README 原话:"not because the OSS is crippled")。

与同类对比

工具 与 Radar 的差异
Headlamp K8s 原生 Dashboard 2026-01 归档后的官方推荐;插件生态大;Radar 强在 Topology/Timeline/Helm/GitOps 一体化 + 内置 MCP。
Lens / OpenLens / FreeLens 老牌桌面 UI;Lens 自 2024 年起转付费,OpenLens/FreeLens 是社区分叉;Radar 单二进制 + web 访问,无桌面依赖。
k9s 终端 TUI,速度极快但视图有限;Radar 走 web + Topology/Timeline,更适合"画图 + 跨视图"而非"扫资源"。
ArgoCD UI / Flux UI 只覆盖 GitOps;Radar 把 Argo + Flux 拉到一起看 fleet,且加 MCP 出口。
Hubble UI / Caretta 专注网络流量;Radar 把流量作为 Topology 的一种 mode,自动 detect 数据源。
Octant / Devtron 早一代 K8s UI,部分停更;Radar 现役活跃(last commit 2026-08-07)。
kubectl-ai / k8sgpt AI 直连集群的 CLI;Radar 用 MCP 把"AI 看的视图"和"人看的视图"对齐,避免 AI 在过期或不一致快照上推断。

Radar 的差异点:(a) 单二进制 + 不装集群 agent/CRD(b) Topology + Timeline + Helm + GitOps + Traffic + Audit 同框(c) 内置 MCP server,让人/agent 共享同一份视图(d) Apache-2.0,零付费门槛

一句话推荐结论

如果你的痛点是"K8s 仪表盘断档 + 想让 Claude Code/Cursor 直接问集群",Radar 是 2026 年最值得优先尝试的开源选项;本地模式适合个人/小团队,Helm 模式适合 RBAC 受控的团队,AI 集成用 MCP,剩下不需要的功能可以靠 Headlamp / OpenLens / k9s 互补。

来源:

  • GitHub README(skyhook-io/radar):https://github.com/skyhook-io/radar — 安装、视图、CLI flags、调优全本。
  • Radar 官网:https://radarhq.io — OSS vs Cloud 边界、use cases、screenshots。
  • Skyhook Blog 2026-01:https://www.skyhook.io/blog/introducing-radar-modern-kubernetes-visibility — Radar 的定位与差异化叙述。
  • ComputingForGeeks 评测(2026-07-16):https://computingforgeeks.com/radar-kubernetes-ui — Dashboard 归档与 Lens 收费背景说明。
  • MCP 文档:https://github.com/skyhook-io/radar/blob/main/docs/mcp.md
  • Helm Chart 文档:https://github.com/skyhook-io/radar/blob/main/deploy/helm/radar/README.md

不确定处:

  • --prometheus-url / --prometheus-header / --prometheus-header-from-env 等 Prometheus 集成的实际行为,README 描述偏简,未在本机独立复现 auto-discovery 规则。
  • MCP server 暴露的具体 tool 列表(按 README 描述应覆盖资源查询、Helm 操作、GitOps sync/suspend/resume/reconcile/rollback、含 lifecycle-aware refusal),未在 Claude Code / Cursor 实测枚举每个 tool 名。
  • Traffic view 对 Hubble / Caretta / Istio 三种数据源的字段映射与采样率,未在生产集群验证;Setup Wizard 步骤仅基于 README 描述。
  • "tested on tens of thousands of pods" 为仓库自述数字,未独立压测。
  • Compare view 的 managedFields 去噪规则仅依据 README,未对各 K8s 版本(1.27-1.31)逐版本核验。