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

Istio 如何通过 EnvoyFilter 为 Pod Sidecar 的 Envoy 添加 Virtual Host

Sidecar Envoy新增自定义Virtual Host的EnvoyFilter实现

关键配置取值说明

  • applyTo需要填写VIRTUAL_HOST,该枚举值对应Envoy路由配置中的Virtual Host资源类型,专门用于对路由块下的Virtual Host数组做新增、修改、删除操作。
  • value字段需要填充完整的、符合Envoy原生Virtual Host结构的配置内容,和直接在Envoy RDS配置中书写的Virtual Host字段格式完全一致,无需额外做格式转换适配。

注意:你原配置中仅写了context: SIDECAR的匹配规则是不够的,需要补充对应Listener、路由配置块的匹配条件,否则补丁会因为定位不到准确的配置位置而失效。

可直接调整使用的完整配置示例

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: my-filter
  namespace: default
spec:
  # 按原配置保留精准匹配目标工作负载的选择规则
  workloadSelector:
    labels:
      run: mylabel
  configPatches:
  - applyTo: VIRTUAL_HOST
    match:
      # 限定补丁仅作用于Pod内置的Sidecar代理
      context: SIDECAR
      listener:
        # 15001是Sidecar处理所有出站流量的默认入口端口
        portNumber: 15001
        filterChain:
          filter:
            name: "envoy.filters.network.http_connection_manager"
            subFilter:
              name: "envoy.filters.http.router"
      routeConfiguration:
        vhost:
          # 匹配Sidecar默认生成的出站路由配置块
          name: "istio.outbound"
          route: {}
    patch:
      operation: ADD
      # 以下value内容就是Virtual Host的完整配置,可按实际业务需求调整
      value:
        name: "my-custom-vhost"
        # 配置该Virtual Host能匹配的域名列表
        domains:
          - "my-service.example.com"
          - "10.0.0.5:80"
        # 配置域名匹配后的路由转发规则
        routes:
          - match:
              prefix: "/"
            route:
              # 引用Sidecar中已经存在的服务集群名称
              cluster: "outbound|80||target-service.default.svc.cluster.local"

实际部署注意事项

  • 新增Virtual Host的domains配置不能和现有路由块下的其他Virtual Host域名完全重复,否则会触发路由匹配冲突,导致流量转发逻辑异常。
  • 配置中引用的cluster名称必须是Sidecar实际加载的有效集群,填写不存在的集群会直接触发503错误。
  • 默认ADD操作会把新增的Virtual Host追加到路由数组的末尾,而Envoy的路由匹配是按数组顺序从上到下匹配的,如果需要更高的匹配优先级,可以配合INSERT_BEFORE操作定位到指定的现有Virtual Host位置插入,调整匹配顺序。

内容的提问来源于stack exchange,提问作者EvideShow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 20:57:10