Envoy proxy,也称为在工作负载 Pod 中作为 sidecar 使用时的 istio-proxy
,拦截服务网格中 Pod 内的所有入站和出站流量。
当 Pod 启动失败或流量未按预期工作时,使用以下工具和方法进行故障排查:
如果遇到 PostStarHookError
错误,且 Pod 的错误信息类似于:
这意味着代理无法在指定时间(30s
)内变为就绪。此错误的常见原因如下:
Sidecar CPU 或内存限制不足
当:
时,sidecar 无法在合理时间(30s)内处理来自 istiod
的 xDS 配置。
操作建议: 增加 sidecar 的 CPU 和内存限制。
防火墙
服务网格要求 sidecar 流量能够访问 istio-system
命名空间中的服务。
如果在 istio-proxy
日志中发现“cannot connect to istiod”之类的信息,请检查平台上的防火墙配置,并联系平台管理员允许工作负载流量访问 istio-system
命名空间:
具体配置取决于平台使用的 CNI:
NetworkPolicy
NetworkPolicy
,projectcalico.org/v3
中的 GlobalNetworkPolicy
CiliumNetworkPolicy
但在极少数情况下(例如 HuaweiCloud CCE 和 Ubuntu 22.04),由于 CCE VPC CNI 的一个 Bug,无法使用 istio-init
initContainer 拦截网络流量。此时,请使用 Istio CNI 来配置流量拦截。
WASM 和 EnvoyFilter 是 Istio 中强大但可能带来破坏性的功能。
配置错误的 WASM 或 EnvoyFilter 插件可能导致服务网格行为不可预测。 因此,当 Istio sidecar 启动时出现卡顿,首先检查是否有可疑的 EnvoyFilter。
或者,如果为特定工作负载或全局安装了 WASM 插件,卸载它以验证 Istio proxy 是否能正常工作。