文章目录
在Kubernetes(K8s)中,Sidecar(边车) 是一种容器模式(Sidecar Pattern),指的是在 同一个 Pod 内 部署一个或多个 辅助容器(即 Sidecar 容器),来为 主应用容器提供附加功能,如 日志收集、配置同步、代理通信等。
Sidecar 原理详解
1.1 Pod 是调度的基本单位
在 Kubernetes 中,一个 Pod 内可以包含多个容器,这些容器共享:
- 网络命名空间(即可通过 localhost 互通)
- 存储卷(Volumes)
- 生命周期(随 Pod 一起创建、销毁)
Sidecar 就是和主应用容器部署在同一个 Pod 内的“辅助容器”,它通常和主容器 紧密协作,但 职责不同。
1.2 工作机制
Sidecar 容器利用 Pod 内的共享网络与卷,通常以以下方式提供服务:
- 在主容器启动前或同时启动
- 持续运行,监听主容器状态或输出
- 主容器关闭时,Sidecar 也随之终止
通俗例子理解Sidecar
Sidecar 是和主应用一起运行在同一个 Pod 中的“辅助容器”,用来做主应用不方便或不擅长做的事。
就像一辆摩托车边上带的“边车”,边车不会开车,但能帮你装行李、放地图、带个乘客,让你专心骑车。
想象一个开餐馆的主厨(主容器),他专注炒菜做饭(业务逻辑),但还需要有人帮忙干这些事:
- 收拾碗筷、打扫卫生(日志收集)
- 检查菜单有没有更新(配置监听)
- 替客人点单并翻译菜单(流量代理)
这时候,店里配了个助手(Sidecar),和主厨一起在厨房里配合,主厨不用亲自干这些杂活。
技术场景
日志收集 Sidecar
例子1:日志收集 Sidecar
- 主容器: Nginx
- 作用: 提供网页服务
- 问题: Nginx 只写日志文件,不能把日志发送到日志服务器
解决方法: 加一个 Sidecar 容器,它做这件事:
1.每秒读取 Nginx 写的日志文件
2. 发送到外部的日志中心(如 ELK、Promtail)所以:Sidecar 就像专门负责送日志的人。
配置自动更新 Sidecar
例子2:配置自动更新 Sidecar
- 主容器: Java 应用,需要一个配置文件 config.yaml
- 问题: 这个配置每隔几分钟会在配置中心更新,主容器不会自动拉取


301

被折叠的 条评论
为什么被折叠?



