虚拟服务 本章节介绍虚拟服务能力 概述 虚拟服务(VirtualService)是服务网格的关键资源。虚拟服务定义了一组路由规则,并与请求匹配,根据匹配的结果将流量路由到响应的目标服务。本文介绍虚拟服务的基本管理以及CRD说明。 创建虚拟服务 1. 进入网格实例页,选择菜单栏 流量管理中心 > 虚拟服务。 2. 确认虚拟服务所在命名空间,选择 使用yaml创建。 3. 当前已经定义了一些路由模板,可以选择对应模板,按照自己的路由需求进行修改,然后提交。 修改虚拟服务 1. 进入服务网格实例页,选择菜单栏 流量管理中心 > 虚拟服务。 2. 选择相应的命名空间,列表页会展示当前命名空间下所有的虚拟服务定义。 3. 选择操作栏下的编辑选项,可以对已经创建的虚拟服务进行编辑修改。 删除虚拟服务 1. 进入服务网格实例页,选择菜单栏 流量管理中心 > 虚拟服务。 2. 选择相应的命名空间,列表页会展示当前命名空间下所有的虚拟服务定义。 3. 选择操作栏下的删除选项,可以删除已经创建的虚拟服务。 虚拟服务配置资源配置示例及关键字段说明 下面的虚拟服务配置将对reviews服务的访问默认转发到reviews服务的v1版本,如果uri匹配到/test前缀,则将请求转发到reviews服务的v2版本,reviews服务的两个版本使用另外一个目标规则定义。 apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: reviewsroute spec: hosts: reviews.prod.svc.cluster.local http: name: "reviewsv2routes" match: uri: prefix: "/test" route: destination: host: reviews.prod.svc.cluster.local subset: v2 name: "reviewsv1route" route: destination: host: reviews.prod.svc.cluster.local subset: v1 关联的目标规则配置中定义了reviews服务的两个子集,分别对应v1和v2版本: apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: reviewsdestination spec: host: reviews.prod.svc.cluster.local subsets: name: v1 labels: version: v1 name: v2 labels: version: v2