Istio - TrafficeManagement - Match

简介: 在Route中最重要的字段是条件字段Match,为一个MatchRequest类型的数组,表示请求满足条件,支持将HTTP属性如uri、scheme、method、authority、port等作为条件来匹配请求。

在Route中最重要的字段是条件字段Match,为一个MatchRequest类型的数组,表示请求满足条件,支持将HTTP属性如uri、scheme、method、authority、port等作为条件来匹配请求。


一个URL的完整格式是:URI=scheme:[//authority]path[?query][#fragment]

实际上authority的标准定义是:authority=[userinfo@]host[:port]


## authority

1. uri、scheme、method、authority:4个字段都是StringMatch类型,在匹配请求时都支持exact、prefix和regex三种模式的匹配

2. headers:匹配请求中的Header,是一个map类型。map的key是字符串类型,value是StringMatch类型。即对于每一个Header的值,都可以使用精确、前缀和正则三种方式进行匹配。

3. port:表示请求服务的端口。大部分服务只开放一个端口,这也是在微服务中推荐的做法,在这种场景下可以不指定port。

4. sourceLabels:是一个map类型的键值对,表示请求来源负载匹配标签。这在很多情况有用,可以对一组服务都打一个相同的标签,然后使用sourceLabels字段对这些服务实施相同的流量规则。在Kubernetes平台上,这里的Label就是Pod上的标签。

5. gateway:表示规则应用的Gateway名称,语义同VirtualService 上面的gateway定义,是一个更细的Match条件,会覆盖在VirtualService上配置的gateway。


apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:   name: web-vs
  namespace: demo
spec:  hosts:  - "*"  gateways:  - web-gateway
  http:  - match:    - headers:         location:  exact: hongkong
      uri:        prefix: /test
    - uri:        prefix: /api/health
    route:     - destination:        host: httpd-service


# 匹配到header的location是hongkong并且请求 /test,或者uri 为 /api/health 开头的请求

目录
相关文章
|
编解码 Java 编译器
【Protobuf】Protobuf中的Message语法规范
在Message中定义一个或者多个字段,FieldType是字段的数据类型,可以是基本类型(如int32、string、bool等)或其他定义的Message类型。fieldName是字段的名称,可以根据需求自定义。fieldNumber是字段的唯一标识号,用于在消息的二进制编码中标识字段。
874 0
|
监控 机器人 Python
Zabbix实现钉钉群告警
Zabbix实现钉钉群告警
|
JavaScript
Element el-radio 单选框详解
本文目录 1. 用途 2. 单选框 3. 单选框样式 4. 单选框组 4. 单选框组样式 5. 尺寸调节 6. 绑定值变化事件 7. 小结
1889 0
Element el-radio 单选框详解
|
算法
【MATLAB】语音信号识别与处理:高斯加权移动平均滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:高斯加权移动平均滤波算法去噪及谱相减算法呈现频谱
524 0
|
12月前
|
存储 JSON 关系型数据库
Elasticsearch 索引
【11月更文挑战第3天】
239 4
|
12月前
|
SQL 分布式计算 运维
如何优化超长定时任务:慢节点优化实践
本文介绍了一个复杂的ODPS任务优化过程。通过对任务耗时卡点的分析,发现主要问题是数据倾斜和join任务资源不足。通过提高join任务资源分配、对空值加随机值打散、视图物化落表、节点拆分、前置裁剪和使用Distributed Mapjoin等方法,成功将宽表产出时间从下午一点提前到早上八点半,节省了4小时以上。优化过程中还拆分了宽表节点,降低了回刷成本。文章强调了在设计开发初期应避免代码耦合度过高,以提高代码运行效率和可维护性。
261 0
|
机器学习/深度学习 人工智能 自然语言处理
人工智能平台PAI产品使用合集之进入DSW后,如何把工作环境切换为GPU状态
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
下一篇
开通oss服务