如何在k8s容器中禁止网络?
我用k8s执行了一些第三方代码,它可能是不安全的。
因此,我在一个容器中使用了两个容器(A和B),A来获取代码并传递给B容器,B来执行它。
为了保护我们的网络,我想禁用B的网络。但是我没有找到任何有效的方法。
我尝试过的方法:
ifconfig eth0向下,ifdown eth0
iptables -P INPUT DROP,iptables -P OUTPUT DROP
还有其他方法吗?
更新: 最后,我使用iptable禁用用户网络,然后切换到容器B中的用户以执行代码。
注意:由于两个容器的网络名称空间相同,因此iptable规则将在两个容器中生效。
答案 0 :(得分:1)
最好不要触摸可能会导致K8s中的网络连接问题的Iptable规则。在K8中尝试使用Network Policy来隔离Pod,这是Pod的禁用网络。就像禁用network for container in docker
更新
我也知道豆荚里有2个容器(A&B)。我认为,不可能仅对该容器中的容器B
禁用联网。
答案 1 :(得分:0)
https://cilium.io/选中此项目,它可以使您执行提及的操作。它允许您基于容器/容器标识定义应用程序层和网络层策略。他们页面上的演示完全可以完成您的尝试。