60 透明通讯的涅槃(下):控制平面与数据平面
你好,我是周志明。这节课,我会延续服务网格将“程序”与“网络”解耦的思路,通过介绍几个数据平面通信与控制平面通信中的核心问题的解决方案,帮助你更好地理解这两个概念。
在开始之前我想先说明一点,就是我们知道在工业界,数据平面领域已经有了Linkerd、Nginx、Envoy等产品,在控制平面领域也有Istio、Open Service Mesh、Consul等产品。不过今天我主要讲解的是目前市场占有率最高的Istio与Envoy,因为我的目的是要让你理解两种平面通信的技术原理,而非介绍Istio和Envoy的功能与用法,这节课中涉及到的原理在各种服务网格产品中一般都是通用的,并不局限于哪一种具体实现。
好,接下来我们就从数据平面通信开始,来了解一下它的工作内容。
数据平面
首先,数据平面由一系列边车代理所构成,它的核心职责是转发应用的入站(Inbound)和出站(Outbound)数据包,因此数据平面也有个别名叫转发平面(Forwarding Plane)。
同时,为了在不可靠的物理网络中保证程序间通信最大的可靠性,数据平面必须根据控制平面下发策略的指导,在应用无感知的情况下自动完成服务路由、健康检查、负载均衡、认证鉴权、产生监控数据等一系列工作。