有没有办法在不使用网络策略的情况下防止 Kubernetes 中 Pod 的命名空间间通信

时间:2021-04-06 09:25:54

标签: kubernetes kubernetes-networkpolicy containerd

我正在使用 containerd 作为运行时设置混合集群(master-centos 和 2 个工作节点-windows 2019)。我不能使用任何像 calico 和 weave 这样的 CNI,因为它们需要 docker 作为运行时。我可以使用 Flannel,但它不能很好地支持网络策略。有没有办法在不使用网络策略的情况下阻止 Kubernetes 中 Pod 的命名空间间通信?

2 个答案:

答案 0 :(得分:2)

有没有办法在不使用网络策略的情况下阻止 Kubernetes 中 Pod 的命名空间间通信?

网络策略正是为此目的而创建的,根据文档,您需要支持它们的 CNI。换句话说,它们将被忽略。

<块引用>

网络政策由 network plugin 实施。 要使用网络策略,您必须使用网络解决方案 支持网络策略。创建一个没有 实现它的控制器将不起作用。

如果您唯一的选择是使用 flannel 进行网络连接,您可以安装 Calico 网络策略来保护集群通信。所以基本上你是为策略安装 calico,为通常称为 Canal 的网络安装 flannel。您可以在 calico docs

中找到更多详细信息

这里还有一个很好的答案 how to setup calico with containerd 您可能会发现对您的案例有用。

答案 1 :(得分:1)

由于 Flannel 只是 L2 网络解决方案,因此不支持 NetworkPolicy (L3/L4),您可以在服务级别实施安全性(任何形式的授权,如用户/通行证、证书、saml、oauth 等)。

但是如果没有 NetworkPolicy,人们就会失去像安全性这样的防火墙,这可能不是您想要的。