赞
踩
摘要:K8s正在向边缘计算渗透,它为边缘侧的应用部署提供了便利性,在一定程度上转变了边缘应用与硬件之间的关系,将两者的耦合度降低。
本文分享自华为云社区《云原生在物联网中的应用【拜托了,物联网!】》,作者: kaliarch。
物联网已经产生了数量惊人的数据,随着5G网络的部署,这些数据将呈指数级增长。管理和使用这些数据是一个挑战。
无论是从交通摄像头、气象传感器、电表等会产生信息,这些信息与智能城市环境中,其他摄像头和传感器的数据相结合,在一个中心位置处理起来可能会太多,尤其是当你在预期设备会对事件做出反应时。
超大规模云计算环境中已被普遍使用的Kubernetes(简称K8s),带入到物联网边缘计算场景中。新成立的Kubernetes物联网边缘工作组将采用运行容器的理念并扩展到边缘,促进K8s在边缘环境中的适用。
KubeEdge 是一个开源的系统,可将本机容器化应用编排和管理扩展到边缘端设备。 它基于Kubernetes构建,为网络和应用程序提供核心基础架构支持,并在云端和边缘端部署应用,同步元数据。KubeEdge 还支持 MQTT 协议,允许开发人员编写客户逻辑,并在边缘端启用设备通信的资源约束。KubeEdge 包含云端和边缘端两部分。
通过在边缘端运行业务逻辑,可以在本地保护和处理大量数据。KubeEdge 减少了边和云之间的带宽请求,加快响应速度,并保护客户数据隐私。
开发人员可以编写常规的基于 http 或 mqtt 的应用程序,容器化并在边缘或云端任何地方运行。
使用 KubeEdge 用户可以在边缘节点上编排应用、管理设备并监控应用程序/设备状态,就如同在云端操作 Kubernetes 集群一样。
用户可以轻松地将复杂的机器学习、图像识别、事件处理等高层应用程序部署到边缘端。
注意事项:
默认情况下10000,10002边缘节点需要可以访问 Cloudcore 中的端口和端口。
keadm init将安装 cloudcore,生成证书并安装 CRD。它还提供了一个可以设置特定版本的标志。
重要说明: 1. kubeconfig 或 master 中至少一个必须正确配置,以便用于验证 k8s 集群的版本和其他信息。1.请确保边缘节点可以使用云节点的本地IP连接云节点,或者您需要使用--advertise-address标志指定云节点的公共IP 。1. --advertise-address(1.3版本后才有效)是云端暴露的地址(会加入到CloudCore证书的SAN中),默认值为本地IP。
例子:
# keadm init --advertise-address="THE-EXPOSED-IP"(only work since 1.3 release)
输出:
- Kubernetes version verification passed, KubeEdge installation will start...
- ...
- KubeEdge cloudcore is running, For logs visit: /var/log/kubeedge/cloudcore.log
keadm gettoken在云端运行将返回令牌,该令牌将在加入边缘节点时使用。
- # keadm gettoken
- 27a37ef16159f7d3be8fae95d588b79b3adaaf92727b72659eb89758c66ffda2.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTAyMTYwNzd9.JBj8LLYWXwbbvHKffJBpPd5CyxqapRQYDIXtFZErgYE
keadm join将安装 edgecore 和 mqtt。它还提供了一个可以设置特定版本的标志。
例子:
# keadm join --cloudcore-ipport=192.168.20.50:10000 --token=27a37ef16159f7d3be8fae95d588b79b3adaaf92727b72659eb89758c66ffda2.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTAyMTYwNzd9.JBj8LLYWXwbbvHKffJBpPd5CyxqapRQYDIXtFZErgYE
输出:
- Host has mosquit+ already installed and running. Hence skipping the installation steps !!!
- ...
- KubeEdge edgecore is running, For logs visit: /var/log/kubeedge/edgecore.log
注意事项:
- kubectl apply -f https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/devices/devices_v1alpha2_device.yaml
- kubectl apply -f https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/devices/devices_v1alpha2_devicemodel.yaml
- kubectl apply -f https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/reliablesyncs/cluster_objectsync_v1alpha1.yaml
- kubectl apply -f https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/reliablesyncs/objectsync_v1alpha1.yaml
# cloudcore --minconfig > cloudcore.yaml
详情请参考云配置。
# cloudcore --config cloudcore.yaml
# edgecore --minconfig > edgecore.yaml
# kubectl get secret -nkubeedge tokensecret -o=jsonpath='{.data.tokendata}' | base64 -d
# sed -i -e "s|token: .*|token: ${token}|g" edgecore.yaml
这token就是上面步骤得到的。
详情请参考edge的配置。
如果要在同一台主机上运行 cloudcore 和 edgecore,请先运行以下命令:
# export CHECK_EDGECORE_ENVIRONMENT="false"
启动边缘核:
# edgecore --config edgecore.yaml
运行edgecore -h以获取帮助信息并根据需要添加选项。
K8s正在向边缘计算渗透,它为边缘侧的应用部署提供了便利性,在一定程度上转变了边缘应用与硬件之间的关系,将两者的耦合度降低。通过KubeEdge,拓展“边缘场景”,可帮助用户加速实现云边协同,在海量边、端设备上完成大规模应用的统一交付、运维与管控。
据Gartner估计,到2025年,超过75%的企业生成数据可以在传统数据中心和云之外创建和处理,像Kubernetes这样的编排系统前景光明,它已经被证明是完成这一任务的最佳工具。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。