Skip to content

Latest commit

 

History

History
22 lines (14 loc) · 1.26 KB

sidecar.md

File metadata and controls

22 lines (14 loc) · 1.26 KB

SideCar模式

SideCar中文译为边车,是附着在摩托车旁的小型车辆,用于载客。 在编程世界中,其主要功能是将主应用与外围辅助服务进行解耦,提供更灵活的应用部署方式。 其理念符合设计模式中的单一职责原则,让主应用和辅助服务分离,更专注自身功能。

使用场景-共享存储

基于K8S Pod特性,同一个Pod可以共享根容器中挂载的Volume。基于该特性,我们可以想到以下SideCar应用方式:

日志收集上传

我们可以应用日志挂载到共享的Volume上,业务容器写日志,SideCar容器读日志,并上传日志分析平台,以生产者消费者方式进行解耦。

应用Jar包挂载

因为Java应用需要依赖拥有Java运行环境,因此大多使用open-jdk等镜像作为基础镜像。 而这类镜像大多上百M。通过共享存储,我们可以利用busybox这类体积只有几M的镜像作为基础镜像,然后将jar包拷贝到共享Volume下。 并将这个承载jar的镜像作为InitContainer,主业务容器使用该共享Volume下的jar包启动业务。 后续应用版本更新,只需要更新jar包镜像。这个jar包镜像便是一个SideCar