服务配置文件Linkerd 提供有关服务的附加信息。

以下是可以使用服务配置文件完成的所有操作的参考。

系列

中文手册(https://linkerd.hacker-linner.com)

Spec(规范)

服务配置文件规范必须包含以下顶级字段:

field value
routes route 对象的列表
retryBudget 定义此服务的最大重试率的 retry budget 对象

Route(路由)

route 对象必须包含以下字段:

field value
name 这条 route 的名称,因为它将出现在 route 标签中
condition 一个 request match 对象,用于定义请求是否与此 route 匹配
responseClasses (可选)response class 对象列表
isRetryable 表示对该 route 的请求始终可以安全重试,并且会导致 proxy 尽可能重试该 route 上失败的请求
timeout 发送请求后等待响应(包括重试)完成的最长时间

Request Match(请求匹配)

请求匹配对象必须恰好包含以下字段之一:

field value
pathRegex 匹配请求路径的正则表达式
method GET, POST, PUT, DELETE, OPTION, HEAD, TRACE 之一
all 必须全部匹配的 request match 对象列表
any request match 对象的列表,其中至少一个必须匹配
not 必须不匹配的 request match 对象

Request Match 使用示例

最简单的条件是路径正则表达式:

pathRegex: '/authors/\d+'

这是检查请求方法的条件:

method: POST

如果设置了多个条件字段,则必须满足所有条件。这等效于使用 all 条件:

all:
- pathRegex: '/authors/\d+'
- method: POST

可以使用 allanynot 组合条件:

any:
- all:
- method: POST
- pathRegex: '/authors/\d+'
- all:
- not:
method: DELETE
- pathRegex: /info.txt

Response Class(响应类)

response class 对象必须包含以下字段:

field value
condition 一个 response match 对象,它定义一个 response 是否匹配这个 response class
isFailure 一个布尔值,用于定义这些 response 是否应归类为失败

Response Match(响应匹配)

response match 对象必须恰好包含以下字段之一:

field value
status 用于匹配响应状态代码的 status range 对象
all 必须全部匹配的 response match 对象列表
any response match 对象列表,其中至少一个必须匹配
not 必须不匹配的 response match 对象

Response Match 条件可以以类似于上面显示的 Request Match 使用示例 的方式组合

Status Range(状态范围)

status range 对象必须包含以下至少一个字段。只指定 minmax 中的一个将只匹配一个状态码。

field value
min 状态码必须大于或等于此值
max 状态码必须小于或等于此值

Retry Budget(重试预算)

retry budget 指定应发送到此服务的最大重试总次数原始请求量比率

field value
retryRatio 重试请求原始请求的最大比率
minRetriesPerSecond 除了 retryRatio 允许的重试次数外,允许每秒重试次数
ttl 指示在计算 retryRatio 时应考虑请求的时间

实战

公众号:黑客下午茶

Linkerd Service Mesh 服务配置文件规范的更多相关文章

  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. 了解 Linkerd Service Mesh 架构

    从较高的层次上看,Linkerd 由一个控制平面(control plane) 和一个 数据平面(data plane) 组成. 控制平面是一组服务,提供对 Linkerd 整体的控制. 数据平面由在 ...

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

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

  7. Service Mesh服务网格之Linkerd架构

    今天详细介绍一下Linkerd的架构. 控制平面 Linkerd控制平面是一组在专用Kubernetes命名空间中运行的服务(在Linked默认情况下).这些服务完成各种事情——聚合遥测数据.提供面向 ...

  8. Linkerd Service Mesh 授权策略(Server & ServerAuthorization)

    简介 Server 和 ServerAuthorization 是 Linkerd 中的两种策略资源, 用于控制对 mesh 应用程序的入站访问. 在 linkerd 安装期间,policyContr ...

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

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

随机推荐

  1. Python | Python常用函数、方法示例总结(API)

    目录 前言 1. 运算相关 2. Sring与数字 3. 列表相关 4. 集合相关 5. 序列化类型 6. 字典相关 7. 输入输出 8. 文件相关 9. json模块 10. unittest测试模 ...

  2. windonw10 ,python3.7安装gevent

    前言:gevent协程,网上找到安装gevent 需要安装grennlent. 1.首先根据版本下载相应的gevent模块,可以去官方下,我是在这里下载的.http://www.lfd.uci.edu ...

  3. python实现模糊操作

    目录: (一)模糊或平滑与滤波的介绍 (二)均值模糊 (1) 原理 (2)代码实现-----均值模糊函数blur() (三)中值模糊------mediaBlur函数 (四)高斯模糊------Gau ...

  4. [bzoj3171]循环格

    如果把这个矩阵看成一张图,题目相当于要求每一个点的入度和出度都是1(也就是有很多环),否则指向环的点就无法走回自己了将所有点拆成两个,S向原来的点流(1,0)的边,拆出来的点向T连(1,0)的边,然后 ...

  5. 异常处理截止和UML图

    0.异常处理机制 0.1.java中异常的作用是:增强程序健壮性. 0.2.java中异常以类和对象的形式存在. 1.java的异常处理机制 1.1.异常在java中以类和对象的形式存在.那么异常的继 ...

  6. html+css第一篇

    行间样式表 <div style="--"></div> 内部样式表 <style>----</style> 外部样式表 <l ...

  7. Python+selenium之键盘和鼠标事件

  8. Python之浏览器的前进或后退

    import webbrowserwebbrowser.back() 后退webbrowser.forward() 前进

  9. x86汇编反编译到c语言之——(2)if语句

    一. 测试的C语句及编译后的x86汇编代码 int a; int b; int main(void) { int c; if (c) a = 4; else b = 5; return 0; } 1 ...

  10. C语言 指针数组指针

    指向指针数组的指针. 1 #include <stdio.h> 2 3 int main(void) 4 { 5 char *pa[4]={"aaaaa"," ...