Alauda Service Mesh v2.2 已修复的问题
本节记录 Alauda Service Mesh 中已修复的问题。
外部防火墙重新加载后未恢复 Ambient 健康检查规则
在 Ambient 模式下,istio-cni-node 智能体会在主机网络命名空间中安装规则,通过将探针的源地址转换为 169.254.7.127,使 kubelet 健康检查探针免受 ztunnel 捕获:
该智能体仅在启动时安装这些规则,此后从未再次检查。任何在智能体持续运行期间移除这些规则的操作(例如重新加载 firewalld,或操作系统持久化单元执行的 iptables-restore),因此都不会被发现。
在 STRICT PeerAuthentication 策略下,探针随后会使用节点地址而不是已豁免的地址到达 Pod,被重定向到 ztunnel,并遭到拒绝:
探针收到 TCP 重置,因此工作负载变为 NotReady,并从其服务的端点中移除。该节点不会自行恢复:只有重启 istio-cni-node DaemonSet 后,规则才会恢复。cni.ambient.reconcileIptablesOnStartup 选项没有帮助,因为它仅在启动时运行,而且只涵盖 Pod 内部的规则。
修复版本: Istio v1.30.4。现在,智能体会定期验证主机规则,并在规则不再匹配时重新安装这些规则。在 IstioCNI 资源中设置检查间隔,其中 "0" 会禁用检查:
nodeagent_host_rules_reconciles_total 指标统计修复次数,标签值为 result=repaired 或 result=failed。