CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
服务网格与 SOA/课时/Sidecar 模式
RawBlame
课时目录12 节

服务网格与 SOA

  1. 01服务网格是什么
  2. 02SOA 与微服务
  3. 03Sidecar 模式
  4. 04流量管理
  5. 05mTLS 与服务身份
  6. 06Istio 入门
  7. 07与 Kubernetes
  8. 08优雅降级
  9. 09弹性与熔断
  10. 10网格与 API 网关
  11. 11运维与可观测性
  12. 12综合练习

Sidecar 模式

Envoy 代理、透明拦截。

30 分钟

Sidecar 模式

Sidecar(边车) 指与业务容器 同 Pod、同生命周期 的辅助进程。在服务网格里,Sidecar 代理(多为 Envoy)拦截进出应用的流量,执行路由、TLS、指标采集——应用仍以为在调「普通 TCP/HTTP」。

学习目标

  • 理解 Sidecar 部署模型与透明拦截原理
  • 知道 Envoy 在 Istio 数据面的角色
  • 对照 k8s-pods 多容器 Pod 概念

Pod 里的两个容器

┌─────────────── Pod ───────────────┐
│  ┌─────────┐    ┌─────────────┐  │
│  │   app   │───→│ envoy-proxy │──┼──→ 集群内其他服务
│  │ :8080   │←───│  (Sidecar)  │  │
│  └─────────┘    └─────────────┘  │
└───────────────────────────────────┘
  • app:你的 Spring Boot / Node 服务,监听 8080
  • envoy-proxy:Istio 注入,监听虚拟端口,由 iptables / eBPF 重定向流量

应用 无需改代码 即可走代理;这与在 JVM 里嵌 Feign 客户端形成对比(见 sc-feign)。

透明拦截怎么做到

在 Linux 节点上,Istio 常用 init 容器 配置 iptables:

  1. 出站:app 发往 course-service:8080 的包 → 先经 Sidecar 15001
  2. 入站:到达 Pod IP 的流量 → 经 Sidecar 再转给 app

因此 服务发现地址 仍可以是 K8s DNS 名 course-service.default.svc.cluster.local,Sidecar 负责选具体 Endpoint、负载均衡、重试。

Envoy 做什么

Envoy 是 CNCF 毕业项目,Istio 默认数据面。核心能力:

能力说明
L7 路由按 Header、路径、权重分流
负载均衡round-robin、least-request 等
TLS终止或发起 mTLS
可观测访问日志、Prometheus 指标、trace 头传播
扩展WASM / Lua 过滤器(进阶)

控制面(Istiod)把 xDS API 配置推给 Envoy,Sidecar 热更新,无需重启 app。

Sidecar 的成本

  • 资源:每 Pod 多一个容器,CPU/内存要留配额
  • 延迟:多一跳本地转发,通常亚毫秒级,但需压测验证
  • 调试:问题可能在 app、Sidecar 或策略三者之间,需会看 istioctl proxy-config

与 obs-instrumentation 对照:Sidecar 提供 思路,但 Pod 密度高时要算总账。

无 SDK 的「自动插桩」

练习

  • 在本地或实验集群执行 kubectl describe pod,找 istio-proxy 容器
  • 画出站调用链:app → iptables → envoy → 目标 Pod envoy → 目标 app
  • 阅读 grpc-intro,思考 gRPC over HTTP/2 经 Envoy 需注意什么

小结

Sidecar = 与 app 同 Pod 的代理,透明接管东西向流量。 下一课在这些代理上配置流量管理策略。

加载本节练习…
← 上一课SOA 与微服务下一课 →流量管理