Kubeedge Edged概述
Kubeedge Edged概述
Overview
EdgeD是管理节点生命周期的边缘节点模块。它可以帮助用户在边缘节点上部署容器化的工作负载或应用程序。这些工作负载可以执行任何操作,从简单的远程遥测数据操作到分析或ML推理等等。使用kubectl云端的命令行界面,用户可以发出命令来启动工作负载。
通过容器运行时接口Container Runtime Interface(CRI)支持几种符合OCI的运行时runtimes。请参阅KubeEdge运行时配置,以获取有关如何配置边缘以利用其他运行时的更多信息。
有许多模块协同工作以实现edged的功能。

EdgeD Overall
Fig 1: EdgeD Functionalities
Pod Management
它是pod添加,删除和修改的句柄。它还使用pod status manager和pleg跟踪pod的运行状况。其主要工作如下:
- 接收并处理来自metamanager的pod添加/删除/修改消息。
- 处理单独的工作队列以添加和删除容器。
- 处理工作程序例程以检查工作程序队列以执行pod操作。
- 分别为配置映射和秘密保留单独的缓存。
- 定期清理孤立的吊舱orphaned pods

Pod Addition Flow
Fig 2: Pod Addition Flow
Pod Deletion Flow

Fig 3: Pod Deletion Flow

Pod Updation Flow
Fig 4: Pod Updation Flow
Pod Lifecycle Event Generator生命周期事件生成器
该模块有助于监视吊舱pod的边缘状态。每隔一秒钟,通过使用活动性和就绪状态的探测,会使用窗格状态管理器为每个窗格更新信息。

PLEG Design
Fig 5: PLEG at EdgeD
CRI for edged
Container Runtime Interface (CRI) – a plugin interface which enables edged to use a wide variety of container runtimes like Docker, containerd, CRI-O, etc., without the need to recompile. For more on how to configure KubeEdge for container runtimes, see KubeEdge runtime configuration.
容器运行时接口Container Runtime Interface(CRI)–一个插件接口,使边缘用户无需重新编译即可使用各种容器运行时runtimes,例如Docker,contained,CRI-O等。有关如何为容器运行时配置KubeEdge的更多信息,请参见KubeEdge运行时配置。
Why CRI for edged?
为了在以下情况中需要CRI支持边缘化的多个容器运行时runtimes:
- 在无法运行现有Docker运行时的资源受限边缘节点上支持轻量级容器运行时runtime。
- 在边缘节点上支持多个容器运行时runtime,例如Docker,contained,CRI-O等。
稍后将考虑对具有暂停容器和IP的相应CNI的支持。

CRI Design
Fig 6: CRI at EdgeD
Secret Management
在边缘,秘密是分开处理的。对于添加,删除和修改之类的操作,有单独的配置消息和接口集。使用这些接口,机密会在缓存存储中更新。下面的流程图说明了消息流。

Secret Message Handling
Fig 7: Secret Message Handling at EdgeD
Edged使用MetaClient模块从MetaManager获取机密。如果边缘查询尚未存储在MetaManager中的新机密,则该请求将转发到云。在发送包含机密的响应之前,MetaManager将其存储在本地数据库中。随后将从数据库检索对同一密钥的查询,从而减少了等待时间。下面的流程图显示了如何从MetaManager和云中获取机密。它还描述了机密如何存储在MetaManager中。

Query Secret
Fig 8: Query Secret by EdgeD
Probe Management
探针管理分别创建两个探针,以准备就绪和活动,以便吊舱监视容器。就绪探针可通过监视容器何时达到运行状态来提供帮助。活动性探针可通过监视吊舱的健康状况(指示吊舱处于打开还是关闭状态)来提供帮助。如前所述,PLEG模块使用其服务。
ConfigMap Management
在有边缘的情况下,ConfigMap也被单独处理。对于添加,删除和修改之类的操作,有单独的配置消息和接口集。使用这些接口,可以在缓存存储中更新ConfigMap。下面的流程图说明了消息
ConfigMap Message Handling
Fig 9: ConfigMap Message Handling at EdgeD
Edged使用MetaClient模块从MetaManager获取ConfigMap。如果边缘查询尚未存储在MetaManager中的新ConfigMap,则该请求将转发到云。在发送包含ConfigMap的响应之前,MetaManager将其存储在本地数据库中。随后将从数据库检索对同一ConfigMap密钥的查询,从而减少了延迟。下面的流程图显示了如何从MetaManager和Cloud获取ConfigMap。它还描述了ConfigMap如何存储在MetaManager中。Query Configmaps

Fig 10: Query Configmaps by EdgeD
Container GC
The container garbage collector is an edged routine which wakes up every minute, collecting and removing dead containers using the specified container gc policy. The policy for garbage collecting containers is determined by three variables, which can be user-defined:
容器垃圾收集器是一个边缘例程,它每分钟唤醒一次,使用指定的容器gc策略收集和删除死容器。垃圾收集容器的策略由三个变量确定,可以由用户定义:
- MinAge 是可以收集垃圾的最小年龄,零是无限制的。
- MaxPerPodContainer 是允许任何单个吊舱(UID,容器名称)对具有的失效容器的最大数量,不超过零且没有限制。
- MaxContainers是死容器总数的最大数量,无限制地小于零。通常,最旧的容器会先被移除。
Image GC
图像垃圾收集器是一个边缘程序,每5秒唤醒一次,并根据使用的策略收集有关磁盘使用情况的信息。垃圾收集图像的策略考虑了两个因素:HighThresholdPercent和LowThresholdPercent。磁盘使用率高于高阈值将触发垃圾回收,垃圾收集将尝试删除未使用的映像,直到达到低阈值为止。首先删除最近最少使用的图像。
Status Manager
状态管理器是一个独立的边缘例程,它每10秒收集一次pod状态,并使用metaclient接口将该信息转发到云。

Status Manager Flow
Fig 11: Status Manager Flow
Volume Management
卷管理器作为边缘例程运行,该边缘例程基于在边缘节点上安排的容器,带出要附加/安装/卸载/分离哪些卷的信息。
在启动Pod之前,将附加并安装Pod规格中引用的所有指定卷,直到阻塞该流及其其它操作。
MetaClient
Metaclient是Metamanger for Edge的接口。它有助于从Metamanager或云中获取ConfigMap和秘密详细信息。它还向metamanger发送同步消息,节点状态和pod状态到云。
Kubeedge Edged概述的更多相关文章
- KubeCon深度洞察 | KubeEdge开源首秀
以下内容根据华为云DJ在KubeCon Shanghai Demo Session演讲实录整理而成. KubeEdge Demo Show 11月15日上午Huawei宣布了KubeEdge项目开源, ...
- KubeEdge,一个Kubernetes原生边缘计算框架
KubeEdge成为第一个Kubernetes原生边缘计算平台,Edge和云组件现已开源! 开源边缘计算正在经历其业界最具活力的发展阶段.如此多的开源平台,如此多的整合以及如此多的标准化举措!这显示 ...
- KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码
KubeEdge开源背景 KubeEdge在18年11月24日的上海KubeCon上宣布开源,技术圈曾掀起一阵讨论边缘计算的风潮,从此翻开了边缘计算和云计算联动的新篇章. KubeEdge即Kube+ ...
- KubeEdge云边协同设计原理
云端组件CloudCore与k8s Master的关系 从黑盒角度看,CloudCore就是k8s的一个插件,它是非侵入的来扩展k8s的一部分功能,将原来云上的节点映射到边缘端进行管理,一个Cloud ...
- KubeEdge边缘自治设计原理
这一篇内容主要是KubeEdge中边缘节点组件EdgeCore的原理介绍. KubeEdge架构-EdgeCore 上图中深蓝色的都是kubeedg自己实现的组件,亮蓝色是k8s社区原生组件.这篇主要 ...
- 边缘计算 KubeEdge+EdgeMash
简介 KubeEdge是面向边缘计算场景.专为边云协同设计的业界首个云原生边缘计算框架,在 Kubernetes 原生的容器编排调度能力之上实现了边云之间的应用协同.资源协同.数据协同和设备协同等能力 ...
- KubeEdge 1.12版本发布,稳定性、安全性、可扩展性均带来大幅提升
摘要:2022年9月29日,KubeEdge发布1.12版本.新版本新增多个增强功能,在扩展性.稳定性.安全性上均有大幅提升. 本文分享自华为云社区<KubeEdge 1.12版本发布,稳定性. ...
- 【AR实验室】ARToolKit之概述篇
0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
随机推荐
- hdu1815 2sat + 二分 + 建图
题意: 给你两个总部,s1 ,s2,和n个点,任意两点之间都是通过这个总部相连的,其中有一些点不能连在同一个总部上,有一些点可以连接在同一个总部上,总部和总部之间可以直接连接,就是假如a, ...
- PAT 乙级 -- 1005 -- 继续(3n+1)猜想
题目简述 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如 ...
- hdu2371 矩阵乘法(求序列位置改变m次后的序列)
题意: 给你一个字符串,然后让你执行m次操作,每次操作把当前的字符串映射到他给你的位置序列的位置,比如给的是 3 1 2,第一步就是把原来的3的位置的字母变到1的位置,1的变到2的位置,2 ...
- hdu3585 二分最大团(dp优化)
题意 给你一些点( <= 50),让你找到k个点,使得他们之间的最小距离最大. 思路: 求最小的最大,我们可以直接二分去枚举距离,但是要注意,不要去二分double找距离 ...
- Windows PE导出表编程3(暴力覆盖导出函数)
今天要尝试的导出表相关编程内容是:覆盖函数地址部分的指令代码. 这种覆盖技术,是将AddressOfFunctions指向的地址空间指令字节码实施覆盖,这种技术又繁衍出两种: 暴力覆盖,即将所有的代码 ...
- Web漏洞小结
本文是对Web中最常见漏洞的一个小结: 注入类漏洞: SQL注入:SQL注入漏洞详解 XML注入:XXE(XML外部实体注入) 代码注入:代码注入漏洞 CRLF注入:CRLF注入 注入类漏洞是应用违背 ...
- Listview滑动时不加载数据,停下来时加载数据,让App更优
http://blog.csdn.net/yy1300326388/article/details/45153813
- SpringBoot 项目 部署 jar方式
SpringBoot部署-jar方式 步骤1部署方式 Springboot 和我们之前学习的web 应用程序不一样,其本质上是一个 Java 应用程序,那么又如何部署呢? 通常来说,Springbo ...
- CCNA 第四章 轻松划分子网
1:划分子网的的好处: (1):减少网络流量 (2):优化网络性能 (3):简化管理 (4):有助于覆盖大型地理区域 2:CIDR和ISP的概念 (1):CIDR:Classless Inter-Do ...
- 用Taro写一个微信小程序(二)——配置目录别名
配置别名可以方便书写代码引用路径,让代码更整洁. 官方文档可参考https://nervjs.github.io/taro/docs/config-detail#alias 一.在config/ind ...