监视或记录 Kubernetes NetworkPolicy 丢弃的网络流量

Monitor or log dropped network traffic for Kubernetes NetworkPolicy

我对使用 Kubernetes NetworkPolicy 来控制网络策略很感兴趣。我想知道 NetworkPolicy 是否阻止了流量,以便我可以修复策略或 fix/stop 任何违规行为。

我们使用 Calico,他们将此视为付费功能。 https://github.com/projectcalico/calico/issues/1035

Cilium 有 cilium monitor 听起来如果我们开始使用 Cilium 就可以了。 http://docs.cilium.io/en/latest/troubleshooting/

是否有通用的、供应商中立的方法来监控违反 Kuberenetes NetworkPolicy 的网络流量?

AFAIU,无法创建这种供应商中立的工具,因为 NetworkPolicy 只是一个抽象。每个网络插件以不同的方式执行它们,(Cilium 主要在 BPF 中为 L3 和 L4 执行此操作,而在 Envoy 中为 L7 执行此操作),因此每个插件都需要提供自己的访问此信息的方法。

AFAIK,Kubernetes 社区没有主动存储这些信息并为 CNI 插件提供接口来提供这些信息,但这似乎是一个有趣的项目。

免责声明:我在 Cilium 开发团队。