K8s
Service Mesh 分布式微服务代理
Service Mesh 分布式微服务代理,分布式nginx。
最常见的就是 kubernetes sidecar 模式,每一个应用的 pod 中都运行着一个代理,负责流量相关的事情。
原来的代理都是基于网络流量的,一般都是工作在 IP 或者 TCP 层,很少关心具体的应用逻辑。但是 service mesh 中,代理会知道整个集群的所有应用信息,并且额外添加了热更新、注入服务发现、降级熔断、认证授权、超时重试、日志监控等功能,让这些通用的功能不必每个应用都自己实现,放在代理中即可。换句话说,service mesh 中的代理对微服务中的应用做了定制化的改进!
也可以理解 service mesh 中的代理会抢了 Nginx 的生意,这也是为什么Nginx 也要开始做 NginMesh 的原因。
Istio 海量微服务管理,是Service Mesh架构的一种实现
istio 就是我们上述提到的 service mesh 架构的一种实现,服务之间的通信(比如这里的 Service A 访问 Service B)会通过代理(默认是 envoy)来进行,而且中间的网络协议支持 HTTP/1.1,HTTP/2,gRPC 或者 TCP,可以说覆盖了主流的通信协议。控制中心做了进一步的细分,分成了 Pilot、Mixer、和 Citadel,它们的各自功能如下