2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家
我们从零开始重建了 Kubernetes 仪表板——以下是我们新增的功能
官方 Kubernetes 仪表板于 2026 年 1 月被归档。其 Angular 代码库已无法维护,工具链脆弱不堪,上游维护者也宣布停止开发。我们需要为自家的家庭实验室安全平台提供一个仪表板,因此我们从头构建了一个。
这就是我们构建的故事,包括我们为何做出这些决策,以及它与替代方案有何不同。
为何不选择 Headlamp、Lens 或 Rancher?
我们评估了显而易见的替代方案:
- Lens —— 桌面应用程序,非集群内运行,采用商业免费增值模式。不适合硬化的集群内部署。
- Headlamp —— 优秀的项目,但其可扩展性模型依赖于动态加载的 JavaScript 插件。我们更倾向于一个无插件运行时且代码库完全可审计、静态化的仪表板。
- Rancher —— 完整的多集群平台,对于单个集群而言过于庞大,且需要占用独立的命名空间资源。
我们希望有一个能作为硬化 Pod 在集群内 运行的解决方案,除了 Kubernetes API 之外没有外部依赖,并且是可审计的——无插件运行时,无动态代码加载。
还有一个原始版本无法做到的事情:与 MetalLB 协同工作。它围绕 kubectl proxy 和节点端口(NodePort)设计——从未打算置于真实的集群内网关之后。要让它使用 MetalLB 的 IP 地址,需要借助 Kong 作为网关,而原始版本并不支持这一点。
因此,我们分叉了已归档的仪表板并进行了重建。
技术栈
前端: React 19 + Material UI v6 + Vite + TypeScript
后端: 四个 Go 语言模块——应用程序接口(API)、认证(Auth)、指标抓取器(Metrics Scraper)、通用模块(Common)
网关: Kong 3.6(无数据库模式)作为集群内应用程序接口网关
认证: 持有者令牌(Kubernetes 服务账户)配合跨站请求伪造(CSRF)保护
部署: 原生 Kubernetes 清单文件——不使用 Helm
保留了原始的 Go 后端契约。仅替换了用户界面层。
超越“标准仪表板”所交付的功能
通常的仪表板会向你展示工作负载列表、容器组日志和一个 Shell 终端。我们添加了十项原生功能,这些功能通常需要单独的工才能实现:
1. 策略审计(原生 Polaris 集成)
针对实时容器组规格进行 14 项安全检查——无需部署 Polaris:
- 是否允许权限提升?
- 是否使用主机网络 / 主机进程 ID / 主机间进程通信?
- 是否设置了资源限制?
- 是否定义了就绪探针和存活探针?
- 镜像标签是否为
latest(最新)? - 是否配置了
seccompProfile(安全计算模式配置文件)?
每个工作负载都会获得一个 0–100 的评分。命名空间会获得一个汇总评分。可按严重程度(危险 / 警告 / 通过)进行过滤。
整个功能是一个单一的 Go 语言包,直接从 Kubernetes API 读取容器组规格。无需准入 Webhook,无需第三方运算符。
2. 资源效率(类似 Goldilocks 风格)
将实际中央处理器/内存使用情况(来自 metrics.k8s.io)与容器请求值和限制值进行比较:
- 无限制 —— 容器未设置资源限制(危险)
- 过热 —— 实际使用量超过请求值(存在内存溢出或中央处理器节流风险)
- 过冷 —— 请求值远大于实际使用量(浪费容量)
- 正常 —— 请求值和限制值合理
支持导出逗号分隔值文件以用于容量规划。启用 VictoriaMetrics 后,趋势箭头(↑ ↓ →)会显示使用量是在增长、缩减还是保持稳定。
3. 证书
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。