MCPcopy
hub / github.com/kubeedge/kubeedge

github.com/kubeedge/kubeedge @v1.23.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.23.0 ↗
9,656 symbols 34,221 edges 1,169 files 3,492 documented · 36%
README

KubeEdge

Go Report Card LICENSE Releases CII Best Practices

logo

English | 简体中文

KubeEdge 是一个开源的系统,可将本机容器化应用编排和管理扩展到边缘端设备。它基于 Kubernetes 构建,为网络和应用程序提供核心基础架构支持,并在云端和边缘端部署应用,同步元数据。KubeEdge 还支持 MQTT 协议,允许开发人员编写客户逻辑,并在边缘端启用设备通信的资源约束。KubeEdge 包含云端和边缘端两部分。

使用 KubeEdge,可以很容易地将已有的复杂机器学习、图像识别、事件处理和其他高级应用程序部署到边缘端并进行使用。 随着业务逻辑在边缘端上运行,可以在本地保护和处理大量数据。 通过在边缘端处理数据,响应速度会显著提高,并且可以更好地保护数据隐私。

KubeEdge 是一个由 Cloud Native Computing Foundation (CNCF) 托管的毕业级项目,CNCF 对 KubeEdge 的 毕业公告

优势

  • Kubernetes 原生支持:使用 KubeEdge 用户可以在边缘节点上编排应用、管理设备并监控应用程序/设备状态,就如同在云端操作 Kubernetes 集群一样。

  • 云边可靠协作:在不稳定的云边网络上,可以保证消息传递的可靠性,不会丢失。

  • 边缘自治:当云边之间的网络不稳定或者边缘端离线或重启时,确保边缘节点可以自主运行,同时确保边缘端的应用正常运行。

  • 边缘设备管理:通过 Kubernetes 的原生API,并由CRD来管理边缘设备。

  • 极致轻量的边缘代理:在资源有限的边缘端上运行的非常轻量级的边缘代理(EdgeCore)。

它如何工作

KubeEdge 由云端和边缘端部分构成:

架构

架构图

云上部分

  • CloudHub: CloudHub 是一个 Web Socket 服务端,负责监听云端的变化,缓存并发送消息到 EdgeHub。
  • EdgeController: EdgeController 是一个扩展的 Kubernetes 控制器,管理边缘节点和 Pods 的元数据确保数据能够传递到指定的边缘节点。
  • DeviceController: DeviceController 是一个扩展的 Kubernetes 控制器,管理边缘设备,确保设备信息、设备状态的云边同步。

边缘部分

  • EdgeHub: EdgeHub 是一个 Web Socket 客户端,负责与边缘计算的云服务(例如 KubeEdge 架构图中的 Edge Controller)交互,包括同步云端资源更新、报告边缘主机和设备状态变化到云端等功能。
  • Edged: Edged 是运行在边缘节点的代理,用于管理容器化的应用程序。
  • EventBus: EventBus 是一个与 MQTT 服务器 (mosquitto) 交互的 MQTT 客户端,为其他组件提供订阅和发布功能。
  • ServiceBus: ServiceBus 是一个运行在边缘的 HTTP 客户端,接受来自云上服务的请求,与运行在边缘端的 HTTP 服务器交互,提供了云上服务通过 HTTP 协议访问边缘端 HTTP 服务器的能力。
  • DeviceTwin: DeviceTwin 负责存储设备状态并将设备状态同步到云,它还为应用程序提供查询接口。
  • MetaManager: MetaManager 是消息处理器,位于 Edged 和 Edgehub 之间,它负责向轻量级数据库 (SQLite) 存储/检索元数据。

兼容性

Kubernetes 版本兼容

Kubernetes 1.27 Kubernetes 1.28 Kubernetes 1.29 Kubernetes 1.30 Kubernetes 1.31 Kubernetes 1.32
KubeEdge 1.19 - - -
KubeEdge 1.20 + - -
KubeEdge 1.21 + - -
KubeEdge 1.22 + + -
KubeEdge 1.23 + + +
KubeEdge HEAD (master) + + +

说明: * KubeEdge 和 Kubernetes 的版本是完全兼容的 * + KubeEdge 中有些特性或 API 对象可能在对应的 Kubernetes 版本中不存在 * - Kubernetes 中有些特性或 API 对象可能在对应的 KubeEdge 版本中不可用

使用

从此文档开始你的 KubeEdge 之旅!

有关更多详细信息,请参阅我们在 kubeedge.io 上的文档。

要深入了解 KubeEdge,请在 examples 中尝试一些示例。

路线图

社区例会

技术指导委员会 (TSC) 会议: - 太平洋时间:北京时间 周三 10:00-11:00(每双周一次,从 2020 年 2 月 26 日开始)。『查询本地时间』

例会时间: - 欧洲时间:北京时间 周三 16:00-17:30(每周一次,从 2020 年 2 月 19 日开始)。『查询本地时间』

会议资源: - 会议纪要和议程 - 会议视频记录 - 会议链接 - 会议日历 | 订阅日历

支持

如果您需要支持,请从故障排除指南开始,然后按照我们概述的流程进行操作。

如果您有任何疑问,请以下方式与我们联系:

贡献

如果您有兴趣成为一个贡献者,也想参与到 KubeEdge 的代码开发中,请查看 CONTRIBUTING 获取更多关于如何提交 Patch 和贡献的流程。

安全

安全审计报告

KubeEdge的第三方安全审计报告已于2022年7月完成。此外,KubeEdge社区对KubeEdge进行了系统的安全分析和威胁建模。详细报告如下。

报告安全漏洞

我们鼓励漏洞研究人员和行业组织主动将KubeEdge社区的疑似安全漏洞报告给KubeEdge社区安全团队(cncf-kubeedge-security@lists.cncf.io)。我们会快速的响应、分析和解决上报的安全问题或安全漏洞。 详细漏洞处理流程及如何上报漏洞请查看 Security Policy

许可证

KubeEdge 基于 Apache 2.0 许可证,查看 LICENSE 获取更多信息。

Extension points exported contracts — how you extend this code

EventFilter (Interface)
EventFilter filter the event before enqueuing the key [17 implementers]
cloud/pkg/edgecontroller/manager/event_filter.go
ProtocolClient (Interface)
protocol client each protocol(websocket/quic) provide Connect [9 implementers]
pkg/viaduct/pkg/client/client.go
OSTypeInstaller (Interface)
OSTypeInstaller interface for methods to be executed over a specified OS distribution type [7 implementers]
keadm/cmd/keadm/app/cmd/common/types.go
DTWorker (Interface)
DTWorker worker for devicetwin [55 implementers]
edge/pkg/devicetwin/dtmanager/dtworker.go
ServiceAccountAccessNamespaceLister (Interface)
ServiceAccountAccessNamespaceLister helps list and get ServiceAccountAccesses. All objects returned here must be treated [12 …
staging/src/github.com/kubeedge/api/client/listers/policy/v1alpha1/serviceaccountaccess.go
EdgedConnection (Interface)
EdgedConnection indicate the connection request to the edged [4 implementers]
pkg/stream/edgedconnection.go
PrivateKeyWrap (Interface)
(no doc) [3 implementers]
pkg/security/certs/types.go
Token (Interface)
Token interface to validate the MQTT connection. [1 implementers]
tests/e2e/utils/common.go

Core symbols most depended-on inside this repo

Error
called by 1070
edge/pkg/taskmanager/actions/runner.go
New
called by 814
cloud/pkg/cloudhub/authorization/config.go
Reset
called by 468
pkg/metaserver/application.go
Run
called by 219
cloud/pkg/csidriver/server.go
Run
called by 219
edge/pkg/eventbus/mqtt/server.go
Get
called by 205
edge/pkg/metamanager/client/pod.go
Flags
called by 186
edge/cmd/edgecore/app/options/options.go
Run
called by 175
keadm/cmd/keadm/app/cmd/debug/get.go

Shape

Method 4,389
Function 3,694
Struct 1,258
Interface 238
TypeAlias 49
FuncType 28

Languages

Go100%

Modules by API surface

staging/src/github.com/kubeedge/api/apis/dmi/v1alpha1/api.pb.go525 symbols
staging/src/github.com/kubeedge/api/apis/dmi/v1beta1/api.pb.go439 symbols
staging/src/github.com/kubeedge/api/apidoc/generated/openapi/zz_generated.openapi.go403 symbols
staging/src/github.com/kubeedge/api/apis/devices/v1alpha2/zz_generated.deepcopy.go74 symbols
staging/src/github.com/kubeedge/api/apis/devices/v1beta1/zz_generated.deepcopy.go72 symbols
staging/src/github.com/kubeedge/api/apis/dmi/v1beta1/api_grpc.pb.go70 symbols
staging/src/github.com/kubeedge/api/apis/operations/v1alpha2/zz_generated.deepcopy.go50 symbols
staging/src/github.com/kubeedge/api/apis/apps/v1alpha1/zz_generated.deepcopy.go48 symbols
tests/e2e/utils/common.go47 symbols
cloud/pkg/edgecontroller/controller/upstream_test.go45 symbols
pkg/viaduct/pkg/protos/message/message.pb.go43 symbols
cloud/pkg/edgecontroller/controller/upstream.go40 symbols

Dependencies from manifests, versioned

cel.dev/exprv0.18.0 · 1×
dario.cat/mergov1.0.1 · 1×
filippo.io/edwards25519v1.1.0 · 1×
github.com/256dpi/gomqttv0.10.4 · 1×
github.com/256dpi/mercuryv0.1.0 · 1×
github.com/AdaLogics/go-fuzz-headersv0.0.0-2023081113042 · 1×
github.com/Azure/go-ansitermv0.0.0-2023012417243 · 1×
github.com/BurntSushi/tomlv1.4.0 · 1×
github.com/JeffAshton/win_pdhv0.0.0-2016110914355 · 1×
github.com/MakeNowJust/heredocv1.0.0 · 1×
github.com/Masterminds/goutilsv1.1.1 · 1×
github.com/Masterminds/semver/v3v3.3.0 · 1×

For agents

$ claude mcp add kubeedge \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact