You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Istio实现service-2仅访问service-1的v2 Pod、其余服务仅访问v1

要实现service-2调用service-1时仅访问v2版本、其余服务调用service-1仅访问v1版本,可通过Istio的VirtualService源标签匹配规则+Destination Rule子集定义实现,具体配置如下:

前提确认

确保service-1对应的Destination Rule已经定义好v1、v2两个版本子集,示例配置如下:

apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: service-1
spec:
  host: service-1 # 对应service-1的服务名
  subsets:
  - name: v1
    labels:
      version: v1 # 匹配pod-v1的version标签
  - name: v2
    labels:
      version: v2 # 匹配pod-v2的version标签

配置针对service-1的流量路由规则

创建VirtualService,通过sourceLabels匹配调用方的Pod标签,为不同来源分配不同路由目标:

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: service-1
spec:
  hosts:
  - service-1 # 匹配service-1的服务名,服务调用时用这个域名触发规则
  http:
  # 匹配来自service-2的请求,路由到v2版本
  - match:
    - sourceLabels:
        app: service-2 # 对应service-2 Pod上的app标签值
    route:
    - destination:
        host: service-1
        subset: v2
  # 默认路由规则:所有其他来源请求路由到v1版本
  - route:
    - destination:
        host: service-1
        subset: v1

注意事项

  • 确保所有服务的Pod都已打上对应的app标签,比如service-2的Pod必须存在app: service-2的标签,否则Istio无法正确识别调用来源
  • 配置下发后可进入对应Pod验证:在service-2中调用service-1返回v2版本响应,其余服务调用返回v1版本响应即为配置生效

服务架构图

服务架构

内容的提问来源于stack exchange,提问作者Yeahia Md Abid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:57:03