返回资讯中心
外部精选
软件工程
#开发者实时流

PigeonEye 发布快速原生 Kubernetes GUI 和 CLI 工具

来源标题:PigeonEye is a fast, native Kubernetes GUI and CLI Tool

PigeonEye 是一款快速、原生的 Kubernetes GUI 工具,集群中所有资源类型(包括每个 CRD)都会自动显示,列与 kubectl get 输出一致。在拥有 23,770 个 pod 和 171,267 个事件的生产集群上测量,过滤 2.4 万行列表时每次按键约 0.5 毫秒,pod 变更约 0.2 毫秒落地。其速度来自 Table API 服务端列、流式分页、虚拟滚动、惰性全文索引、基于 watch 的增量更新和视图缓存。

Hacker News 最新gjvc2026/11/2 · 今天21 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

Kubernetes 集群的鸟瞰视图。比任何工具都快。 PigeonEye 是一款快速的原生 Kubernetes GUI。集群提供的每一种资源类型——包括每一个 CRD——都会自动显示出来,列与 kubectl get 打印的完全一致。 在拥有 23,770 个 pod 和 171,267 个事件的 production 集群上实测: 表格只渲染屏幕上的行(虚拟滚动),因此对 24k 行的列表进行过滤时,每次击键仍保持在约 0.5ms。打开列表后通过 watch 保持实时更新,再次访问某个视图时从缓存恢复 watch——无需重新 list——因此只会收到自那以后发生变化的内容。 保持实时更新的开销也很低。在那个 24k 行的列表上,一个 pod 发生变化大约 0.2ms 就能落地:事件只会与它所指名的行进行匹配,而不是重新索引整个列表;而且无论一次 rollout 同时退役多少个 pod,它们都会在单次遍历中离开。 速度的来源:server-side printer columns(Table API,每个视图一次请求——不做全对象同步)、流式分页、虚拟滚动、懒构建的全文索引、基于 watch 的增量更新(合并为批次),以及返回时恢复 watch 的视图缓存。 每种资源,零配置——kind 来自 Discovery API,因此每个 CRD 都会自动出现,并带有 kubectl get 打印的列。 列随你定——隐藏、拖动重排,以及从任意字段或 label 添加自定义列(相当于 kubectl -o custom-columns,但用点击代替输入)。把常用 kind 固定到你自己的分组中——也可以把集群本身组织成命名的 context 分组。 能真正找到东西的搜索——对每个字段做全文搜索,外加 regex、! 取反、按列值过滤和数值比较(> 500)。 一次搜索所有打开的集群——: pod api-server 会向所有集群提问,并说明每个结果来自哪个集群;选中一个结果会切换 tab、kind 和 namespace,并把光标落到对应行上。在你提问之前不产生任何开销,而已经浏览过的集群会从内存中作答。 拆分为两个实时视图——⌘\ 将两个完全独立的窗格并排摆放:不同的集群、kind 和 namespace,各自拥有自己的 watch、搜索、排序和详情面板。⌘← / ⌘→ 移动焦点;每个快捷键都作用于当前聚焦的窗格。 跨集群 Issues——一个 ⚠ 列表,汇集处于不良状态的 pod 和未 Ready 的节点,从每个已连接的集群收集并在后台刷新。↵ 直接跳转到对应资源所在的 tab。该列表是窗口化的,因此有四千个问题时打开速度和四个问题一样快——这一点很重要,因为恰恰在出事的时候它最长。 一眼看清 rollout——Deployments、StatefulSets、DaemonSets、ReplicaSets 和 Argo Rollouts 在副本仍在铺开时会带一个圆点,因此半完成的 rollout 无需打开就能看到。打开一个,它会告诉你 rollout 实际处在哪一步——Rolling out、Applying(spec 已改变,controller 尚未对其采取行动)、Not fully available、Paused、Stuck 或 Synced——并附上判定背后的副本数和 generation 数字,在稳定之前会自行刷新。 pod 为什么没起来,就在列表里——状态列显示 Pending;旁边的事件列显示 FailedScheduling,悬停其上会给出 0/50 nodes are available: insufficient cpu。那里只显示警告,因此空白单元格意味着没有问题,有文字的行才是需要关注的行。 分享确切的视图——复制一个指向该视图或单个资源的 peye:// 链接。打开它的人会落到相同的集群、kind、namespace 和行。 真正的日志查看器——follow、previous(崩溃的)容器、since 时间窗口、时间戳、视图内搜索、复制/下载,以及合并的 workload 日志。 Shell 与调试——pod exec、透明的特权节点 shell,以及镜像 pod 安全上下文的临时调试容器(可通过 restricted PodSecurity / Kyverno)。 安全的编辑与操作——带 dry-run 的 YAML server-side apply、从模板创建、scale、rollout restart / history / undo、drain、CronJob trigger、secret reveal、port-forward 管理器、实时 top 指标,以及 auth can-i。 能向你提问的登录方式——过期的 token 会在应用内的终端中重新登录(AWS SSO、gcloud、Teleport、Azure、OIDC),因此需要 OTP 或口令的 CLI 有地方可以询问。kubeconfig 的 exec 块只容纳一条命令,没有“先运行这个”的钩子,因此每个 context 也可以自带一条 pre-connect 命令——tsh login、堡垒机隧道、VPN——在连接前运行,并保存在你的机器上而不是共享的 kubeconfig 中。凭据确实已过期的集群会被移出后台轮询,直到你再次登录,因此会打开浏览器的凭据助手(aws-vault、oidc-login)绝不会在你不知情的情况下被定时器重新执行。 键盘优先、颜色编码的多集群 tab、浅色/深色主题,以及应用内更新——顶栏会标记新版本并原地升级,无需 brew。 对比 k9s 与 Lens PigeonEye k9s Lens/OpenLens 原生 GUI ✅ 终端 Electron 在 24k pod 集群上的冷启动 约 0.35s 首屏 快 慢(全量同步) 所有 CRD / 聚合 API,零配置 ✅ ✅ ✅ Regex / 取反 / 数值 / 按列过滤 ✅ regex/! 基础 日志:previous · since · 搜索 · 下载 ✅ ✅ ✅(仅 Lens) 合并的 workload/Service 日志 ✅ ✅ 部分 临时调试容器(策略安全) ✅ — — 节点 shell(nsenter) ✅ 需手动启用 ✅ Secret 解码 / reveal ✅ ✅ ✅ apply 前的 server dry-run ✅ — — 从模板创建 ✅ 空白 YAML ✅ Rollout history / undo ✅ ✅ ✅ CronJob trigger / suspend ✅ ✅ — 节点与 pod 指标列(metrics-server) ✅ ✅ 需要 Prometheus auth can-i / 权限 ✅ 反向查找 RBAC 视图 跨所有打开的集群按名称搜索 ✅ — — 并排两个独立窗格 ✅ — — 一个列表中跨所有集群的问题资源 ✅ — — 深链到确切视图 / 资源 ✅ — — 登录重新认证,包括会弹出提示的 CLI(OTP) ✅ — — 按 context 的 pre-connect 命令(隧道 / tsh login) ✅ — — 时间序列指标图表 — — ✅(Prometheus) Helm / 扩展 / xray 树 / linter — xray/popeye/插件 Helm/扩展

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →