Sidecar 拓扑必须是一对一的吗?

Does sidecar topology has to be one to one?

我正在尝试在分布式系统的单节点模式(用于实现代理、资源日志记录等)中学习边车模式。

我只是想知道它是否与 类 中的基数比率有关。应用程序容器的边车是否必须始终是一对一的?

[ Systems Brendan Burns 的参考和来自 Designing Distributed 的图像]

一般来说,为了增强主容器的功能,添加了sidecar容器。它们是通常与主应用程序一起部署的轻量级支持流程或服务。

sidecar 主要用于在应用程序容器不知情的情况下执行外围操作。它应该主要共享与主容器相同的卷、命名空间等。它应该是一个与应用程序容器运行在同一个 pod 上的容器。

根据需要,它应帮助处理外围功能,例如代表主容器执行更新、平台抽象、服务间通信、监视或安全相关的处理程序。

Sidecar 应出现在主应用程序存在的任何地方,并且它的生命周期与主应用程序容器紧密耦合。正如每辆摩托车如何拥有自己的边车以满足其额外需求一样,对于应用程序的每个实例,边车实例都会与其一起部署以满足额外的外围设备需求。一般来说,sidecar容器应该设计得小巧、可插拔、不那么复杂。因此,它主要与主要应用程序一对一。

如果 sidecar 服务涉及主应用程序的更多 ipc, 最好将逻辑作为主要应用程序的一部分,而这又取决于您的要求。此外,如果 sidecar 变得臃肿或变得越来越复杂,并且如果它必须独立于主应用程序进行扩展,那么它应该成为一个独立的服务而不是 sidecar。