首页 > 其他分享 >KubeEdge v1.17.0发布!数据处理能力与易用性全面提升

KubeEdge v1.17.0发布!数据处理能力与易用性全面提升

时间:2024-07-04 20:21:22浏览次数:18  
标签:keadm kubeedge centos -- v1.17 https 易用性 KubeEdge com

https://developer.huawei.com/consumer/cn/forum/topic/0207151855682956382

 

KubeEdge v1.17.0发布!数据处理能力与易用性全面提升

软件开发

发表于 2024-05-23 14:08发布于:广东50查看

摘要:一文看完新增7个特性功能,为边缘节点和设备带来更强的数据处理能力。

本文分享自华为云社区《KubeEdge v1.17.0发布!数据处理能力与易用性全面提升》 ,作者: 云容器大未来。

KubeEdge社区v1.17.0 版本正式发布。新版本为边缘节点和设备带来了更多的新能力,同时持续在易用性上做了提升。

cke_153.png

KubeEdge v1.17.0 新增特性:

  • 支持边缘 Pods 使用 InClusterConfig 访问 Kube-APIServer
  • Mapper 支持流数据上报
  • 支持边缘子模块自启动
  • 引入 keadm ctl 命令,支持在边缘查询和重启 pod
  • 易用性提升:基于 Keadm 的部署能力增强
  • Mapper 框架添加 MySQL 数据库
  • 升级 K8s 依赖到 v1.28  

新特性概览   

▍支持边缘 Pods 使用 InClusterConfig 访问 Kube-APIServer 

Kubernetes 支持 Pods 使用 InClusterConfig 机制直接访问 Kube-APIServer,然而在边缘场景,边缘 Pods 和 Kube-APIServer 通常不在一个网络环境下,无法直接访问。在1.17.0 新版本中,通过开启 MetaServer 和 DynamicController 模块,边缘 Pods 同样可以使用 InClusterConfig 机制直接访问 Kube-APIServer。

该特性在本版本中作为 Alpha 特性发布,如果你需要使用,您需要开启边缘 List-Watch 开关并配置 requireAuthorization的featureGates。

  • 在使 keadm init 启动 CloudCore 时,指定 cloudCore.featureGates.requireAuthorization=true 以及 cloudCore.modules.dynamicController.enable=true。
  • 启动 EdgeCore 后,按如下修改 edgecore.yaml 后重启 EdgeCore。
apiVersion: edgecore.config.kubeedge.io/v1alpha2
kind: EdgeCore
featureGates:
  requireAuthorization: true
modules:
  ...
  metaManager:
    metaServer:
      enable: true

更多信息可参考:

https://github.com/kubeedge/kubeedge/pull/5524

https://github.com/kubeedge/kubeedge/pull/5541

▍Mapper 支持流数据上报 

1.17 版本中,针对当前 Mapper 只能处理离散型的设备数据,无法处理流数据的问题,为 Mapper-Framework 提供视频流数据处理的能力。在新版本中,能够支持 KubeEdge 管理边缘摄像头设备,获取摄像头采集的视频流,并将视频流保存为帧文件或者视频文件,增强 KubeEdge 边缘设备管理能力。

边缘摄像头设备管理

1.17 版本提供基于 Onvif 协议的内置 Mapper,实现 Onvif 设备驱动功能,能够根据用户配置文件中的定义连接摄像头设备,获取设备的鉴权文件与 RTSP 视频流,将 Onvif 摄像头设备纳管进 KubeEdge 集群。Onvif 设备的一个示例 device-instance 配置文件如下:

apiVersion: devices.kubeedge.io/v1beta1
kind: Device
metadata:
  name: onvif-device-01
  namespace: default
spec:
  deviceModelRef:
    name: onvif-model   # need to be the same as the model name defined in onvif-model.yaml
  protocol:
    protocolName: onvif
    configData:
      url: 192.168.168.64:80   # Replace it with the address of your own onvif camera
      userName: admin          # Replace it with the username of your own onvif camera
      password: /etc/secret/password   # Fill in the fields according to your secret.yaml
  nodeName: edge-node          # Replace it with your edge node name
  properties:
    - name: getURI
      visitors:
        protocolName: onvif
        configData:
          url: 192.168.168.64:80
          userName: admin
          password: /etc/secret/password
          dataType: string

视频流数据处理

新版本增强 Mapper-Framework 数据面能力,内置流数据处理功能。用户能够在 device-instance 文件中进行配置,将边缘摄像头设备上报的视频流截取保存为视频片段文件以及视频帧文件,流数据处理的 device-instance 文件示例如下:

apiVersion: devices.kubeedge.io/v1beta1
kind: Device
metadata:
  name: onvif-device-01
...
properties:
  - name: saveFrame                  # Convert video stream into frame
    visitors:
      protocolName: onvif
      configData:
        format: jpg                  # Frame file format
        outputDir: /tmp/case/        # Directory for output frame files
        frameCount: 30               # Number of output frames
        frameInterval: 1000000       # Time interval between frames (The unit is nanoseconds)
        dataType: stream
  - name: saveVideo                  # Convert video streams into video clips
    visitors:
      protocolName: onvif
      configData:
        frameCount: 1000             # The number of frames the video clip contains
        format: mp4                  # Video clip format
        outputDir: /tmp/case/        # Directory for output video clip
        videoNum: 2                  # Number of video clips
        dataType: stream

更多信息可参考:

https://github.com/kubeedge/kubeedge/pull/5448

https://github.com/kubeedge/kubeedge/pull/5514

https://github.com/kubeedge/mappers-go/pull/127

▍支持边缘子模块自启动

由于配置或者可恢复的环境问题,例如进程启动顺序等,导致 EdgeCore 启动失败。例如,当 containerd.socket 没有就绪时,Edged 启动 Kubelet 失败会导致 EdgeCore 直接退出。

在新版本中,我们改进了 Beehive 框架,支持边缘子模块重启。用户可以通过启动 moduleRestart featureGates,将 EdgeCore 的子模块设置为自动重启,而不是整个 EdgeCore 退出。

该特性在本版本中作为 Alpha 特性发布,如果你需要使用,您需要配置 moduleRestart 的 featureGates。

apiVersion: edgecore.config.kubeedge.io/v1alpha2
kind: EdgeCore
featureGates:
  moduleRestart: true 

更多信息可参考:

https://github.com/kubeedge/kubeedge/pull/5513

https://github.com/kubeedge/kubeedge/pull/5514

▍引入 keadm ctl 命令,支持在边缘查询和重启 pod

当边缘节点离线时,我们无法通过 kubectl 查看边缘节点上的 pod,在 1.17 中可以在边缘节点上通过 keadm ctl get/restart pod [flag] 对 pod 进行查询或重启。

  • 如果需要使用该特性,您需要开启 metaserver 开关。
[root@centos-2 bin]# keadm ctl get pod -h
Get pods in edge node

Usage:
  keadm ctl get pod [flags]

Flags:
  -A, --all-namespaces     If present, list the requested object(s) across all namespaces. Namespace in current context is ignored even if specified with --namespace
  -h, --help               help for pod
  -n, --namespace string   Specify a namespace (default "default")
  -o, --output string      Output format. One of: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file, custom-columns, custom-columns-file, wide)
  -l, --selector string    Selector (label query) to filter on, supports '=', '==', and '!='.(e.g. -l key1=value1,key2=value2)
  • keadm ctl restart pod 的可选参数如下:
[root@centos-2 bin]# keadm ctl restart pod -h
Restart pods in edge node

Usage:
  keadm ctl restart pod [flags]

Flags:
  -h, --help               help for pod
  -n, --namespace string   Specify a namespace (default "default")

Demo 演示:

[root@centos-2 bin]# alias kectl='keadm ctl'
[root@centos-2 bin]# kectl get pod -owide -A
NAMESPACE   NAME                                READY   STATUS    RESTARTS      AGE   IP               NODE       NOMINATED NODE   READINESS GATES
default     nginx-deployment-58b54fbd94-f5q7p   1/1     Running   1 (20m ago)   22m   10.88.0.2        centos-2   <none>           <none>
kubeedge    edge-eclipse-mosquitto-scvrk        1/1     Running   1 (16m ago)   28m   192.168.94.106   centos-2   <none>           <none>

[root@centos-2 bin]# kectl restart pod -n kubeedge    edge-eclipse-mosquitto-scvrk
393cbcac4b484a4a28eee7dd2d63b33137a10a84d5f6eed6402b9a23efc6aef0
af4059137ced56b365da7e1c43d3ea218e3090ab7644a105651ca4661ddf26f0

[root@centos-2 bin]# kectl get pod -owide -A
NAMESPACE   NAME                                READY   STATUS    RESTARTS      AGE   IP               NODE       NOMINATED NODE   READINESS GATES
default     nginx-deployment-58b54fbd94-f5q7p   1/1     Running   1 (21m ago)   23m   10.88.0.2        centos-2   <none>           <none>
kubeedge    edge-eclipse-mosquitto-scvrk        1/1     Running   2 (10s ago)   29m   192.168.94.106   centos-2   <none>           <none>

更多信息可参考:

https://github.com/kubeedge/kubeedge/pull/5535

https://github.com/kubeedge/kubeedge/pull/5504

 ▍易用性提升:基于 Keadm 的部署能力增强

将命令 keadm generate 更改为 keadm manifest;

[root@centos-2 bin]# keadm --help|grep manifest 
  manifest    Checks and generate the manifests.

example:
[root@centos-1 keepalived]# keadm manifest --advertise-address=<cloud-ip> --profile version=v1.17.0

在 keadm join 添加一个镜像仓库参数: image-repository,以支持自定义镜像仓库;

[root@centos-2 bin]# keadm  join -h|grep image-repository
      --image-repository string          Use this key to decide which image repository to pull images from

example:
[root@centos-2 bin]# keadm join --cloudcore-ipport <cloud-ip>:10000 --kubeedge-version=1.17.0 --remote-runtime-endpoint=unix:///run/cri-dockerd.sock --image-repository my.harbor.cn/kubeedge --token xxxx 

将 keadm reset 命令进行三级拆分,拆分成 keadm reset cloud 和 keadm reset edge, keadm reset 仍然被保留,使用时 cloudcore 和 edgecore 都会被卸载,新增的三级命令 keadm reset cloud 和 keadm reset edge 分别只卸载 cloudcore 和 edgecore。

[root@centos-2 bin]# keadm  reset --help
...
Available Commands:
  cloud       Teardowns CloudCore component
  edge        Teardowns EdgeCore component
Flags:
      --force                Reset the node without prompting for confirmation
  -h, --help                 help for reset
      --kube-config string   Use this key to set kube-config path, eg: $HOME/.kube/config (default "/root/.kube/config")

[root@centos-2 bin]# keadm  reset cloud --help
...
Flags:
      --force                Reset the node without prompting for confirmation
  -h, --help                 help for cloud
      --kube-config string   Use this key to set kube-config path, eg: $HOME/.kube/config (default "/root/.kube/config")

[root@centos-2 bin]# keadm  reset edge --help
...
Flags:
      --force   Reset the node without prompting for confirmation
  -h, --help    help for edge

更多信息可参考:

https://github.com/kubeedge/kubeedge/issues/5317

https://github.com/kubeedge/kubeedge/pull/5462

https://github.com/kubeedge/kubeedge/pull/5463

https://github.com/kubeedge/kubeedge/pull/5540

▍Mapper 框架添加 MySQL 数据库

在 1.17 的 Mapper-Framework 中,数据推送模块新增了 MySQL 数据库,如果用户想使用 MySQL 作为某个 property 的 PushMethod,可以在 device instance 的对应 property 下, 通过如下配置即可:

apiVersion: devices.kubeedge.io/v1beta1
kind: Device
...
spec:
  properties:
    - name: xxx
      ...
      pushMethod:
        dbMethod:
          mysql:
            mysqlClientConfig:
              addr: 127.0.0.1:3306    #the url to connect to the mysql database.
              database: kubeedge      #database name
              userName: root          #user name

更多信息可参考:https://github.com/kubeedge/kubeedge/pull/5376

▍升级 K8s 依赖到 v1.28

新版本将依赖的 Kubernetes 版本升级到 v1.28.6,您可以在云和边缘使用新版本的特性。

更多信息可参考:https://github.com/kubeedge/kubeedge/pull/5412

版本升级注意事项   

自 v1.17.0 起,我们推荐在使用 keadm 安装 KubeEdge 时使用 --kubeedge-version=<version> 来指定具体版本,--profile version=<version> 会逐渐废弃。

▍致谢

感谢 KubeEdge 社区技术指导委员会 (TSC)、各 SIG 成员对 v1.17 版本开发的支持与贡献,未来 KubeEdge 将持续在新场景探索与支持、稳定性、安全性、可扩展性等方面持续发展与演进!

▍相关链接

Release Notes:https://github.com/kubeedge/kubeedge/blob/master/CHANGELOG/CHANGELOG-1.17.md  

标签:keadm,kubeedge,centos,--,v1.17,https,易用性,KubeEdge,com
From: https://www.cnblogs.com/ztguang/p/18284602

相关文章

  • 硬核解读KubeEdge基于大模型边云协同的机器人语义分割算法
    本文分享自华为云社区《KubeEdge:基于大模型边云协同的机器人语义分割算法》,作者:云容器大未来。近年来快速发展的视觉大模型(例如SAM)在促进高精度的智能感知方面具有很大的潜力。然而,边缘环境中的资源限制往往会限制这种视觉大模型在本地部署,从而产生相当大的推理延迟,导致难以......
  • Dubbo3 服务原生支持 http 访问,兼具高性能与易用性
    作者:刘军作为一款rpc框架,Dubbo的优势是后端服务的高性能的通信、面向接口的易用性,而它带来的弊端则是rpc接口的测试与前端流量接入成本较高,我们需要专门的工具或协议转换才能实现后端服务调用。这个现状在Dubbo3中得到了彻底解决,Dubbo3.3版本的最新triple协议,在持续提......
  • KubeEdge v1.17.0发布!数据处理能力与易用性全面提升
    本文分享自华为云社区《KubeEdgev1.17.0发布!数据处理能力与易用性全面提升》 ,作者:云容器大未来。KubeEdge社区v1.17.0版本正式发布。新版本为边缘节点和设备带来了更多的新能力,同时持续在易用性上做了提升。KubeEdgev1.17.0新增特性:支持边缘Pods使用In......
  • 使用 Prometheus 在 KubeSphere 上监控 KubeEdge 边缘节点(Jetson) CPU、GPU 状态
    作者:朱亚光,之江实验室工程师,云原生/开源爱好者。KubeSphere边缘节点的可观测性在边缘计算场景下,KubeSphere基于KubeEdge实现应用与工作负载在云端与边缘节点的统一分发与管理,解决在海量边、端设备上完成应用交付、运维、管控的需求。根据KubeSphere的支持矩阵,只有1.23......
  • 快团团平台怎么样?团长安全性和易用性怎么样?
    快团团作为拼多多旗下的微信社群团购平台,自2020年疫情背景下诞生以来,凭借其独特的商业模式和对私域流量的深度挖掘,已逐渐在社区团购领域崭露头角。以下是从安全性与易用性两方面对快团团平台的综合评价:安全性1. 资金交易保护:快团团作为正规的电商平台,其交易过程通常依托......
  • KubeEdge v1.16.0 版本发布!10项新增特性
    本文分享自华为云社区《KubeEdgev1.16.0版本发布!集群升级部署易用性大幅提升》,作者:容器大未来。北京时间2024年1月23日,KubeEdge发布1.16.0版本。新版本新增多个增强功能,在集群升级、集群易用性、边缘设备管理等方面均有大幅提升。KubeEdgev1.16.0新增特性:集群升级:支......
  • KubeEdge EdgeMark 测试环境从零开始搭建
    https://blog.csdn.net/u010549795/article/details/132557648 EdgeMark测试环境从零开始搭建KubeEdge也提供了类似KubeMark的模拟大规模集群的工具,值得注意的是目前EdgeMark只能模拟edgecore,无法模拟edgemesh,所以如果是对网络方面的测试,还是建议老老实实装虚拟机环境配置使用v......
  • KubeEdge介绍和设计原理
    http://bingerambo.com/posts/2021/05/kubeedge%E4%BB%8B%E7%BB%8D%E5%92%8C%E8%AE%BE%E8%AE%A1%E5%8E%9F%E7%90%86/#edgecore  KubeEdge介绍和设计原理Binge 收录于K8S 2021-05-26  约9884字  预计阅读20分钟  本文总阅读量6183次 KubeEdge架构和组......
  • KubeEdge部署 完美运行 附问题解决方法
    云端部署环境准备一、部署前工作(k8s、docker安装及配置、初始化集群、golang安装、keadm安装)配置网络参数cat>>/etc/hosts<<EOF#GitHubStart52.74.223.119github.com192.30.253.119gist.github.com54.169.195.247api.github.com185.199.111.153assets-cdn.gith......
  • KubeEdge v1.15.0发布!新增5大特性
    本文分享自华为云社区《KubeEdgev1.15.0发布!新增Windows边缘节点支持,基于物模型的设备管理,DMI数据面支持等功能》,作者:云容器大未来。北京时间2023年10月13日,KubeEdge发布v1.15.0版本。新版本新增多个增强功能,在边缘节点管理、边缘应用管理、边缘设备管理等方面均有大幅提......