Skip to content

Repository files navigation

ZKE

ZKE

像使用桌面应用一样,管理 Kubernetes 多集群

CI Go Version License Stars

在线体验 · 部署指南 · 完整文档 · Roadmap

ZKE(Z Kubernetes Engine)通过 Server + Agent 架构连接分散在数据中心、私有云、公有云和边缘环境中的 Kubernetes 集群。Agent 使用 QUIC/mTLS 主动连接 Server,ZKE Server 无需直接访问任何集群的 Kubernetes API Server;平台团队可以在统一入口中管理资源与工作负载,并实施权限控制、安全操作和审计。

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

用户名 view / 密码 LECQkqcp2tQ5Yh8(只读账号,体验数据可能随时重置)

在 ZKE 桌面中管理集群并打开终端

为什么选择 ZKE

  • 集群在内网,控制台进不去? 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 与功能文档为准。

产品一览

工作负载诊断 安全更新确认
关联对象与 Kubernetes 事件诊断 通过 DryRun 差异确认更新 Deployment
Pod 实时日志 Pod 临时访问
实时查看 Pod 日志 为 Pod 创建一次性临时访问地址
角色与细粒度权限 审计事件
按操作粒度配置角色权限,终端与排空节点等敏感能力单独标注 按发起者、结果与操作筛选审计事件,并可用请求 ID 追溯

快速开始

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,TCP 8081 是 Pod Access,UDP 8443 接收 Agent 的 QUIC/mTLS 连接。 所有部署方式使用同一组端口。

数据: 请务必保留 zke-data,它保存 Server Managed PKI,丢失后已接入的 Agent 无法继续连接。

指标: 多集群指标默认启用,接入集群后在「可观测性 → 采集接入」中安装采集组件即可看到曲线。 用 -e ZKE_OBSERVABILITY_METRICS_ENABLED=false 关闭。

其他部署方式:已有 PostgreSQL、Docker Compose、Helm

Docker:连接已有 PostgreSQL

已经有数据库时改用只包含 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

Docker Compose

需要分别升级、备份和运维 Server、PostgreSQL 与指标存储时,使用仓库提供的 Compose 文件:

cd deploy/docker
cp .env.example .env
# 把 .env 中的 ZKE_POSTGRES_PASSWORD 换成随机密码,例如 openssl rand -hex 24
docker compose up -d

Helm

main 分支的 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

接入第一个集群

  1. 在「组织与资源」中创建 Tenant 和 Project;
  2. 在「集群接入管理」中创建接入凭证,填写凭证名称、选择接入端点并指定 Agent Namespace;
  3. 复制生成的 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"]
Loading

Roadmap

  • 已实现主要链路: 平台基础、集群接入、容器服务,以及多集群指标的第一条链路。
  • 规划中: 可观测性的其余部分,包括日志、告警、集群标签体系与资源对比。
  • 规划中: AI 运维与排障助手(Copilot),用于结合资源状态、事件、日志和指标辅助分析问题。

规划不代表发布时间或交付承诺。完整规划见 Roadmap;产品、架构、功能与安全设计统一收录在 ZKE 文档导航

参与贡献

ZKE 仍在快速开发中,欢迎通过 Issues 反馈问题和需求, 或直接提交 Pull Request。提交前请阅读 ZKE 开发协作指南

如果 ZKE 对你有帮助,欢迎点一个 Star,这对项目很有意义。

License

ZKE 基于 Apache License 2.0 开源。

About

ZKE(Z Kubernetes Engine):macOS 风格的 Kubernetes 多集群控制台,基于 Server + Agent 与 QUIC/mTLS,适用于私有云、混合云及边缘环境。

Topics

Resources

Stars

64 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages