码迷,mamicode.com
首页 > 其他好文 > 详细

Service Mesh服务网格之Linkerd架构|前沿

时间:2019-02-01 14:20:38      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:文章   rust   技术   lin   proc   解决   api   了解   bb10   

今天详细介绍一下Linkerd的架构。

控制平面

Linkerd控制平面是一组在专用Kubernetes命名空间中运行的服务(在Linked默认情况下)。这些服务完成各种事情——聚合遥测数据、提供面向用户的API、向数据平面代理提供控制数据等。它们共同驱动着数据平面的行为。

控制平面由四个部分组成:

  • 控制器——控制器部署由多个容器(public-api,proxy-api,destination,tap)组成,这些容器提供了控制平面的大部分功能。
  • Web——Web部署提供Linkerd Dashboard。
  • Prometheus—— Linkerd公开的所有指标都通过Prometheus进行删除并存储。这是Prometheus的一个实例,它已被配置为专门用于处理Linkerd生成的数据。
  • Grafana—— Linkerd配备了许多开箱即用的Dashboard。Grafana组件用于呈现和显示这些Dashboard。你可以通过LinkerdDashboard中的链接访问这些Dashboard。

技术分享图片

架构

数据平面

Linkerd数据平面由轻量级代理组成,它们作为sidecar容器与服务代码的每个实例一起部署。为了将服务“添加”到Linkerd服务网格,你必须重新部署该服务的pod来让每个pod中都包含数据平面代理。(linkerd inject 命令完成此操作,以及完成通过代理透明地从每个实例传递流量所需的配置工作)你可以使用单个CLI命令将服务添加到数据平面。

这些代理透明地拦截与每个pod之间的通信,并添加诸如检测和加密(TLS)之类的功能,以及根据相关策略允许和拒绝请求。

这些代理不是手动配置的。相反,它们的行为是由控制平面驱动的。

代理

用Rust编写的超轻透明代理,它安装在服务的每个pod中,并成为数据平面的一部分。它接收pod的所有传入流量,并通过配置initcontainer的iptables,拦截传出流量和正确转发流量。因为它是一个sidecar并拦截服务的所有传入和传出流量,所以不需要更改代码,甚至可以将其添加到正在运行的服务中。

代理的功能包括:

  • HTTP,HTTP / 2和任意TCP协议的透明、零配置代理

  • 用于HTTP和TCP流量的自动Prometheus度量导出

  • 透明、零配置得WebSocket代理

  • 自动、延迟感知、第7层负载均衡

  • 针对非HTTP流量的自动第4层负载均衡

  • 自动TLS(实验)

  • 按需诊断分类API

  • 代理支持通过DNS和目标gRPC API进行服务发现

CLI

Linkerd CLI在你的机器上本地运行,并用来和控制和数据平面交互。它可用于查看统计信息,实时调试生产问题以及安装/升级控制和数据平面。

Dashboard

Linkerd Dashboard提供了一个高级视图,能够实时显示你的服务发生情况。它可用于查看“黄金”指标(如成功率、请求/秒和延迟)、可视化服务依赖性,并了解特定服务路由的运行状况。

技术分享图片

Top Line指标

Grafana

作为控制平面的一个组件,Grafana为你的服务提供开箱即用的可操作Dashboard。你可以查看高级指标并深入了解细节,即使对于pod也是如此。

开箱即用的Dashboard包括:

技术分享图片

Top Line指标

技术分享图片

部署细节
技术分享图片

Pod细节

技术分享图片

Linkerd 健康诊断

Prometheus

Prometheus是一种云原生监控解决方案,用于收集和存储所有Linkerd指标。它是作为控制平面的一部分安装的,并提供CLI、Dashboard和Grafana使用的数据。

代理在4191端口上公开一个/metrics端点,让Prometheus获取数据,并且每隔10秒就会获取一次

技术分享图片

指标集合

更多技术文章,扫描下方二维码
技术分享图片

Service Mesh服务网格之Linkerd架构|前沿

标签:文章   rust   技术   lin   proc   解决   api   了解   bb10   

原文地址:http://blog.51cto.com/13561855/2348412

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!