ZKE(Z Kubernetes Engine)通过 Server + Agent 架构连接分散在数据中心、私有云、公有云和边缘环境中的 Kubernetes 集群。Agent 使用 QUIC/mTLS 主动连接 Server,ZKE Server 无需直接访问任何集群的 Kubernetes API Server;平台团队可以在统一入口中管理资源与工作负载,并实施权限控制、安全操作和审计。
在线体验: https://fbcupchhlacp.sealosbja.site/
用户名
view/ 密码LECQkqcp2tQ5Yh8(只读账号,体验数据可能随时重置)
- 集群在内网,控制台进不去? Agent 主动向 Server 外连 QUIC/mTLS,只需要一条出向通道,不必为控制台开放 Kubernetes API Server 入口,适合具有独立网络边界的数据中心、私有云、混合云和边缘集群。
- 多集群视图容易点错对象? 全局视图只负责观察,所有查询和操作都携带明确的 Cluster、Namespace 与资源身份, 执行始终定域到目标集群。
- 在多个终端和面板之间反复切换? 以窗口、Dock 和应用分区组织管理能力,集群管理、容器服务、终端与安全审计 可以在同一个工作空间里并行打开。
- 不敢把变更权限放给一线? Tenant、Project 和 RBAC 限定权限范围,DryRun 差异、二次确认、幂等保护与审计日志 覆盖敏感操作。
全局观察,按集群执行。
| 能力 | 已实现的主要链路 |
|---|---|
| 多集群接入 | 集群注册、Agent 状态、证书续期、撤销与重新接入 |
| 工作负载 | Deployment、StatefulSet、DaemonSet、Job、CronJob |
| 集群资源 | Node、Namespace、Pod、服务与路由、配置、存储、自动伸缩、策略 |
| 日常运维 | Pod 日志、Web Terminal、临时访问、事件追踪、资源用量 |
| 诊断与回滚 | 工作负载诊断、关联对象分析、版本回滚 |
| 原生资源 | Discovery、CRD 资源浏览、YAML 编辑、多文档清单应用与删除 |
| 多集群指标 | 集群内采集、经 Agent 回传、跨集群 CPU/内存与节点用量视图(默认启用) |
| 权限模型 | Tenant、Project、RBAC 与细粒度操作权限 |
| 安全与审计 | 敏感操作确认、DryRun 差异、并发身份保护、审计日志 |
各项能力的具体边界和已知限制以 Roadmap 与功能文档为准。
| 工作负载诊断 | 安全更新确认 |
|---|---|
| Pod 实时日志 | Pod 临时访问 |
|---|---|
| 角色与细粒度权限 | 审计事件 |
|---|---|
ZKE Server 是单个二进制,内置 Console 静态资源,依赖 PostgreSQL、一个持久目录,以及启用多集群指标时的
VictoriaMetrics。最快的方式是使用把三者打包在一起的 zke-server-all 镜像,无需任何前置准备:
docker run -d --name zke \
-p 8080:8080 -p 8081:8081 -p 8443:8443/udp \
-v zke-data:/data \
-v zke-postgresql-data:/var/lib/postgresql/data \
-v zke-metrics-data:/var/lib/victoria-metrics \
ghcr.io/togettoyou/zke-server-all:latest启动后打开 http://127.0.0.1:8080,Console 会引导设置第一个全局管理员的用户名和密码。
端口: TCP
8080是 Console 与 API,TCP8081是 Pod Access,UDP8443接收 Agent 的 QUIC/mTLS 连接。 所有部署方式使用同一组端口。数据: 请务必保留
zke-data,它保存 Server Managed PKI,丢失后已接入的 Agent 无法继续连接。指标: 多集群指标默认启用,接入集群后在「可观测性 → 采集接入」中安装采集组件即可看到曲线。 用
-e ZKE_OBSERVABILITY_METRICS_ENABLED=false关闭。
其他部署方式:已有 PostgreSQL、Docker Compose、Helm
已经有数据库时改用只包含 Server 的 zke-server 镜像,用 -e ZKE_DATABASE_URL 指定连接串。
Server 启动时自动执行数据库迁移:
docker run -d --name zke \
-p 8080:8080 -p 8081:8081 -p 8443:8443/udp \
-v zke-data:/data \
-e ZKE_DATABASE_URL="postgres://zke:<password>@db.example.com:5432/zke?sslmode=disable" \
ghcr.io/togettoyou/zke-server:latest需要分别升级、备份和运维 Server、PostgreSQL 与指标存储时,使用仓库提供的 Compose 文件:
cd deploy/docker
cp .env.example .env
# 把 .env 中的 ZKE_POSTGRES_PASSWORD 换成随机密码,例如 openssl rand -hex 24
docker compose up -dmain 分支的 OCI Chart 使用 0.0.0-latest;Git Tag 使用对应的语义化版本:
helm upgrade --install zke oci://ghcr.io/togettoyou/charts/zke \
--version 0.0.0-latest \
--namespace zke-system --create-namespace- 在「组织与资源」中创建 Tenant 和 Project;
- 在「集群接入管理」中创建接入凭证,填写凭证名称、选择接入端点并指定 Agent Namespace;
- 复制生成的
curl | kubectl apply命令,在目标集群执行,即可部署 ZKE Agent。
Agent 需要能访问 Server 的 HTTP 注册地址和 QUIC/UDP 地址。本机 Docker Desktop / OrbStack 集群可直接使用内置 端点预设;跨主机或跨网络接入时,先在「平台配置」中添加目标集群可达的接入端点。完整步骤、外部数据库准备、 升级与备份见部署指南。
每个接入集群部署一个 ZKE Agent。Agent 主动建立 QUIC/mTLS 长连接,ZKE Server 通过对应连接将查询和操作定域到目标集群。
flowchart LR
User["平台用户"] -->|"HTTP / WebSocket"| Server["ZKE Server"]
AgentA["ZKE Agent A"] -->|"主动连接 · QUIC/mTLS"| Server
AgentB["ZKE Agent B"] -->|"主动连接 · QUIC/mTLS"| Server
AgentA <--> ClusterA["Kubernetes Cluster A"]
AgentB <--> ClusterB["Kubernetes Cluster B"]
- 已实现主要链路: 平台基础、集群接入、容器服务,以及多集群指标的第一条链路。
- 规划中: 可观测性的其余部分,包括日志、告警、集群标签体系与资源对比。
- 规划中: AI 运维与排障助手(Copilot),用于结合资源状态、事件、日志和指标辅助分析问题。
规划不代表发布时间或交付承诺。完整规划见 Roadmap;产品、架构、功能与安全设计统一收录在 ZKE 文档导航。
ZKE 仍在快速开发中,欢迎通过 Issues 反馈问题和需求, 或直接提交 Pull Request。提交前请阅读 ZKE 开发协作指南。
如果 ZKE 对你有帮助,欢迎点一个 Star,这对项目很有意义。
ZKE 基于 Apache License 2.0 开源。