服务配置文件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. Part 30 AngularJS routeparams example

    Here is what we want to do : When we navigate to /students, the list of student names must be displa ...

  2. PTA7-1 根据后序和中序遍历输出先序遍历

    本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果. 输入格式: 第一行给出正整数N(≤30),是树中结点的个数.随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果, ...

  3. Python基础(类和实例)

    class Point(object): def __init__(self,name,score): self.__name = name self.__score = score def prin ...

  4. soname and real name

    [1] https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes#Backward_compatibility [2] https://akka ...

  5. Spark SQL知识点大全与实战

    Spark SQL概述 1.什么是Spark SQL Spark SQL是Spark用于结构化数据(structured data)处理的Spark模块. 与基本的Spark RDD API不同,Sp ...

  6. [luogu4331]数字序列

    令$a'_{i}=a_{i}+n-i$.$b'_{i}=b_{i}+n-i$,代价仍然是$\sum_{i=1}^{n}|a'_{i}-b'_{i}|$,但条件变为了$b'_{i}\le b'_{i+1 ...

  7. JDK源码阅读(7):ConcurrentHashMap类阅读笔记

    ConcurrentHashMap public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implement ...

  8. 【JavaSE】IO(1)-- File类

    File类 2019-07-01  22:41:42  by冲冲 在 Java 中,File 类是 java.io 包中唯一映射磁盘文件本身的对象.File类可以获取文件的相关信息(查看文件名.路径. ...

  9. oracle和mysql的拼接查询

    oracle的 SELECT * FROM sys_user a WHERE 1=1 AND a.company_id || a.login_name IN('3001rddb414') 196676 ...

  10. 你有没有觉得邮件发送人固定配置在yml文件中是不妥当的呢?SpringBoot 动态设置邮件发送人

    明月当天,不知道你有没有思念的人 前言 之前其实已经写过SpringBoot异步发送邮件,但是今天在一个小项目中要用到发送邮件时,我突然觉得邮件发送人只有一个,并且固定写在yml文件中,就是非常的不妥 ...