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

如何在无代理gRPC中使用故障注入?

你的核心问题在于——你用的EnvoyFilter是针对Envoy Sidecar设计的,但无代理gRPC(proxyless gRPC)模式下根本没有Sidecar,所以这份配置完全不会被应用到你的服务上。下面是可行的解决思路和操作步骤:

一、先确认你的proxyless环境是否配置正确

  • 检查Pod容器列表,确保没有Envoy Sidecar容器;
  • 确认你的gRPC服务已配置xDS Bootstrap文件,并且启动时指定了该配置(比如通过环境变量GRPC_XDS_BOOTSTRAP=/etc/istio/bootstrap.json或启动参数--xds_bootstrap),保证服务能连接到Istio控制平面(Istiod);
  • 确保使用的gRPC版本≥1.27(推荐1.30+,以支持完整的故障注入特性)。

二、改用Istio VirtualService配置故障注入

这是最简便的方案,Istio会将VirtualService中的故障规则自动转换为xDS配置,推送给你的proxyless gRPC服务。示例配置如下:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: echo-frontend-fault
spec:
  hosts:
    - echo-frontend
  http:
    - fault:
        delay:
          fixedDelay: 5s
          percentage:
            value: 100
      route:
        - destination:
            host: echo-frontend
            port:
              number: 8080

应用该配置后,所有访问echo-frontend的流量都会被注入100%的5秒延迟。

三、如果VirtualService不生效,尝试直接推送故障过滤器配置

如果VirtualService的方式没效果,可以尝试用EnvoyFilter直接给proxyless服务推送故障过滤器配置。注意修改上下文匹配规则,避免只针对Sidecar:

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: proxyless-fault-filter
spec:
  workloadSelector:
    labels:
      app: echo-frontend
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: ANY
        listener:
          portNumber: 8080
          filterChain:
            filter:
              name: "envoy.filters.network.http_connection_manager"
              subFilter:
                name: "envoy.filters.http.router"
      patch:
        operation: INSERT_BEFORE
        value:
          name: envoy.filters.http.fault
          typed_config:
            "@type": type.googleapis.com/envoy.extensions.filters.http.fault.v3.HTTPFault
            delay:
              fixedDelay: 5s
              percentage:
                numerator: 100
                denominator: HUNDRED

这种方式需要确保你的gRPC版本支持动态加载HTTP过滤器。

四、验证配置是否生效

  • 调用你的gRPC服务,检查是否出现预期的延迟/故障;
  • 查看Istiod日志,确认配置已成功推送给目标服务;
  • 查看gRPC服务的日志,确认xDS配置已正确加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 02:05:28