Init 容器是在容器中启动主容器之前应运行并完成的容器。
-
在应用程序或主容器需要一些先决条件(例如在启动之前安装一些软件、数据库设置、文件系统的权限)。
-
希望延迟主容器启动。
它为初始化提供了单独的生命周期,因此可以分离应用程序中的关注点。
二、Sidecar(边车)容器
Sidecar 容器是与 Pod 中的主容器一起运行的容器。Sidecar 模式可以在不更改的情况下扩展并增强当前容器的功能。
-
希望扩展或增强现有单个容器 Pod 的功能但不想更改现有容器 Pod 功能。
-
想将主容器代码与 Git 服务器请求同步。
-
将日志事件发送到外部服务器。
-
用于与网络相关的任务时。
三、Adapter(适配器)容器
本质上,很多应用程序是异构的,这意味着它们没有相同的接口,或者与其他系统是不一致的。
想象一下,一个容器 Pod 正在运行,但是它与其他系统没有相同的接口,因为无法集成或使用它。
如何使该容器具有标准化格式的统一接口,以便其他系统可以连接到容器?
Adapter 容器模式可以在这种情况下起到作用。
四、Ambassador(外交官)容器
Ambassador 容器是一种特殊的 Sidecar 容器,可以简化 Pod 外部服务。
在 kubernetes 上运行应用程序时,可能会有外部服务访问数据。Ambassador 容器隐藏了复杂性,并提供了统一的接口来访问这些外部服务。
-
希望隐藏主容器的复杂性,例如服务发现(service discovery)。
-
当容器化服务想要与外部服务对话时,我们可以使用此模式来处理这些服务的请求和响应。
-
每当需要转换或标准化外部服务响应的格式时。
Kubernetes 容器设计模式概述
https://mp.weixin.qq.com/s/noALeBgD8_phe6BsFDsjyA