服务配置文件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. Unity——有限状态机FSM修改

    FSM状态机改 一.前言 FSM状态机初版 之前写过一版有限状态机,后来发现很多问题: 前一个版本是记录了当前的状态,切换状态时,要等下一帧状态机Update的时候才会调动上个状态的退出,总会有一帧的 ...

  2. 微信小程序(三)开发框架

    基本构成: 数据绑定: 例: <!--index.hxml--> <view> <text data-name="{{theName}}">&l ...

  3. 多云搭建 K3S 集群

    作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211119132529/ 相关话题:https://ww ...

  4. uni-app 微信小程序全局分享

    实际使用中,经常需要小程序分享到好友或者朋友圈,一般而言是一个个页面去设置. 官网分享介绍:https://uniapp.dcloud.io/api/plugins/share?id=onsharea ...

  5. [atAGC045F]Division into Multiples

    令$d=\gcd(a,b)$,可以发现$c|(ax+by)$等价于$lcm(c,d)|(ax+by)$,因此不妨令$c'=lcm(c,d)$,然后将$a$.$b$和$c$同时除以$d$ 接下来设$(a ...

  6. Go语言核心36讲(Go语言实战与应用十二)--学习笔记

    34 | 并发安全字典sync.Map (上) 我们今天再来讲一个并发安全的高级数据结构:sync.Map.众所周知,Go 语言自带的字典类型map并不是并发安全的. 前导知识:并发安全字典诞生史 换 ...

  7. 【Java面试】-- 杂题

    杂题 2019-11-03  21:09:37  by冲冲 1.类加载器的双亲委派机制 类加载器:把类通过类加载器加载到JVM中,然后转换成class对象(通过类的全路径来找到这个类). 双亲委派机制 ...

  8. jpa生成uuid

    使用jpa可以生成uuid,但是我直接添加数据没有id值会报错,只在程序中有效,如果直接修改数据库需要手动填写,另外长度不要乱填 ,之前填了200,找了半天才找到原因. package com.jav ...

  9. 【备考06组01号】第四届蓝桥杯JAVA组A组国赛题解

    1.填算式 (1)题目描述     请看下面的算式:     (ABCD - EFGH) * XY = 900     每个字母代表一个0~9的数字,不同字母代表不同数字,首位不能为0.     比如 ...

  10. sb 错误

    数组开小.很容易 \(2 \times 10^5\) 或 \(10^6\) 就开成 \(10^5\),或者各种变量的数据范围混用,\(m \leq 5\times 10^5\),结果只开到了 \(n\ ...