尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

10分钟跑通 KubeEdge:云边协同边缘计算完整指南

10分钟跑通 KubeEdge:云边协同边缘计算完整指南 10分钟跑通 KubeEdge云边协同边缘计算完整指南【免费下载链接】kubeedgeKubernetes Native Edge Computing Framework (project under CNCF)项目地址: https://gitcode.com/GitHub_Trending/ku/kubeedge200 家门店每天把 3.2TB 监控视频回传云端带宽账单压得喘不过气。KubeEdge 是 CNCF 毕业级的云边协同框架把 Kubernetes 编排能力延伸到边缘计算节点让应用和设备就地运行。它到底在解决什么一句话把容器编排 设备管理搬到边缘机房云端仍用同一套 K8s API 统管全局。边缘节点断网时已下发的 Pod 照常运行不依赖云端心跳摄像头、PLC 这类设备通过 CRD 建模和 Pod 一样被 kubectl 管理边缘代理 EdgeCore 足够轻1GB 内存的工控机也跑得动图中 Cloud 侧的 CloudHub 负责把 K8s 资源变更推给边缘Edge 侧的 EdgeHub 负责接收并回报状态Edged 管理容器DeviceTwin 同步设备数据两侧各有一份本地缓存这就是断网自治的来源。从零到跑通4 条命令让边缘节点上线先确认机器能不能跑省得回头返工。最低要求如下项目最低要求云端 K8s 集群1.27 – 1.32推荐 1.30边缘节点2 核 / 1GB 内存 / 10GB 磁盘容器运行时Docker、containerd 或 CRI-O 任选其一网络边缘→云端 10000websocket、10002https端口可达# 云端安装 KubeEdge 云侧组件内部用 Helm 渲染 cloudcore Chart keadm init --advertise-address云端节点IP这条是干嘛的在 K8s 里部署 CloudCore包含 CloudHub、EdgeController 等云端模块。# 生成边缘节点入网用的身份 token keadm cloudcore gettoken这条是干嘛的token 是边缘节点证明我是自己人的凭证复制下来马上用。# 在边缘机器上执行自动安装 edgecore 并向云端注册 keadm join --cloudcore-ipportcloudcore-IP:10000 \ --token上一步token --edgenode-nameedge-node-1这条是干嘛的一条命令装完边缘侧全部组件并完成入网实现见 join 命令源码。# 回到云端验证节点是否就绪 kubectl get nodes看到edge-node-1且状态为 Ready链路就通了。 注意边缘机必须开 NTP 时间同步。时间偏差过大会导致 TLS 握手失败现象是 join 卡在证书校验日志里一片certificate has expired。三个值得单独看的细节这三处机制决定边缘站点能不能长期稳定跑挑你最关心的看。MetaManager 的 SQLite 缓存断网时 Pod 为什么不死做了什么MetaManager 驻守在 EdgeHub 与 Edged 之间把云端同步来的 Pod、Node、ConfigMap 等元数据全部落到边缘节点的本地 SQLite 数据库。云边链路断开时Edged 直接从库里读已有 Pod 不受影响。怎么验证在边缘节点执行sqlite3 /var/lib/kubeedge/edgecore.db SELECT count(*) FROM pod;返回大于 0说明云端数据确实缓存到了本地断网也有货可发。最容易踩的坑缓存只救断网前已同步到边缘的 Pod。断网期间新建的 Deployment边缘侧永远调度不出来——别把断网当成正常窗口去发新应用。Device CRD摄像头也是 K8s 资源做了什么KubeEdge 用一组 CRDDevice、DeviceModel、DeviceTwin把设备变成声明式资源。设备经 MQTT 接入边缘后属性与状态在云边双向同步你可以在云端直接kubectl查询甚至下发期望状态。怎么验证kubectl get devices kubectl get devicetwin 设备名 -o yamldevicetwin的 status 里能看到设备最近上报的属性值这就是云端看见设备的证据。最容易踩的坑以为kubectl apply了 Device YAML 设备就上线了。设备在线还依赖边缘节点上的 MQTT brokerEventBus 模块和对应协议 mapper缺一个设备就永远 NotReady。CloudStream 隧道kubectl exec 为什么能直达边缘 Pod做了什么EdgeCore 默认启用 CloudStream 隧道把 kubectl 的 exec / logs / attach 请求经专用通道透传到边缘节点的 Edged你在云端敲命令效果和本地 Pod 无异。怎么验证kubectl get pods -o wide | grep edge-node-1 kubectl exec -it 边缘Pod名 -n default -- /bin/sh能进 shell 就通了这条通道是远程排障的命脉。最容易踩的坑Pod 调度正常但 exec 超时。隧道走独立端口默认 NodePort 30004防火墙只放了 10000/10002 而漏掉它时就是这种半通状态。上线前你会问自己的 5 个问题逐项打勾哪项缺位现场就会用故障账单提醒你。连通性边缘到云端 10000/10002 真的可达吗 →nc -vz cloudcore-IP 10000权限cloudcore 的 ServiceAccount 有权操作 kubeedge 命名空间吗 →kubectl auth can-i create pods -n kubeedge --assystem:serviceaccount:kubeedge:cloudcore资源边界cloudcore 默认只申请 100m CPU / 512Mi 内存节点多时够吗 →kubectl get pod -n kubeedge -o jsonpath{.items[*].spec.containers[*].resources.requests}日志可观测性断网时你还能拿到边缘现场日志吗 →journalctl -u edgecore -f扩展兼容性你的 K8s 版本在兼容矩阵里吗1.23 对应 1.30–1.32 →kubectl version 注意cloudcore 默认以 hostNetwork privileged 方式运行这是 iptables 管理的硬性要求。多实例混部前先确认你的安全基线能接受这一条。打开 edgecore 启动入口跟一遍启动流程看各模块如何挂载到 EdgeHub 上。【免费下载链接】kubeedgeKubernetes Native Edge Computing Framework (project under CNCF)项目地址: https://gitcode.com/GitHub_Trending/ku/kubeedge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表