系统架构

    其中蓝色框为原生Kubernetes组件,橙色框中组件为OpenYurt组件。

    • Cloud Node:通过内网与Kubernetes Master连接,主要用于部署运行中心控制组件。节点Label: openyurt.io/is-edge-worker: false
    • Edge Node:通过公网与Kubernetes Master连接,一般和边缘生产环境距离较近,主要用于部署运行边缘业务容器。节点Label: openyurt.io/is-edge-worker: true

    由于边缘节点一般不暴露在公网上,为了从云端向边缘下发运维指令时(如kubectl exec往边缘容器下发命令),或者收集边缘运行数据(如prometheus拉取边缘kubelet的metrics)时,这些运维流量将会经过YurtTunnel Agent和YurtTunnel Server构建的双向认证的安全反向隧道,最后由YurtTunnel Agent转发到目标边缘节点。

    • YurtHub:

      • 部署形态:以Static Pod形态运行在每个节点上。
      • 中心的控制器,目前包括NodeLifeCycle Controller(不驱逐自治节点上的Pod),YurtCSRController(用于Approve边缘的证书申请)
      • 部署形态:Deployment形态部署在Cloud Node上
    • YurtAppManager:

      • 跨地域的资源及业务负载管理器,目前包括NodePool(节点池管理),YurtAppSet(之前叫UnitedDeployment)(节点池维度的业务负载管理),YurtAppDaemon(节点池维度的Daemonset), YurtIngress(节点池维度的Ingress Controller管理器)
      • 部署形态: Deployment形态部署在Cloud Node上
      • 用于边缘IOT解决方案的非侵入融合,通过云原生模式管控边缘设备。目前EdgeX Foundry已经无缝集成到OpenYurt架构中。
      • YurtEdgeXManager以Deployment形态部署在Cloud Node上,YurtDeviceController以YurtAppSet(之前叫UnitedDeployment)形态部署在Edge Node上,每个NodePool上部署一套YurtDeviceController。
    • NodeResourceManager:

      • 管理 OpenYurt 集群本地资源的组件,用户可以通过修改集群内 ConfigMap 的定义来动态配置集群内宿主机上的本地资源。