Kubernetes——分布式系统设计中几种容器运行模型

分布式系统设计中几种容器运行模型

一、Sidecar pattern(边车模型或跨斗模型)

  为 Pod 主应用容器提供协同的辅助应用容器,每个应用独立运行,最为典型的代表是将主应用容器中的日志使用 agent 收集至日志服务器中时,可以将 agent 运行为辅助应用容器,即 sidecar。另一个典型的应用是为主应用容器中的 database server 启用本地缓存,模型如下图:

二、Ambassador pattern(大使模型)

  为远程服务创建一个本地代理,代理应用运行于容器中,主容器中的应用通过代理容器访问远程服务。

  一个典型的使用示例是主应用容器的进程访问 "一主多从" 模型的远程 Redis 应用时,可在当前 Pod 容器中为 Redis 服务创建一个 Ambassador container,主应用容器中的进程直接通过 locahost 接口访问 Ambassador container 即可。即便是 Redis 主从集群架构发生变动时,也仅需要将 Ambassador container 加以修改即可,主应用容器无须对此作出任何反应。

三、Adapter pattern(适配器模型):

  一般用于将主应用容器中的内容进行标准化输出。例如:日志数据或指标数据的输出,这有助于调用者统一接收数据的接口,如下图所示。另外某应用滚动升级后的版本不兼容旧的版本时,其报告信息的格式也存在不兼容的可能性,使用 Adapter container 有助于避免调用此报告数据的应用发生错误。

  Kubernetes 系统的 Pod 资源对象用于运行单个容器化应用,此应用称为 Pod 对象的主容器(main container),同时 Pod 也能容纳多个容器,不过额外的容器一般工作为 Sidecar 模型,用于辅助主容器完成工作职能。

posted @ 2022-06-13 15:19  左扬  阅读(118)  评论(0编辑  收藏  举报
levels of contents