MCPcopy
hub / github.com/openyurtio/openyurt

github.com/openyurtio/openyurt @v1.7.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.7.0 ↗
4,925 symbols 19,467 edges 708 files 2,058 documented · 42%
README

openyurtio/openyurt

Version License Go Report Card codecov OpenSSF Best Practices

English | 简体中文

notification What is NEW!
最新发布:2026-05-06 OpenYurt v1.7.0 请查看 CHANGELOG 来获得更多更新细节.
第一个发布:2020-05-29 OpenYurt v0.1.0-beta.1

OpenYurt (官网: https://openyurt.io) 是基于 Upstream Kubernetes 构建的,现在是托管在云原生基金会(CNCF) 下的 孵化项目.

OpenYurt Overview

OpenYurt 是为满足典型边缘基础设施的各种 DevOps 需求而设计的。 通过 OpenYurt 来管理边缘应用程序,用户可以获得与中心式云计算应用管理一致的用户体验。 它解决了 Kubernetes 在云边一体化场景下的诸多挑战,如不可靠或断开的云边缘网络、边缘节点自治、边缘设备管理、跨地域业务部署等。 OpenYurt 保持了完整的 Kubernetes API 兼容性,无厂商绑定,更重要的是,它使用简单。

架构

OpenYurt 遵循经典的云边一体化架构。 集群的 Kubernetes 管控面部署在云端(或者中心机房中),而由集群管理的边缘节点位于靠近数据源的边缘站点中。 每个边缘节点都具有适量的计算资源,从而可以运行边缘应用以及 OpenYurt 系统组件。集群中的边缘节点可以分布在多个物理区域,这些物理区域在 OpenYurt 中称为 Pools。 集群中的边缘节点可以分处于在多个物理区域中(region)。

OpenYurt architecture

上图展示了 OpenYurt 的核心架构。OpenYurt 的主要组件包括:

  • YurtHub:YurtHub 以静态 pod 模式在工作节点上运行,它作为节点的 Sidecar 处理所有来自工作节点上的组件(如 Kubelet, Kubeproxy 等)到 kube-apiserver 的请求。
  • Yurt-Manager:包括所有云边协同场景下的Controllers和Webhooks。
  • Raven-Agent: 它用于处理 OpenYurt 中的云边,边边间的跨公网通信。 主要在不同物理区域的 pod 之间提供第 3 层网络连接,就像在一个 vanilla Kubernetes 集群中一样。
  • Yurt-Coordinator(Optional):该组件安装会在每个边缘 NodePool 中会自动部署一个 Yurt-Coordinator 实例,它联合 YurtHub 为节点池提供心跳代理、云边缘流量复用等能力。
  • YurtIoTDock(Optional): 用户通过创建PlatformAdmin资源在指定节点池中安装YurtIoTDock, 它将连接EdgeX Foundry系统为用户提供云原生的边缘设备管理能力。

此外,OpenYurt 还包括用于集成和定制的辅助控制器。

开始使用

OpenYurt 目前已经确认支持至 Kubernetes v1.34 版本。预计对 Kubernetes 的后续版本同样具备兼容性,但尚待验证。

OpenYurt 集群安装分成 2 个部分,分别为安装 OpenYurt 管控组件和节点接入。

发展规划

OpenYurt 发展规划

社区

贡献

如果您愿意为 OpenYurt 项目做贡献,请参阅我们的 CONTRIBUTING 文档以获取详细信息。我们还准备了开发人员指南来帮助代码贡献者。

周会

Item Value
社区会议 从 2022.5.11 开始从双周会调整为周会,周三上午 11:00 ~ 12:00(北京时间)
会议链接 https://us02web.zoom.us/j/82828315928?pwd=SVVxek01T2Z0SVYraktCcDV4RmZlUT09
会议纪要 会议议程及纪要
会议视频 B 站 OpenYurt

联络方式

如果您对本项目有任何疑问或想做出贡献,欢迎通过 github issue 或 pull request 来沟通相关问题,其他有效的沟通渠道如下所示:

  • 邮件组: https://groups.google.com/g/openyurt/
  • Slack: OpenYurt channel (English)
  • DingTalk: 搜索群 ID 12640034121 (Chinese)

许可证

OpenYurt 遵循 Apache 2.0 许可证。有关详细信息请参见 LICENSE 文件。 OpenYurt 中的某些特定实现是基于 Kubernetes 的现有代码,这些实现都应归功于 Kubernetes 相关代码的原作者。

Extension points exported contracts — how you extend this code

Store (Interface)
Store is an interface for caching data into store [24 implementers]
pkg/yurthub/storage/store.go
DNSRecordController (Interface)
DNSRecordController interface defines the method for synchronizing the node dns records with k8s DNS component(such as C [15 …
pkg/yurttunnel/trafficforward/dns/dns.go
InitSystem (Interface)
InitSystem is the interface that describe behaviors of an init system [4 implementers]
pkg/yurtadm/util/initsystem/initsystem.go
SetupWebhookWithManager (Interface)
(no doc) [11 implementers]
pkg/yurtmanager/webhook/server.go
DeviceInterface (Interface)
DeviceInterface defines the interfaces which used to create, delete, update, get and list Device objects on edge-side pl [3 …
pkg/yurtiotdock/clients/interface.go
CertManagerFactory (Interface)
CertManagerFactory knows how to create CertManager for OpenYurt Components. [3 implementers]
pkg/util/certmanager/factory/factory.go
ContainerRuntimeForImage (Interface)
ContainerRuntime is an interface for working with container runtimes [2 implementers]
pkg/node-servant/components/runtime.go
NodeController (Interface)
(no doc) [3 implementers]
test/e2e/common/node/node.go

Core symbols most depended-on inside this repo

Run
called by 496
pkg/yurttunnel/agent/agent.go
Error
called by 450
pkg/util/iptables/iptables.go
Get
called by 294
pkg/yurthub/storage/store.go
New
called by 259
pkg/util/certmanager/factory/factory.go
String
called by 235
pkg/util/iptables/testing/parse.go
GetNodePoolLabel
called by 200
pkg/projectinfo/projectinfo.go
DeepCopy
called by 133
pkg/yurtmanager/controller/platformadmin/platform_admin_controller.go
CoreV1
called by 124
pkg/yurtmanager/controller/testutil/test_utils.go

Shape

Function 2,354
Method 1,916
Struct 516
Interface 73
TypeAlias 48
FuncType 18

Languages

Go100%

Modules by API surface

pkg/util/iptables/iptables.go67 symbols
pkg/yurtmanager/controller/daemonsetupgradestrategy/imagepreheat/image_preheat_controller_test.go64 symbols
pkg/apis/iot/v1alpha1/zz_generated.deepcopy.go64 symbols
pkg/yurtmanager/controller/testutil/test_utils.go59 symbols
pkg/yurtmanager/controller/daemonsetupgradestrategy/daemonpodupdater/kubernetes/controller_utils.go54 symbols
pkg/apis/apps/v1alpha1/zz_generated.deepcopy.go54 symbols
pkg/yurtmanager/controller/yurtnodeconversion/yurt_node_conversion_controller.go53 symbols
pkg/yurthub/util/util.go50 symbols
pkg/yurtadm/util/yurthub/yurthub_test.go43 symbols
pkg/node-servant/components/runtime.go40 symbols
pkg/util/iptables/iptables_test.go39 symbols
pkg/apis/apps/v1beta1/zz_generated.deepcopy.go38 symbols

Dependencies from manifests, versioned

cel.dev/exprv0.25.1 · 1×
cyphar.com/go-pathrsv0.2.1 · 1×
github.com/Azure/go-ansitermv0.0.0-2023012417243 · 1×
github.com/MakeNowJust/heredocv1.0.0 · 1×
github.com/Masterminds/semver/v3v3.4.0 · 1×
github.com/NYTimes/gziphandlerv1.1.1 · 1×
github.com/aliyun/alibaba-cloud-sdk-gov1.62.156 · 1×
github.com/antlr4-go/antlr/v4v4.13.0 · 1×
github.com/beorn7/perksv1.0.1 · 1×
github.com/blang/semver/v4v4.0.0 · 1×
github.com/cespare/xxhash/v2v2.3.0 · 1×

For agents

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

⬇ download graph artifact