基于边缘和基于水平的意义是什么?

xia*_*yan 5 kubernetes

"基于水平"和"基于边缘"的含义一般意味着什么?

我从kubernetes文档中读到"换句话说,系统的行为是基于级别的而不是基于边缘的":https: //github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md

与谷歌,我只找到:http: //www.keil.com/forum/9423/edge-based-vs-level-based-interrupt/

谢谢.

小智 11

它还有一个更通用的定义(至少我们倾向于在文档中使用它的方式).如果一个逻辑仅依赖于当前状态,则它是"基于级别的".如果一个逻辑依赖于除当前状态之外的历史/转换,则它是"基于边缘的".

"基于级别"的组件更具弹性,因为如果它们崩溃,它们可以重新启动并查看当前状态."基于边缘的"组件必须存储它们所依赖的历史记录(或依赖于存储它的其他组件),这样当它们重新启动时,它们可以查看当前状态和历史记录.此外,如果存在某种临时网络分区并且基于边缘的组件错过了某些更新,那么它将计算错误的输出.

但是,"基于级别"的组件通常效率较低,因为它们可能需要扫描大量状态才能计算输出,而不是仅仅读取增量.

许多组件是两者的混合物.

简单示例:您希望构建一个报告处于READY状态的pod数量的组件.基于级别的实现将从etcd(或API服务器)获取所有pod并进行计数.基于边缘的实现将在启动时执行一次,然后仅监视进入和退出READY状态的pod.