引擎盖下的Kubernetes网络策略

时间:2020-04-27 05:27:26

标签: kubernetes google-kubernetes-engine kubernetes-pod kubernetes-networkpolicy cni

我已经按照https://github.com/ahmetb/kubernetes-network-policy-recipes创建并实施了网络策略,并且其工作原理也有所不同,但是我想了解如何在后端准确实现该策略,网络策略如何通过修改来允许或拒绝流量iptables?哪些kubernetes componenets参与了实现?

2 个答案:

答案 0 :(得分:1)

{@ 3}}(例如,calico)最常通过在Kubernetes节点上设置Linux Iptables Netfilter规则来实施网络策略。

从文档network plugins

在Calico方法中,进出工作负载的IP数据包通过工作负载主机上的Linux路由表和iptables基础结构进行路由和防火墙。对于正在发送数据包的工作负载,Calico确保始终将主机作为下一跳MAC地址返回,而不考虑工作负载本身可能配置的任何路由。对于寻址到工作负载的数据包,最后一个IP跃点是从目标工作负载的主机到工作负载本身的IP跳

here

答案 1 :(得分:1)

“取决于”。取决于控制器实际执行的设置,通常这是(但并非总是)您的CNI插件的一部分。

最常见的实现是Calico的Felix daemon,它支持多个后端,但是iptables是一个常见的实现。其他插件使用eBPF网络程序或其他防火墙子系统也可以达到类似的效果。