ServiceMesh

2024-01-08 02:41:58

服务网格从总体架构上来讲比较简单,由一堆紧挨着各项服务的用户代理,外加一组任务管理流程组成。在服务网格中,代理被称为数据层或数据平面(Data Plane)管理流程被称为控制层或控制平面(Control Plane)。数据层截获不同服务之间的调用并对其进行处理;控制层不仅可以协调代理的行为,而且可以通过为运维人员提供API,操控和测量整个网络。

更进一步地说,服务网格是一个专用的基础设施层,旨在 “在微服务架构中实现可靠、快速和安全的服务间调用”。它不是一个“服务”的网格,而是一个“代理”的网格,服务可以插人这个“代理”的网格中,从而使网络抽象化。在典型的服务网格中,这些代理作为一个 Sidecar(边车)被注入每个服务部署中。服务不直接通过网络调用服务,而是调用它们本地的 Sidecar代理,而 Sidecar代理又代表了服务管理请求,从而封装了服务间通信的复杂性。相互连接的Sidecar代理实现了所谓的数据平面,这与用于配置代理和收集指标的服务网格组件(控制平面)形成对比。

总而言之,Service Mesh的基础设施层主要分为两部分:控制平面与数据平面。当前流行的两款开源服务网格Istio 和 Linkerd 实际上都是这种构造。

控制平面的特点:

  • 不直接解析效据包。
  • 与控制平面中的代理通信、下发策略和配置。
  • 负责网络行为的可视化。
  • 通常提供 API或命令行工具,可用于配置版本化管理,便于持续集成和部署。

数据平面的特点:

  • 通常是按照无状态目标设计的,但实际上为了提高流量转发效率,需要缓存一些数据,因此无状态也是有争议的。
  • 直接处理入站和出站数据包,如转发、路由、健康检查、负载均衡、认证、鉴权、监控数据等。
  • 对应用来说透明,可以做到无感知部署。

文章来源:https://blog.csdn.net/summer_fish/article/details/135431303
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。