Istio里的VirtualService和DestinationRule介绍

大怪科学 20230713

  • Kubernetes

最近在研究Istio,流量治理这块是一个大头,有好多内容。后期我应该会单独搞一个小课程出来。这块儿内容有两个非常核心的概念--VirtualService和DestinationRule。

1)VirtualService:

定义对特定目标服务的一组流量规则,它将满足条件的流量转发到对应的服务后端,这个服务后端可以是一个或多个服务,也可以是DestinationRule定义的服务子集(subset)。

示例:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: forecast-route
spec:
  hosts:  ##定义流量发送的目标地址,可以是service名字也可以是具体的IP地址,通常是service的名字。
  - forecast 
  http:  ##这个字段可以是http、tcp或者tls(https)
  - match: ##定义匹配规则
    - headers:  ##匹配header中location取值为north的请求
        location:
        exact: north
    route: ##定义具体的路由规则,这里指的是当请求符合匹配规则时,走该规则
    - destination: ##定义流量被转发到哪里去
      host: forecast  ##这个host跟上面的host类似,通常也是用service名字定义
      subset: v2   ##具体规则需要在DestinationRule中定义,这里只是指定一个名字v2
  - route:
    - destination:
      host: forecast
      subset: v1

说明:这个小例子定义了两条规则,1)如果过来的请求header中,location匹配了north关键词,则会访问forecast这个service的v2版本;2)否则会访问到forecast服务的v1版本。其中v1和v2的具体流量走向还得看DestinationRule如何定义。

2)DestinationRule:

它用来定义流量路由之后的去处,和VirtualService配合使用,在VirtualService中定义了subsets的名字,那么在DestinationRule中定义subsets具体的内容,而且在DestinationRule里还提供了具体的流量策略。

示例:

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name:forecast-dr##定义DestinationRule的名字
spec:
  host: forecast ##定义流量发送的目标地址,和VirtualService中的该字段含义一样
  subsets:  ##定义subsets规则
  - name: v2  ##名字是v2,和VirtualService里定义的要保持一致
    labels:
      version: v2
    trafficPolicy:  ##定义流量策略,可选字段trafficPolicy、connectionPool(连接池设置,可以实现限速或限流的效果)、outlierDetection(异常点检查,可以做熔断效果)、tls
      loadBalancer:  ##定义负载均衡算法,可选字段simple、consistentHash(一致性hash)、localityLbSetting(位置负载均衡)
        simple: ROUND_ROBIN  ##simple指的是标准负载均衡算法,可以是ROUND_ROBIN、LEAST_CONN(最少连接)、RANDOM(随机)、PASSTHROUGH(直接转发到客户端连接的目标地址,即没有做负载均衡)
  - name: v1
    labels:
      version: v1

说明:主要定义v1和v2的流量策略,其中v2会走ROUND_ROBIN的负载均衡算法,而v1没有特殊的流量策略。

可以毫不夸张地讲,Istio的流量治理离不开VirtualService和DestinationRule的配置,上面的两个示例仅仅是一丢丢皮毛,还有好多参数可以配置。比如,限流、熔断、灰度发布等等。




审核编辑:刘清

查看全文

点赞

大怪科学

作者最近更新

  • Aigtek功率放大器在传感器测试领域研究中的应用
    大怪科学
    2天前
  • 泰科电子座椅位置传感器如何实现可靠保护
    大怪科学
    2天前
  • 中微爱芯推出高精度零漂移运算放大器AiP856X系列
    大怪科学
    4天前

期刊订阅

相关推荐

  • 2021年,云计算和边缘计算增势将加剧

    2022-03-03

  • 戴尔科技 VMware Tanzu 加快基础设施现代化进程满足您的业务需求

    2022-03-10

  • 青云推出企业级 Kubernetes 备份容灾 SaaS 服务

    2022-03-20

  • Kubernetes日渐流行,安全问题如何解决?

    2022-04-12

评论0条评论

×
私信给大怪科学

点击打开传感搜小程序 - 速览海量产品,精准对接供需

  • 收藏

  • 评论

  • 点赞

  • 分享

收藏文章×

已选择0个收藏夹

新建收藏夹
完成
创建收藏夹 ×
取消 保存

1.点击右上角

2.分享到“朋友圈”或“发送给好友”

×

微信扫一扫,分享到朋友圈

推荐使用浏览器内置分享功能

×

关注微信订阅号

关注微信订阅号,了解更多传感器动态

  • #{faceHtml}

    #{user_name}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} 查看评论 回复

    共#{comment_count}条评论

    加载更多

  • #{ahtml}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} #{reback} 回复

  • #{ahtml}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} 回复

  • 关闭
      广告