服务网格学习笔记
目录
定义
- 位于基础设施层,处理服务与服务之间的通信;
- 主要功能是在云原生这种复杂的服务拓扑的情况下,进行可靠的请求分发;
- 一般情况下,它会转化为一组轻量化的网络代理,部署在应用服务旁边,对应用服务完全透明。
第二代service mesh形态如下,含有控制平面和数据平面(所有sidecar的总和)。
主要功能
- 流量控制。比如路由、流量转移、超时重试、熔断等。
- 策略。流量限制、黑白名单等。
- 网络安全。授权、认证。
- 可观测性。
Service Mesh和Kubernetes的关系
Kubernetes
- 解决容器编排和调度问题
- 本质上是管理应用生命周期(容器)
- pod天生支持多容器部署,为植入sidecar提供非常大的便利
Service Mesh
- 解决服务间网络通信问题
- 本质上是管理服务通信(代理)
- 服务网格对k8s在网络方面的功能做了拓展和延伸
Service Mesh和API网关的对比
- Service Mesh部署了sidecar完全接管应用的网络
- api网关部署在应用的边界,对内部的api进行聚合和抽象,方便外部进行调用
问:service mesh 本身的ingress gw和api gw对比有什么区别呢,能取代api-gw吗?
答:Istio的ingressgateway本质上就是LoadBalancer的service,从功能上还比不上Kong这样的成熟网关产品。如果在网关层面有更复杂的需求,Ingress可能还满足不了。
技术标准
- UDPA (Universal Data Plane API)。数据平面的接入标准,主要由cncf提出。
- SMI (Service Mesh Interface)。控制平面接入标准,为用户提供统一的体验。