我正在使用 containerd 作为运行时设置混合集群(master-centos 和 2 个工作节点-windows 2019)。我不能使用像 calico 和 weave 这样的 CNI,因为它们需要 docker 作为运行时。我可以使用 Flannel,但它不能很好地支持网络策略。有没有办法在不使用网络策略的情况下防止 Kubernetes 中 pod 的命名空间间通信?
问问题
142 次
2 回答
2
有没有办法在不使用网络策略的情况下防止 Kubernetes 中 pod 的命名空间间通信?
网络策略是为此目的而创建的,并且根据文档,您需要支持它们的 CNI。以其他方式,它们将被忽略。
网络策略由 网络插件实现。要使用网络策略,您必须使用支持 NetworkPolicy 的网络解决方案。在没有实现它的控制器的情况下创建 NetworkPolicy 资源将无效。
如果您唯一的选择是使用 flannel 进行联网,则可以安装 Calico 网络策略来保护集群通信。所以基本上你正在为策略安装印花布,为通常称为运河的网络安装法兰绒。您可以在calico docs中找到更多详细信息
这也是如何使用 containerd 设置 calico的一个很好的答案,您可能会发现它对您的情况有用。
于 2021-04-06T12:31:03.403 回答
1
由于 Flannel 仅是 L2 网络解决方案,因此不支持 NetworkPolicy (L3/L4),您可以在服务级别实现安全性(任何形式的授权,如用户/通行证、证书、saml、oauth 等)。
但是如果没有 NetworkPolicy,就会失去防火墙之类的安全性,这可能不是您想要的。
于 2021-04-08T12:11:14.297 回答