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
安装完成后默认会有两条命令:radar 和 kubectl 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 即可工作。
坑与注意
- Airgapped 集群的 debug 镜像:默认
--debug-image=busybox:latest,如果内网镜像仓库不开放外网拉取,要把busybox:latest换成内网 mirror;PodSecurity restricted 模式下默认会被拒,会自动用 restricted-compatible security context 重试。 - 大集群首屏:默认首屏 critical-cache 同步 backstop 是 5 分钟,超过会强制 partial-data 渲染。超大集群(>20k pods)建议直接拉宽
--first-paint-backstop+--context-switch-timeout,并考虑--list-page-size 2000做初始 LIST 分页(仅当 WatchList streaming 不可用时生效)。 - Helm Chart Gateway API 互斥:
ingress与httpRoute不能同时开;同时开会在 install 阶段报错。启用httpRoute必须显式给parentRefs,否则 install 失败而不是生成"未挂载的 HTTPRoute"。 - GitOps 状态展示:fleet 视图同屏 Argo + Flux,但单集群 scope;多集群聚合要走 Radar Cloud(OSS 不做 fleet 聚合)。
- Audit 功能边界:RBAC 检查目前 read-only,in-UI 编辑、subject explorer、can-i 查询都在 issue #1090 跟踪。
- 零账号 ≠ 零授权:本地模式默认
--listen-address 127.0.0.1,要给团队共享必须显式改0.0.0.0并配--auth-mode proxy或oidc+ 网络访问策略;不要默认开0.0.0.0。 - MCP 与
--cloud-url互斥:--base-path改 URL 前缀时 MCP 与--cloud-url不兼容;要在 ingress 子路径后挂 Radar 时确认所有 path(包括/api/health)都改前缀。 - 协议:Apache-2.0,商业使用、二次分发、商标使用均宽松;README 末尾有商标与"Skyhook" 命名使用说明。
- 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)逐版本核验。