开篇

大家好呀!我是超级热爱边缘计算的云原生实践者,前几次分别从整体搭建、应用分发、网络治理、集群生命周期与监控策略等角度分享了Kurator体验,这次我换一个特别实用的角度——边缘计算场景下的云边协同实战。Kurator深度集成了KubeEdge,能够轻松实现云端统一管理边缘节点、边缘应用下发、设备映射、边缘自治等能力,这正是很多物联网、智能制造、智慧零售场景的刚需!

这次我将完整记录从零开始搭建Kurator + KubeEdge云边环境、注册边缘节点、下发边缘应用、实现边缘自治的全过程,包含详细步骤、代码示例、验证方式,以及对边缘场景运维价值的分析。希望能给正在探索云边协同的朋友带来启发,一起加油拥抱边缘云原生时代吧!

一、Kurator在边缘计算场景中的核心价值

随着5G和物联网爆发,边缘计算需求爆发式增长,但传统方案存在明显痛点:

  • 云端难以统一管理海量边缘节点
  • 应用下发复杂、网络不稳定时边缘易失控
  • 设备数据上云链路冗长、安全性差

Kurator作为分布式云原生开源平台,完美集成KubeEdge(CNCF毕业项目),在Fleet机制基础上提供:

  • 统一边缘节点管理:云端注册边缘节点,支持大规模边缘集群加入舰队
  • 统一边缘应用分发:通过FluxCD将云原生应用可靠下发到边缘
  • 边缘自治与可靠同步:网络中断时边缘可自治运行,恢复后自动同步
  • 设备映射与数据上报:原生支持Device CRD,实现边缘设备统一管理

官方文档GitHub仓库 强调,Kurator将KubeEdge无缝融入分布式舰队管理,让云边协同像管理普通成员集群一样简单。这对于企业实现数智化转型、降低边缘运维成本、提升系统韧性具有巨大价值。对于开发者来说,本地就能模拟真实云边场景,快速验证想法👍。和GitHub仓库(https://github.com/kurator-dev/kurator)强调,Kurator将KubeEdge无缝融入分布式舰队管理,让云边协同像管理普通成员集群一样简单。这对于企业实现数智化转型、降低边缘运维成本、提升系统韧性具有巨大价值。对于开发者来说,本地就能模拟真实云边场景,快速验证想法👍。

二、实战环境准备与Kurator基础部署

本次实战模拟真实云边环境:一台主机集群代表“云端”,两台虚拟机/容器代表“边缘节点”。

首先我们先到Kurator开源主页去,先把项目给克隆下来。

具体我们需要现在本地安装Git,才能项目代码克隆:

具体操作如下所示:

然后本地打开git,输入克隆命令:

git clone https://gitcode.com/kurator-dev/kurator.git 

如上,项目源码便拉取到本地啦。

如上,我们可以到本地,已经把Kurator给克隆下来了,接下来,我们可以放手把玩了。

2.1 环境准备
  • 云端(主机集群):kind创建
  • 边缘节点:两台Ubuntu虚拟机(edge1、edge2),安装kubelet、containerd
  • 网络:模拟边缘网络不稳定(可断开网线测试自治)

创建云端主机集群:

kind create cluster --name kurator-cloud --image kindest/node:v1.28.0
kubectl config use-context kind-kurator-cloud

如下是相关部署文档:

2.2 安装Kurator核心组件

参考官方Setup指南:

  1. 添加Helm仓库并安装Cluster Operator与Fleet Manager
helm repo add kurator https://kurator-dev.github.io/charts
helm repo update

helm install cluster-operator kurator/cluster-operator \
  --namespace kurator-system --create-namespace --wait

helm install fleet-manager kurator/fleet-manager \
  --namespace kurator-fleet-system --create-namespace --wait
  1. 安装KubeEdge相关组件(官方集成方式):
    Kurator支持通过Fleet插件或Application方式部署KubeEdge cloud核心。
# 安装KubeEdge cloud部分到主机集群
apiVersion: apps.kurator.dev/v1alpha1
kind: Application
metadata:
  name: kubeedge-cloud
  namespace: kurator-fleet-system
spec:
  source:
    helmRepository:
      url: https://kubeedge.io/charts
  syncPolicies:
  - destination:
      cluster: kurator-cloud  # 仅云端部署
    helm:
      releaseName: kubeedge-cloud
      chart:
        spec:
          chart: kubeedge
          version: v1.15.0
kubectl apply -f kubeedge-cloud.yaml

验证cloudcore运行:

kubectl get pods -n kubeedge

小问题解决

  • KubeEdge版本兼容:严格使用官方支持版本。
  • CRD冲突:先卸载旧版KubeEdge再安装。

如下是Kurator官方文档:

三、注册边缘节点到Kurator舰队

KubeEdge边缘节点注册是云边协同的基础。

3.1 在边缘节点安装edgecore

在edge1、edge2上执行(参考KubeEdge官方安装脚本):

# 下载并安装edgecore(以v1.15.0为例)
wget https://github.com/kubeedge/kubeedge/releases/download/v1.15.0/kubeedge-v1.15.0-linux-amd64.tar.gz
tar -xzf kubeedge-v1.15.0-linux-amd64.tar.gz
sudo cp kubeedge-v1.15.0-linux-amd64/edge/edgecore /usr/local/bin/

配置edgecore.conf(关键部分):

modules:
  edged:
    enable: true
  eventBus:
    mqttMode: 0  # 内部MQTT
  twin:
    enable: true

启动:

sudo edgecore
3.2 云端创建EdgeNode并加入Fleet

Kurator通过AttachedCluster或专用EdgeCluster方式管理边缘节点。

示例:创建边缘节点资源

apiVersion: cluster.kurator.dev/v1alpha1
kind: AttachedCluster
metadata:
  name: edge1
  namespace: kurator-fleet-system
spec:
  kubeconfigSecretRef: edge1-kubeconfig  # 提前创建secret
  type: Edge

---
apiVersion: fleet.kurator.dev/v1alpha1
kind: Fleet
metadata:
  name: edge-fleet
  namespace: kurator-fleet-system
spec:
  clusters:
  - name: edge1
    type: Attached
  - name: edge2
    type: Attached

使用cloudcore生成token后,在边缘节点运行加入命令(标准KubeEdge流程),节点上线后自动加入舰队。

验证:

kubectl get nodes  # 看到edge1、edge2节点
kubectl get attachedcluster -n kurator-fleet-system

边缘自治验证:断开边缘节点网络,edgecore仍可管理本地Pod;恢复网络后自动同步状态。

附上相关架构图:

四、统一边缘应用分发实战

边缘应用下发是Kurator + KubeEdge的强项,支持可靠投递。

4.1 使用Application下发边缘专用应用

示例:下发一个边缘数据采集应用(nginx + device mapper模拟)

apiVersion: apps.kurator.dev/v1alpha1
kind: Application
metadata:
  name: edge-nginx-app
  namespace: default
spec:
  source:
    gitRepository:
      url: https://github.com/kurator-dev/kurator
      ref:
        branch: main
      interval: 3m
  syncPolicies:
  - destination:
      fleet: edge-fleet
    kustomization:
      path: ./examples/edge/simple-nginx  # 假设官方有类似示例
      prune: true
      interval: 5m

应用后,Deployment自动通过KubeEdge可靠下发到边缘节点,即使网络中断也会排队等待。

验证:

# 在边缘节点本地查看
ssh edge1 "crictl ps | grep nginx"
4.2 边缘自治场景测试
  1. 正常网络:应用秒级下发。
  2. 断网:云端修改Deployment副本数为3,边缘保持原状自治运行。
  3. 恢复网络:边缘自动同步到3副本。

作用分析:统一边缘应用分发彻底解决了传统方案“下发不可靠”的痛点,支持离线升级、可靠同步。在边缘场景中,这极大提升了应用可用性,降低了对稳定网络的依赖,特别适合偏远地区或移动边缘。

五、边缘设备映射与数据上报实战

KubeEdge原生支持Device CRD,Kurator继承并统一管理。

5.1 定义设备模型与实例
apiVersion: devices.kubeedge.io/v1alpha2
kind: DeviceModel
metadata:
  name: temperature-sensor
spec:
  properties:
  - name: temperature
    type:
      int:
        accessMode: ReadOnly
        maximum: 100
        minimum: -50

---
apiVersion: devices.kubeedge.io/v1alpha2
kind: Device
metadata:
  name: sensor-01
spec:
  deviceModelRef:
    name: temperature-sensor
  protocol:
    name: mqtt
  nodeSelector:
    nodeSelectorTerms:
    - matchExpressions:
      - key: kubernetes.io/hostname
        operator: In
        values:
        - edge1
5.2 边缘侧模拟上报数据

在边缘节点部署mapper应用(官方示例)上报模拟温度数据到云端Twin。

验证云端查看:

kubectl get device sensor-01 -o yaml | grep temperature

作用分析:统一设备管理让云端能像管理Pod一样管理物理设备,支持双向控制和数据采集。为工业IoT、智能设备管理提供了标准云原生接口,极大简化了传统网关开发。

六、综合案例:构建一个云边协同的智慧园区平台

我将以上功能组合落地:

  • 云端:Kurator主机集群 + KubeEdge cloudcore
  • 边缘:两个边缘节点加入edge-fleet
  • 应用:下发视频分析应用 + 温度传感器设备映射
  • 场景:模拟园区安防摄像头(边缘推理) + 环境监测
  • 技术选型:全Kurator + KubeEdge,避免手动配置cloudcore/edgecore
  • 攻坚过程:解决边缘证书信任、MQTT端口映射
  • 落地效果:设备数据实时上云,应用可靠下发,断网后边缘自治运行
  • 价值:系统韧性高、运维统一、扩展性强,可直接用于真实项目

所以说,如果你感兴趣,赶紧去下载吧:

七、总结与心得

这次专注边缘计算场景的Kurator实战,让我彻底感受到云边协同的魅力!KubeEdge的强大能力在Kurator舰队管理下变得更加易用,一栈统一让边缘不再是“孤岛”。官方文档对KubeEdge集成描述详尽,examples也很实用,新手也能快速上手😊。

未来,期待Kurator在更多边缘AI调度、OTA升级、5G MEC场景深化支持。感谢Kurator社区的开源精神,祝大家玩转云边协同,成为边缘云原生实战派!

Kurator分布式云原生开源社区地址:https://gitcode.com/kurator-dev
Kurator分布式云原生项目部署指南:https://kurator.dev/docs/setup/

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐