陈
SuperEdge 开发者团队,腾讯云容器中心TKE Edge团队
SuperEdge 是基于原生 Kubernetes 的分布式边缘云容器管理系统,由腾讯云牵头,联合英特尔、VMware 威睿、虎牙、寒武纪、美团、首都在线等多家厂商在2020年12月共同发起的边缘计算开源项目,旨在将把 Kubernetes 强大的容器管理能力无缝的扩展到边缘计算和分布式资源管理的场景中,为边缘 IoT,边缘 AI,边缘智慧行业等赋能,推动物联网和数字化的落地。目前已成为 CNCF Sandbox 项目,由 CNCF 基金会进行托管。
SuperEdge 在 2022-02-09 发布了 v0.7.0 版本,详情扫下方二维码了解。
本次版本主要是生产落地过程中功能的提炼,有边缘站点资源的抽象和应用的抽象,进行资源和应用的灵活搭配;有实例落地过程中用户对边缘应用高可用和断网更新的实际需求;有边缘 Webhook 无感知访问诉求的解决;有社区强烈呼吁的 K8s 的1.20版本、Containerd 运容器行时,云边节点混部……功能。也有 WasmEdge、GPU 和 NANO-GPU、云边互通 Fabedge 的使用案例,以下是功能细节:
NodeGroup 是边缘资源的抽象,ServiceGroup 是边缘应用的抽象,两者根据应用的需要进行不同资源属性的绑定,将边缘应用调度到合理的边缘节点上。
该功能使用文档见:
这个功能是边缘应用高可用的初版,边缘应用不同于 K8s 的原生应用,硬搬 K8s 的原生应用并不适合边缘场景,特别是应对边缘应用的高可用和弹性扩展。
本功能本次只提供在云边断网时,边缘 Pod 可更新,主要是通过 Static Pod 实现。后续还会提供更加优雅的方式,以支持边缘应用的高可用和弹性扩展。
该功能使用文档见:
在边缘应用中存在 webhook,那么 kube-apiserver 是无法直接访问到的。本次在 tunnel 中支持了 ANP,通过 kube-apiserver 的EgressSelector 功能把请求边侧 webhook 的请求通过 Tunnel 转发给边缘,实现了边缘集群中 webhook 的无感知访问。
该功能使用文档见:
edge-health 是定时 Check 边缘站点内节点健康状况的组件。本次借助kube-scheduler 的 out-of-tree 插件注册思想,实现了 edge-health 的自定义插件功能。用户无须修改 edge-health 的源码,便可注册自己的 Check 逻辑。
本次支持了 Kubernetes 的 v1.20.6 版本,目前社区提供了 Kubernetes 的 v1.18.2和 Kubernetes 的 v1.20.6 eageadm 的一键部署,其他版本可按用 edgeadm 一键安装边缘 K8s 集群和原生 K8s 集群,SuperEdge 需要做组件代码的升级,感兴趣的同学也可来社区,为 SuperEdge 做出您的贡献。
用 edgeadm 一键安装边缘 K8s 的安装包可执行如下命令下载,注意机器的体系:
arch=amd64 version=v0.7.0 kubernetesVersion=1.20.6 && rm -rf edgeadm-linux-* && wget https://attlee-1251707795.cos.ap-chengdu.myqcloud.com/superedge/$version/$arch/edgeadm-linux-$arch-$version-k8s-$kubernetesVersion.tgz && tar -xzvf edgeadm-linux-* && cd edgeadm-linux-$arch-$version-k8s-$kubernetesVersion && ./edgeadm
详细安装请参考用 edgeadm 一键安装边缘 K8s 集群和原生 K8s 集群,或者 SuperEdge的Quickstart[1]。
演示短视频[2]:
在用 edgeadm 一键安装边缘 K8s 集群和原生 K8s 集群时,可通过参数 --runtime=containerd/dockerd
来选择你需要的容器运行时,默认--runtime=dockerd
, dockerd 版本是19.03.8
, cotainerd 版本是1.3.4
, 其他版本可替换安装包中的组件二进制。
在用 edgeadm 一键安装边缘 K8s 集群和原生 K8s 集群 时,edgedam join 节点时可通过参数 --enable-edge=true
来选择 Join 原生的 K8s 节点还是边缘K8s节点。默认--enable-edge=true
Join 边缘节点,明确指定--enable-edge=false
Join 原生的 K8s 节点。Join 原生 K8s 节点要注意 Join 的节点要和 Kubernetes master 二层网络互通,也就是内网互通,否则可当边缘节点处理。
lite-apiserver 是 SuperEdge 的边缘自治组件,本次增强的重要功能如下:
--network-interface
参数填入多个网卡,在多个网卡中选择好的网络质量和kube-apiserver保持连接。当然基于多网卡的功能扩展也正在进行。更多功能的详细介绍,可查看SuperEdge changelog 0.7[4].
SuperEdge 0.7 版本社区很多同学做出了杰出的贡献,经评审有两名同学达到 Member 级别,有两名同学达到了 Reviwer 级别,现公布如下:
2名Reviwer:
2名Member:
想加入我们的交流群,共同探讨 SuperEdge、研究边缘容器技术的同学,请添加腾小云,回复“SuperEdge”,邀请你进群~
项目链接:
https://github.com/superedge/superedge
Release 链接:https://github.com/superedge/superedge/releases/tag/v0.7.0
变更记录:https://github.com/superedge/superedge/blob/main/CHANGELOG/CHANGELOG-0.7.md
项目文档:https://github.com/superedge/superedge/tree/main/docs
[1]
SuperEdge的Quickstart: 【https://github.com/superedge/superedge】
[2]
视频链接: 【https://attlee-1251707795.cos.ap-chengdu.myqcloud.com/superedge/v0.7.0/edegadm-init-k8s.mp4】
[3]
Pebble: 【https://github.com/cockroachdb/pebble】
[4]
SuperEdge changelog 0.7: 【https://github.com/superedge/superedge/blob/0.7.7/CHANGELOG/CHANGELOG-0.7.md】
[5]
在SuperEdge中部署WasmEdge运行时,来部署WebAssembly应用: 【https://github.com/superedge/superedge/blob/main/examples/wasmedge/wasmedge.md】
[6]
在SuperEdge使用gpu和nano-gpu,分别来提高计算能力和资源利用率: 【https://github.com/superedge/superedge/blob/main/examples/gpu/SuperEdge_GPU_CN.md】】
[7]
@JaneLiuL: 【https://github.com/JaneLiuL】
[8]
@malc0lm:【https://github.com/malc0lm】
[9]
@luhaopei: 【https://github.com/luhaopei】
[10]
@huweihuang: 【https://github.com/huweihuang】
互动赢好礼
精读文章,回答问题赢好礼
Q1:云边断链如何更新Pod的镜像,让实例正常服务?
Q2:云边断链有边缘节点宕机,服务实例数如何保持不变?
3月16日下午5点,由作者选出回答最佳的5位读者,送腾讯周边盲盒一个。
往期精选推荐