应用服务网格 ASM-Istio CNI与Init容器兼容性问题:解决方案

时间:2025-02-12 14:58:59

解决方案

可以通过以下任意方式来防止流量丢失:

  • 使用 runAsUser 将 Init 容器的 uid 设置为 1337。 1337 是 Sidecar 代理使用的 uid。 这个 uid 发送的流量并非通过 Istio 的 iptables 规则进行捕获。 应用容器流量仍将像往常一样被捕获。
  • 对 initContainer 所访问的目标 CIDR,通过设置 traffic.sidecar.istio.io/excludeOutboundIPRanges 注解以使访问该网段的流量不会被重定向到 Sidecar。
  • 对 initContainer 所访问的目标端口,通过设置 traffic.sidecar.istio.io/excludeOutboundPorts 注解以使访问该端口的流量不会被重定向到 Sidecar。

请谨慎使用注解方式排除流量拦截,因为 IP/端口排除注解不仅适用于 Init 容器流量,还适用于应用容器流量。 即发送到配置的 IP/端口的应用流量将绕过 Istio Sidecar。

support.huaweicloud.com/asm_faq/asm_faq_0057.html