【发布时间】:2021-08-13 23:53:57
【问题描述】:
我有一个 azure 前门,位于 aks 集群的前面,每个 pod 都注入了 istio 和代理边车。
由于 Azure 前门终结点的数量,Azure 前门的运行状况探测每秒至少会命中一次请求。应用程序收到的请求数量非常多,以至于我想减慢间隔它的影响是失去前门的好处。
Microsoft 建议在 dotnet 中编写遥测初始化程序以将请求标记为合成,但这似乎是一个大问题,我需要让多个团队参与进来。以及复制到多种语言。
相反,我想使用特使过滤器来查看请求的标头,如果它与前门代理“Edge Health Probe”匹配,我想完全忽略它。
这意味着我可以控制将哪些日志发送到应用洞察,可以推出适合所有人的解决方案,并且不需要开发人员参与。
我看过 envoy 过滤器,但不能真正理解它是如何工作的。
特使过滤器可以做到这一点还是有人知道更好的方法?
谢谢 凯文
【问题讨论】:
-
替代方案您可以在虚拟服务中设置一个路由,将所有带有标头的请求路由到某个虚拟 nginx 应用程序。通过这种方式,请求与您的工作负载完全分离。不知道我是否完全理解你的问题。
-
所以基本上我在集群中的每个服务前面都使用frontdoor,frontdoor由于端点的数量而对每个服务发出的请求数量如此之多,以至于我们的日志空间在中午用完.这些请求带有一个特定的代理标头,如果我可以过滤掉它,因为我并不真正关心被记录的请求,它确实会减少这种情况。当您查看 istio 代理日志时,您可以看到请求日志,它们只是作为 HEAD 请求发送到已设置的健康探测页面。我只想做一个“如果代理标头== X:则不记录请求结束”
-
docs.microsoft.com/en-us/azure/azure-monitor/app/… 这是微软推荐的,但显然这是一种编码方法,我们需要为不同的语言复制并推广到众多应用程序。
标签: kubernetes istio envoyproxy azure-front-door