AWS EKS CNI 创建重复网络接口导致中断

AWS EKS CNI 创建重复网络接口导致中断

我在 AWS 上运行 EKS 集群,最近出现了周期性中断。我追踪到问题出在我的一个节点上重复的网络接口,我认为这是由AWS CNI 插件

创建节点时,它有 2 个 NIC。但在节点生命周期的某个时候,创建了第三个 NIC(不是我创建的),这会导致奇怪的行为。看起来它rp_filter正在拒绝来自 ELB 的数据包,因为 SYN 数据包在日志中显示messages为 martian。

我应该补充一点,这似乎只发生在注释为service.beta.kubernetes.io/external-traffic: OnlyLocal

当我分离第三个 NIC 时,一切恢复正常。

我的问题是

  1. 为什么第三个 NIC 可能导致此问题?这是 CNI 中的错误吗?
  2. 我该如何解决这个问题?
    1. 有什么方法可以阻止连接第 3 个 NIC?
    2. 有什么方法可以配置 CNI以便正确连接第 3 个 NIC?我是否以某种方式错误地配置了 EKS?

一些证据:

netstat -s显示IPReversePathFilter: 666179并针对来自 ELB 的每个 SYN 精确地增加一。

tail /var/log/messages显示火星数据包如下

Nov 22 18:37:17 ip-192-168-90-83 kernel: IPv4: martian source 192.168.102.150 from 192.168.236.246, on dev eth0
Nov 22 18:37:17 ip-192-168-90-83 kernel: ll header: 00000000: 0e 76 b3 cc 10 f4 0e 6f 51 60 fa be 08 00        .v.....oQ`....

当我设置时rp_filter=0,来自 ELB 的 SYN 就不会再被丢弃,而且我看到 SYN-ACK 朝 ELB 前进,但它们从未到达那里。

相关内容