ZKE:把 Kubernetes 多集群控制台做成 macOS 风格的 Web Desktop

7 小时 38 分钟前
 joudev

ZKE ( Z Kubernetes Engine )是一款面向私有网络与混合云环境的开源 Kubernetes 多集群管理平台。每个集群中的 Agent 通过 QUIC/mTLS 主动连接 Server ;浏览器端 Console 采用 macOS 风格的桌面式交互,将资源管理、终端、权限与审计组织在同一个工作空间中。

项目地址:github.com/togettoyou/zke

在线体验:https://fbcupchhlacp.sealosbja.site/

体验账号:view
体验密码:LECQkqcp2tQ5Yh8

多集群管理

在多集群场景中,仅把资源展示出来还不够,还要处理网络与作用域两层问题。

第一层是网络。位于中心侧的管理平台未必能够主动访问私有网络、边缘机房或独立安全域中的 Kubernetes API Server 。根据网络边界和安全策略,团队可能需要维护专线、VPN 、反向代理或额外的跳板入口。

第二层是作用域。运维人员从一个集群切换到另一个集群时,界面看起来可能没有明显变化,但操作目标已经变了。查询可以汇总,写操作却必须精确落到某个 Cluster 、Namespace 和资源对象。权限、确认和审计如果没有携带相同的作用域,多集群入口反而会放大误操作风险。

ZKE 给出的原则很直接:

全局观察,按集群执行。

用户可以从全局入口查看有权访问的资源,但集群资源查询和操作都会定域到明确的目标集群。全局视图不等于全局操作权限。

第一眼亮点:把控制台做成桌面

ZKE 最直观的区别不是表格多了几列,而是 Console 采用了一套运行在浏览器中的桌面式交互界面。

集群接入管理、组织与资源、访问与审计、容器服务和终端都以独立应用存在。用户可以从桌面或 Dock 打开应用,在窗口之间切换、最小化、最大化,并保存自己的桌面布局和工作作用域。

这种设计并不只是视觉模仿。多集群运维很少是一条从上到下的单页面流程。排查一个异常工作负载时,操作者可能同时需要资源详情、事件、Pod 日志和终端。多窗口让这些上下文保留在同一个工作空间中,最小化终端窗口也不会被当成关闭会话。

QUIC + Agent ,面向私有网络的主动连接模型

ZKE 的核心连接模型是 Server + Agent 。每个接入集群内部署一个 ZKE Agent ,由 Agent 主动连接 ZKE Server ,而不是要求 Server 主动访问每个 Kubernetes API Server 。

连接过程可以概括为四步:

  1. Server 创建一次性 Enrollment Token ;
  2. Agent 在目标集群中完成注册并取得绑定身份的客户端证书;
  3. Agent 使用 QUIC/mTLS 主动建立长期连接;
  4. Server 将经过认证和授权的 Kubernetes 资源请求与集群操作,通过对应 Agent 定域到目标集群执行。

不只好看,多项日常运维主链路已经打通

ZKE 的容器服务已经覆盖多类高频 Kubernetes 操作。除了 Node 、Namespace 、Pod 、Deployment 、StatefulSet 、DaemonSet 、Job 和 CronJob ,还包括 Service 、Ingress 、ConfigMap 、存储、HPA 、策略资源与 Kubernetes RBAC 资源。

对不在类型化页面中的资源,ZKE 提供基于 Kubernetes Discovery 的资源对象浏览器,支持 CRD 、自定义资源以及 YAML 查看与编辑。Secret 、Event 和 Kubernetes 授权资源不通过这个通用入口开放,而是使用专用能力或保持拒绝。多文档清单的应用与删除也位于独立入口。

排障方面,工作负载诊断会把关联对象和 Kubernetes Event 组织在一起,帮助减少操作者在多个页面之间手工拼接故障上下文的工作。

Pod 日志支持有界快照和实时 Follow ,终端通过一次性票据、权限重验和独立 QUIC Stream 建立会话。

对于只在 Pod 内监听的 HTTP 服务,ZKE 还能创建受限的临时访问入口。

敏感操作不能只靠一句“确定吗”

更新工作负载、删除资源、进入容器、打开临时访问地址和修改授权关系,都属于需要明确控制的敏感操作。

ZKE 没有把安全边界只放在前端按钮上。权限由 Server 根据 Global 、Tenant 、Project 和目标 Cluster 进行校验,前端的隐藏或禁用只用于能力提示,不能替代服务端授权。

根据操作类型,ZKE 的 Kubernetes 写入链路会组合使用以下保护:

角色和权限绑定同样受到作用域限制与提权防护。一个人能管理角色,不代表他可以把自己没有的权限写进角色或绑定给其他账号。

ZKE 接下来会做什么

ZKE 当前已经完成平台基础、集群接入与容器服务的主要链路。后续规划集中在两个方向:

如果你正在管理私有网络、混合云或边缘环境中的多个 Kubernetes 集群,可以体验一下 ZKE 的思路:让 Agent 主动连接,让每次操作明确目标,再把复杂能力装进一个更自然的桌面工作空间。

344 次点击
所在节点    分享创造
2 条回复
yangchen04
7 小时 33 分钟前
看起来不错,体验看看
joudev
7 小时 32 分钟前
@yangchen04 谢谢支持

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1233876

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX