如何禁止从 Kubernetes 中的 pod ip 访问容器端口

How to disallow access to a container port from the pod ip in Kubernetes

默认情况下,Kubernetes 允许 pods 使用 pod IP 访问其他 pods。

我有 2 个 pods。 Pod1 和 Pod2。 Pod1 有一个 mysql 服务器和一个 PHP 应用程序。 Pod2 有一个 php 应用程序。 Pod1 的 ip 是 174.17.0.4,在 Pod2 中,php 应用程序可以从地址 174.17.0.4:3306.

访问 mysql 服务器

Pod1 和 Pod2 是 2 个不同的应用程序。 Pod2 与 Pod1 没有任何关系。所以我担心的是,如果 Pod2 被黑,黑客可以扫描网络并暴力攻击 Pod1 mysql 服务器。

如何禁止从 pod1 外部访问 mysql 端口 3306

如果您的集群设置支持 NetworkPolicy 资源,您可以查看 network policy。有了它,您可以将特定的入口和出口策略设置为特定的 pods.

声明 Network Policy 的第一步是安装具有网络策略支持的 network provider。有关更多信息,请按照 link. As I was using Minikube, I installed Cilium. Follow this link 了解如何安装它。并确保你的硬盘上有足够的 space 否则你的 Cilium pods 将处于 pending 状态并在事件 1 node had taints that the pod didn't tolerate.

中出现此错误