已实质停止维护的边缘容器管理框架,原腾讯云牵头,选型请改用其他方案
停更提示:SuperEdge 实质已停止维护,不要用于新项目。
- 最后一个 release:v0.9.0,2023-04-20(支持 Kubernetes 1.22.6)
- 最后一次代码提交:2024-02-20(
main分支,commita979e05)- GitHub 仓库尚未打归档标记(页面仍显示 Public),CNCF 页面也仍列为 Sandbox 项目 —— 但从 2024 年初起已无任何功能更新与安全补丁,停更时间超过两年
- 替代方案:全新边缘集群选
kubeedge(CNCF 毕业)或k3s+ 集中式编排;改造存量集群选openyurt(CNCF 孵化);边缘设备接入选akri判定依据与自查方法见本站
ecosystem-status页。
SuperEdge 是 2020 年 12 月由腾讯云牵头(联合 Intel、VMware、虎牙、寒武纪、美团等)发起的边缘容器管理系统,2021-09-14 成为 CNCF Sandbox 项目,设计目标是把跨地域的边缘资源当作一个 Kubernetes 集群来管理。
它当年的定位很清晰,也解决了一批真实问题:云边弱网时节点被误判为故障而驱逐 Pod。为此它做了分布式健康检查 —— 由同区域的边缘节点互相探测投票,而不是只依赖云端心跳。这个思路至今仍有参考价值。
本页的作用有两个:一是记录停更事实,避免有人照旧教程把它装进生产;二是保留设计要点,这些思路在 KubeEdge 与 OpenYurt 里以另一种形式延续着。
# 1. 最后一次提交时间(仓库首页右侧 Commits 区域)
# https://github.com/superedge/superedge/commits/main
# 2. 最后一次发布(注意 release 列表更新于 2023 年)
# https://github.com/superedge/superedge/releases
# 3. CNCF 项目页面的健康度数据
# https://www.cncf.io/projects/superedge/
# 贡献者数量与提交活跃度均处于持续下降状态
「未归档」和「在维护」是两件事:CNCF Sandbox 项目的归档需要走正式流程,而维护者往往在停止投入后并不会主动去归档仓库。判断标准应看最后一次提交与发布的时间,而不是有没有 archive 标记。
云端组件
tunnel-cloud 云边隧道的云端侧,与 tunnel-edge 保持持久连接
支持 TCP/HTTP/HTTPS 反向代理,让云端能访问 NAT 后的边缘节点
application-grid controller 管理 DeploymentGrid / StatefulSetGrid / ServiceGrid 三类 CRD
edge-health admission 把边缘侧的健康检查结果喂给 Kubernetes 控制器,避免误驱逐
site-manager 管理 NodeUnit / NodeGroup,并提供 Kins(离线部署轻量 K3s)
边端组件
lite-apiserver 轻量 apiserver 代理与缓存,边缘自治的核心
断网时用本地缓存应答,节点重启后业务容器仍能恢复
tunnel-edge 主动连接 tunnel-cloud,接收云端请求并转发给本机 kubelet
edge-health 同一边缘区域内的节点互相探测与投票
application-grid wrapper 为同一 ServiceGrid 内的服务提供独立网络空间,流量闭环
其中 lite-apiserver 的思路(在边缘侧做一层带缓存的 apiserver 代理)与今天 OpenYurt 的 YurtHub 几乎一致;edge-health 的分布式健康检查则对应 KubeEdge 用 MetaManager 维持本地状态、避免云端误判的做法。理解这一段历史,有助于看懂后续框架为什么这样设计。
| 能力 | SuperEdge 的实现 | 今天的对应方案 |
|---|---|---|
| 边缘自治 | lite-apiserver 缓存代理 | OpenYurt YurtHub / KubeEdge MetaManager |
| 云边协同 | tunnel-cloud + tunnel-edge | KubeEdge CloudHub/EdgeHub(Raven 于 OpenYurt) |
| 海量站点管理 | NodeUnit + ServiceGrid 单元化 | OpenYurt NodePool + YurtAppSet |
| 分布式健康检查 | edge-health 互探投票 | 各框架自带的节点状态维持机制 |
# edgeadm 是 SuperEdge 的安装工具,一键部署边缘集群
# 注意:以下命令在今天的 Kubernetes 版本上大概率无法直接使用
edgeadm init --kubernetes-version=1.22.6 \
--apiserver-advertise-address=<ip> \
--image-repository <registry> \
--enable-lite-apiserver
# 边缘节点加入
edgeadm join <master-ip>:6443 --token <token> \
--discovery-token-ca-cert-hash sha256:<hash>
# 回退
edgeadm reset
edgeadm 深度依赖 kubeadm 的内部实现与特定 Kubernetes 版本。Kubernetes 1.22 之后 kubeadm 的配置结构、证书流程、容器运行时接口都发生过变化,edgeadm init 在新版本上失败几乎是必然的 —— 这也是停更项目最直接的代价:它不是「能用但不更新」,而是「随上游演进逐渐不能用」。
存量 SuperEdge 集群的收尾建议按以下顺序:
1. 冻结版本 停止升级现有集群,记录当前 Kubernetes 与 SuperEdge 版本清单
2. 盘点依赖 梳理哪些能力在被真实使用(自治?隧道?单元化?)
多数集群实际只用到其中 1-2 项,迁移量比想象的小
3. 能力映射 按上表把用到的能力映射到 KubeEdge / OpenYurt 的对应组件
4. 先迁 K8s 把底层 Kubernetes 升到受支持版本,再谈换边缘框架
5. 灰度切换 先迁一个边缘站点,验证自治与网络能力,再批量推进
6. 清理 移除 lite-apiserver 与 tunnel 相关静态 Pod 与 iptables 规则
第 6 步容易被遗漏:这类组件会改写节点上的网络规则并常驻静态 Pod,只删云端组件不清理节点,会留下难以定位的流量劫持问题。
SuperEdge 的问题不在设计,而在定位:
1. 它要解决的「边缘自治」与「云边弱网」,后来被 KubeEdge 以更彻底的架构覆盖
2. 它要解决的「多站点单元化」,后来被 OpenYurt 的 NodePool + YurtAppSet 覆盖
3. 它要求在节点上常驻 lite-apiserver 与 tunnel-edge,运维面比「装一个 YurtHub」更重
4. 上游 Kubernetes 的演进(CRI、kubeadm 配置结构、EndpointSlice)持续产生适配成本,
而没有足够的维护者跟上
这不是个例:边缘框架是典型的「少数派胜出」领域。CNCF 在边缘计算方向上最终由 KubeEdge(Graduated)与 OpenYurt(Incubating)占据主要位置,同期出现的其他方案声量普遍下降。选型时应优先看社区规模与 CNCF 成熟度,而不是功能对比表的行数 —— 功能表上多出来的那几行,两年后可能没人维护。
需要说明的是,SuperEdge 源自腾讯云 TKE Edge 这条商业产品线,开源项目停更不等于商业产品停更 —— 但对开源选型来说这没有意义,你依赖的是开源仓库,不是某家厂商的商业支持。
如果你的集群还在跑 SuperEdge,先回答这几个问题:
[ ] 当前 Kubernetes 版本是多少?是否还在上游支持范围内?
[ ] 有没有依赖 lite-apiserver 做过自定义(缓存路径、端口、启动参数)?
[ ] tunnel-cloud/tunnel-edge 是否在承担云端访问边缘 kubelet 的职责?
[ ] 有没有在用 DeploymentGrid/StatefulSetGrid/ServiceGrid 这些 CRD?
[ ] 有没有用 site-manager 的 Kins 在边缘部署 K3s?
[ ] 节点上的静态 Pod 清单里有哪些 SuperEdge 组件?
[ ] edge-health 的互探机制是否还在正常工作?
前三项的答案决定了迁移量:如果只是「装了但没深度使用」,迁移可能只是清理组件;如果大量业务依赖 ServiceGrid 的流量闭环,就需要逐站点改造。先量化依赖,再谈迁移排期,不要一上来就选替代方案。
site-manager 的 Kins 能力没有直接替代。它用于在边缘离线环境部署轻量 K3s 集群,类似需求今天通常用 k3s 加自动化工具自行拼装,迁移前要确认这个能力是否真的在用。DeploymentGrid/ServiceGrid 这类 CRD 需要重写。OpenYurt 的对应抽象是 NodePool + YurtAppSet,字段与语义都不相同,不能直接转换 YAML。SuperEdge 的经历给出一份通用的检查清单,适用于任何边缘/基础设施开源项目:
[ ] 最后一次 release 距今多久? 超过 12 个月就要警惕,超过 24 个月基本可判死刑
[ ] release 节奏是否规律? 停更前往往先出现「发布间隔越来越长」
[ ] CNCF 成熟度如何? Graduated / Incubating / Sandbox 差距很大
[ ] 贡献者是否来自多家公司? 单一厂商主导的项目,厂商转向即停更
[ ] 支持的 Kubernetes 版本跨度? 只支持两三个旧版本说明适配工作已经停了
[ ] issue 与 PR 的响应时间? 看最近三个月的实际响应,而不是总数量
[ ] 仓库是否归档? —— 未归档不代表在维护,反之才成立
本站 ecosystem-status 页维护了一份已停更项目的清单,选型前建议先对照一遍。
kubeedge — 替代方案之一,CNCF 毕业的边缘计算框架openyurt — 替代方案之一,面向存量集群的零侵入改造akri — 边缘设备接入框架k3s — 边缘侧轻量发行版kubectl — Kubernetes集群管理工具etcd — 集群数据存储与备份