Istio/Envoy 对持久卷的访问日志

Istio/Envoy access logs to a persistent volume

如何配置 Istio/Envoy 以将访问日志(入口)写入持久卷中的文件?不同的 pods 响应相同的主机名 (example.com) 将被写入到同一个文件。 我认为它应该是 Gateway YAML 文件或 VirtualService YAML 文件中定义的内容。

这可以通过组合设置 EnvoyFilter 配置来实现,以选择性地在网关启用访问日志并使用 custom-bootstrap-config:

  1. 首先,您需要设置自定义 bootstrap 配置以容纳您的 user-volumesvolume mounts。此配置稍后可以与 kubectl patch 一起应用,如 here.

    所述

    参考资料: https://github.com/istio/istio/issues/28302

  2. 下一步将使用EnvoyFilter配置来选择性地启用网关的访问日志,如[跟踪和访问日志]中所述(使用 EnvoyFilter 配置来选择性地启用网关的访问日志) .默认情况下,日志定向到 /dev/stdout。这必须适当更改以匹配您在步骤 1 中配置的音量与自定义 bootstrap 配置。

    参考资料: https://github.com/istio/istio/wiki/EnvoyFilter-Samples#tracing-and-access-logging