Istio "intercept" 如何为其他容器传输流量?

How does Istio "intercept" traffic for other containers?

文档指出 Envoy 代理“...调解和控制微服务之间的所有网络通信”:https://istio.io/latest/docs/ops/deployment/architecture/

这是如何运作的?当我希望我的程序连接到任意主机名时,比如“google.com”或“something.default.svc.cluster.local”,我将进行两次 OS 调用:gethostbynameconnect。 运行 在另一个容器中的 Envoy 如何“拦截”这个?它如何知道我何时访问“google.com”或 k8s 服务?

如果有在线文档对其进行解释,我将不胜感激 link。

Istio 有一个 Init Container,它使用 iptables 将流量 from/to 应用程序容器重定向到 sidecar。 This article from Istio documentation 解释一下。

还有一个 using CNI 替代 Init 容器。