今天详细介绍一下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架构的更多相关文章

  1. Service Mesh服务网格:是什么和为什么

    Service Mesh服务网格:是什么和为什么 - 好雨云帮 CSDN 博客 - CSDN博客 https://blog.csdn.net/zyqduron/article/details/8043 ...

  2. Service Mesh服务网格新生代--Istio(转)

    万字解读:Service Mesh服务网格新生代--Istio  官网地址:https://preliminary.istio.io/zh/docs/concepts/security/ Servic ...

  3. Service Mesh服务网格清单

    Service Mesh服务网格清单 Istio Istio官网 Istio中文官网 Istio开源 无需太多介绍Service Mesh明日之星,扛把子,截止2019.11还有太多问题没解决 复杂性 ...

  4. Service Mesh服务网格新生代--Istio

    原文: 数人云|万字解读:Service Mesh服务网格新生代--Istio 参考: istio 简介 Istio是啥?一文带你彻底了解! 使用Istio治理微服务入门 Istio 流量管理 ist ...

  5. Service Mesh服务网格新生代——Istio

    Istio 是什么?使用云平台可以为组织提供丰富的好处.然而,不可否认的是,采用云可能会给 DevOps 团队带来压力.开发人员必须使用微服务已满足应用的可移植性,同时运营商管理了极其庞大的混合和多云 ...

  6. Linkerd Service Mesh 服务配置文件规范

    服务配置文件 为 Linkerd 提供有关服务的附加信息. 以下是可以使用服务配置文件完成的所有操作的参考. 系列 中文手册(https://linkerd.hacker-linner.com) Sp ...

  7. Qcon2017实录|Service Mesh:下一代微服务

    https://zhuanlan.zhihu.com/p/30292372 数人云11月Meetup报名开启,看中西方大神如何论道云原生与微服务!本文作者敖小剑老师将在本次Meetup上继续分享Ser ...

  8. 第八章 跨语言服务治理方案 Service Mesh

    8.1 Service Mesh 概述 新兴的下一代微服务架构,被称为下一代微服务,同时也是云原生技术栈的代表技术之一. 8.1.1 Service Mesh的由来 从2016年到2018年,serv ...

  9. Linkerd 2:5 分种厘清 Service Mesh 相关术语

    API Gateway(API 网关) API gateway 位于应用程序的前面,旨在解决身份验证和授权.速率限制以及为外部消费者提供公共访问点等业务问题. 相比之下,service mesh 专注 ...

随机推荐

  1. C语言实现将彩色BMP位图转化为二值图

    CTF做了图片的隐写题,还没有形成系统的认识,先来总结一下BMP图的组成,并通过将彩色图转为二值图的例子加深下理解. 只写了位图二进制文件的格式和代码实现,至于诸如RGB色彩和调色板是什么的一些概念就 ...

  2. sqlserver中利用Tran_sql把逗号分隔的字符串拆成临时表

    在与数据库交互的过程中,我们经常需要把一串ID组成的字符串当作参数传给存储过程获取数据.很多时候我们希望把这个字符串转成集合以方便用于in操作. 有两种方式可以方便地把这个以某种符号分隔的ID字符串转 ...

  3. [转]SQL SERVER数据库删除LOG文件和清空日志的方案

    本文转自:https://www.cnblogs.com/ShaYeBlog/archive/2012/09/04/2670505.html 数据库在使用过程中会使日志文件不断增加,使得数据库的性能下 ...

  4. Json.Net 反序列化成匿名对象

    反序列化一个object var str1 = "{id:1,name:'111',x:[1,2,3],y:{a:'ssss',b:'dddd'}"; var obj1 = Jso ...

  5. 2Java基础语法

    1.标识符      1.1 标识符以字母.下划线.美元符开头      1.2 标识符由字母.下划线.美元符或数字组成      1.3 标识符区分大小写      1.4 不能与Java关键字同名 ...

  6. Java基础教程(12)--深入理解类

    一.方法的返回值   当我们在程序中调用方法时,虚拟机将会跳转到对应的方法中去执行.当以下几种情况发生时,虚拟机将会回到调用方法的语句并继续向下执行: 执行完方法中所有的语句: 遇到return语句: ...

  7. SSH下shiro的基本使用

    1.引入依赖 <!-- 权限控制 框架 -->
 <dependency>
 <groupId>org.apache.shiro</groupId>
 ...

  8. js程序中美元符号$是什么(转)

    $符号在php中是表示变量的特征字符, 在js中它也有很多作用, 一般我们用来命名一个函数名称,获取id的1.首先可以用来表示变量, 比如变量 var s='asdsd'或var $s='asdasd ...

  9. 搭建本地svn

      1. 下载并安装TortoiseSVN,下载地址为:http://tortoisesvn.net/downloads.html.        2. 在本地创建一个文件夹,作为SVN服务的文件夹. ...

  10. 《css揭秘》下(伪元素,文字背景,垂直居中技巧,文字环绕)

    本篇主要记录<CSS3揭秘>一书中后面几章的常用技巧. 1.伪元素换行 先看下HTML代码,如下 <div class="demo1"> <div c ...