Linkerd Service Mesh 服务配置文件规范

开发 前端
服务配置文件 为 Linkerd 提供有关服务的附加信息。以下是可以使用服务配置文件完成的所有操作的参考。

[[439903]]

服务配置文件 为 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 使用示例

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

  1. pathRegex: '/authors/\d+' 

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

  1. method: POST 

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

  1. all
  2.  
  3. - pathRegex: '/authors/\d+' 
  4.  
  5. - method: POST 

可以使用 all、any 和 not 组合条件:

  1. any
  2. all
  3.   - method: POST 
  4.   - pathRegex: '/authors/\d+' 
  5. all
  6.   - not
  7.       method: DELETE 
  8.   - 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 对象必须包含以下至少一个字段。只指定 min 或 max 中的一个将只匹配一个状态码。

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

Retry Budget(重试预算)

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

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

实战

  • 设置服务配置文件

https://linkerd.hacker-linner.com/2.11/tasks/setting-up-service-profiles/

  • 完整的 demo 演练

 

https://linkerd.hacker-linner.com/2.11/tasks/books/#service-profiles/

 

责任编辑:武晓燕 来源: 黑客下午茶
相关推荐

2022-08-21 07:17:16

LinkerdKubernetes服务网格

2021-12-08 17:54:55

架构控制平面

2021-06-29 13:09:07

服务配置文件

2021-06-05 10:16:55

Linkerd 服务网格Kubernetes

2021-12-10 18:19:14

授权 Linkerd策略

2021-10-31 20:56:25

Mesh ServiceAPI

2021-07-21 05:23:06

Linkerd Emoji.voto服务网格

2021-06-12 07:38:21

Linkerd 2.Service Mes微服务

2010-08-05 14:36:07

NFS服务

2010-01-13 13:50:53

CentOS Vsft

2021-06-08 07:04:45

Service Mes微服务熔断

2010-03-03 14:25:37

Linux NTP

2021-06-10 06:24:41

K8S Service Mesemojivoto

2010-03-30 18:04:45

Nginx http服

2009-11-09 13:31:09

WCF服务端配置

2022-08-28 19:58:59

LinkerdKubernetes

2011-01-13 16:27:26

Linux配置文件

2020-03-04 09:27:13

Service Mes微服务架构

2021-11-08 09:11:17

云计算Service Mes云应用

2011-01-19 14:00:21

点赞
收藏

51CTO技术栈公众号