K8s+istio通过虚拟服务实现路由的一些心得

本文介绍了Istio中虚拟服务(VS)与目标规则(DR)的使用,重点讲解VS如何通过精确匹配规则实现流量路由。VS支持基于HTTP头、URI、方法等多种条件的路由策略,包括重定向和重写。通过示例展示了如何配置VS进行header匹配,并通过kiali观察流量走向。理解VS配置对于掌握Istio的流量管理至关重要。

        在istio里,通过虚拟服务(vs)与gateway的绑定,结合目标策略(distinationrule,DR)定义的规则,提供了从服务暴露到流量分配的实现,gateway比较简单,主要用于声明istio的ingress控制器,需要重点关注的是vs与dr进行流量的,而dr通常仅作负载均衡方式、连接池、tls、端口流量等等的规则性说明,与实际路由指向关系不大。所以个人认为,搞定了vs配置,基本上就可以满足大部分的路由需求。下面是关于vs的一些简单实践。供分享或指正。

      vs可定义精确的匹配规则,目前有5类,包括http头(header),schema(http、https、ftp等),authority(匹配authority头),method(方法, 如get、post等),uri(匹配的url)。下面我们主要以header为案例展开讨论。
     针对header,除了常规使用的destination外,vs还可以将请求进行header重写或重定向,例如我们希望把/v1改为/v2,可以采用rewrite字段,定义到/v2;或者利用redirect直接重定向到另外一个完全不同的服务,例如v1是customer服务,但可以在redirect指定hearer为hello的服务,重定向到uri为/hello的服务。留意,vs配置中,destination与redirect字段是相斥的,如果某个服务使用了redirect,就不需要设置destination。

    vs配置中,在匹配时,可以使用and和or语义,这个在精确路由时非常有用,参考如下:

使用and语义:

http:
    - match:
        - uri:
              prefix: /v1
          headers: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值