我可以在 运行 时间更改故障注入配置 envoy 代理吗?

Can I change fault injection configuration envoy proxy at run-time?

我知道我可以使用以下配置在 Envoy 代理中配置故障注入。

config.filter.http.fault.v2.FaultAbort

{
  "http_status": "...",
  "percentage": "{...}"
}

以上代码将使指定百分比的请求失败 http_status,例如 500。

现在,我可以在运行时更改它吗?我想插入针对特定服务的故障,例如 10 秒,然后将其恢复正常。这可能吗?

是的,您可以在运行期间通过以下两种机制之一在 Envoy 中更改此类内容:

  1. Hot Restart
  2. Sending Dynamic Configs with xDS

热重启机制对于小型部署来说要简单得多,所以如果这是一个小的努力或测试,我会推荐它。

xDS 选项基本上是创建一个 Envoy 代理连接到的中央服务器。该服务器然后将所有配置发送到您想要的代理。这要复杂得多(需要创建用户界面、默认配置、服务发现等等)但提供了许多好处,这就是为什么公司和项目如雨后春笋般涌现出他们自己的实现。