Linkerd最全详解(定义功能及架构原理)

Linkerd最全详解(定义功能及架构原理)-mikechen

Linkerd简介

Linkerd是一个用于云原生应用的开源,Linkerd是一个开源的用于微服务架构的服务网格ServiceMesh工具。

Linkerd的出现是为了解决像twitter、google这类超大规模生产系统的复杂性问题。

Linkerd负责跨服务通信中最困难、易出错的部分,包括:延迟感知、负载平衡、连接池、TLS、请求路由等。

 

Linkerd功能

Linkerd提供了类似Istio的功能,包括服务发现、负载均衡、熔断、安全认证等。

Linkerd最全详解(定义功能及架构原理)-mikechen

1.服务发现

Linkerd自动执行服务发现,将请求动态分发到可用的服务实例上,提高系统的可靠性和负载均衡性。

2.负载均衡

Linkerd 会自动对 :HTTP、HTTP/2 和 gRPC 连接上所有目标端点的请求进行负载平衡。

3.安全性

Linkerd提供传输层安全(TLS)和身份认证,保护服务之间的通信安全。

4.流量控制

Linkerd支持限流和流量控制,可以控制每个服务的流量,防止其中一个服务耗尽资源,影响整体性能。

5.可观察性

Linkerd提供丰富的指标和监控数据,帮助开发者实时监控和分析服务之间的通信和性能情况,它集成了Prometheus等监控工具,支持可视化展示。

6.无侵入性

Linkerd可以在应用程序代码之外运行,对应用程序代码无侵入,减少了对现有代码的修改。

7.多语言支持

Linkerd支持多种编程语言和框架,适用于不同技术栈的微服务应用。

 

Linkerd架构

Linkerd架构是为微服务架构设计的,它提供了一个轻量级的服务网格层,用于管理和监控微服务之间的通信。

Linkerd最全详解(定义功能及架构原理)-mikechen

从较高的层次上看,Linkerd 由:一个 控制平面(control plane) 和一个 数据平面(data plane) 组成。

 

1.控制平面(Control Plane)

控制平面是Linkerd的控制和管理部分,它包含多个控制组件,用于配置、管理和监控整个服务网格。

  • Identity Authority: 负责生成和管理服务实例的身份证书,以确保安全的通信。
  • Service Profile: 存储有关每个服务的配置信息,如超时、重试策略等。
  • Tap: 收集流量追踪数据,用于调试和故障排查。
  • Destination: 管理服务发现,帮助将请求路由到正确的服务实例。
  • Controller: 管理Linkerd代理的配置,确保代理正确地执行各项任务。
  • Telemetry: 收集和存储性能指标和监控数据,用于可观察性和性能分析。

2.数据平面(Data Plane)

数据平面是真正处理请求的部分,它由一组Linkerd代理组成,这些代理嵌入到每个微服务实例中。

每个微服务实例都会有一个Linkerd代理,用于处理所有进出该实例的请求。

 

Linkerd原理

Linkerd通过在每个微服务实例中嵌入代理(Proxy)来实现服务通信的控制和监控。

当一个请求从客户端发出时,它会首先到达源服务实例的Linkerd代理。

代理的功能包括:

  • HTTP、HTTP/2 和任意 TCP 协议的透明、零配置代理;
  • HTTP 和 TCP 流量的自动 Prometheus 指标导出;
  • 透明零配置的 WebSocket 代理;
  • 自动、延迟感知、第 7 层负载平衡;
  • 非 HTTP 流量的自动第 4 层负载平衡;
  • 自动 TLS;
  • 按需诊断 Tap API。

代理是Linkerd的数据平面组件,负责拦截进出服务实例的请求和响应,并执行各种功能,如负载均衡、超时控制、故障注入等。

Linkerd代理是透明的,意味着它对应用程序代码无侵入,开发者无需修改现有的应用代码。

代理在传输层上拦截请求,因此应用程序代码不需要关心服务通信的复杂性。

Linkerd的原理在于在微服务架构中引入透明代理,以实现服务之间的通信控制、监控和安全,帮助开发者更好地管理和优化微服务架构。

 

Linkerd总结

Linkerd是服务网格领域的一个重要工具,被广泛用于构建和管理微服务架构。

Linkerd的设计目标是为微服务架构提供透明、高性能和可观察的服务通信层,以便开发者更好地管理和监控服务之间的通信,提高系统的可用性和性能。

作者简介

陈睿|mikechen,10年+大厂架构经验,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

评论交流
    说说你的看法