从iptables谈ServiceMesh流量拦截
最近研究学习 Kubernetes 和 ServiceMesh 过程中都看到了 iptables 发挥重要作用独挡一面的场景。
Kubernetes 中 iptables 作为 kube-proxy 里控制流量转发的核心模式,通过在目标 node 的 iptables 中增加一些自定义链对流经到该 node 的数据包做DNAT和SNAT操作以实现路由、负载均衡和地址转换。
ServiceMesh 服务网格中 Istio 通过 init 容器(启动命令为istio-iptables)给 Sidecar 容器即 Envoy 代理做初始化,设置 iptables 端口转发,从而实现流量劫持&转发控制等服务治理相关。