知识卡片

数据平面与控制平面分离

专业/工作 · 265.a

内容

服务网格的架构分成两层:数据平面由部署在每个服务旁的轻量代理组成,只负责实际转发流量、执行策略、上报数据;控制平面负责生成路由规则、下发配置给所有代理,自己不经手一个字节的业务流量。这种”决策”与”执行”分离的结构让代理可以做得很薄很快,而复杂的配置计算、全局视图维护都集中在控制面,出问题时故障域也更清晰——控制面挂了流量还能按最后一份配置继续转发一段时间。发散:这和 [[服务网格让治理能力与语言解耦]] 讲的是同一个思路在不同粒度上的体现,都是把”重”的决策逻辑和”轻”的执行逻辑物理拆开,是 SDN、Kubernetes(etcd+scheduler 控制面 vs kubelet 数据面)等系统反复出现的通用架构模式。

参考来源

《Istio入门与实战》第1章《Istio的架构设计》