在所有容器中打开端口

问题描述

在我的 openshift 集群中,我注意到我的所有 pod 都有一个打开的端口,而我没有指定它。 它的 pott 443 显然用于 this post 中提到的 k8s api。

即使看完了,还是有一点不懂。

我了解该服务存在并转发到所有 Pod。 但是对于使用此服务接收和发送请求的 pod。端口必须在容器中打开。 但不知何故,即使没有在我的 pods 容器上指定端口。认的 443 端口是打开的。 这让我可以做这样的事情:

  1. 创建服务,目标端口设置为 443
  2. 在没有打开容器端口的情况下设置 pod。
  3. 成功使用服务与容器通信。

这安全吗?,是什么在没有我指定的情况下打开容器端口? 有没有办法防止这种情况发生?

解决方法

我注意到我所有的 pod 都有一个开放的端口,我没有指定它。

是的,contanerPort: 只是元数据,容器也可能侦听其他端口。

这安全吗?,是什么在没有我指定的情况下打开容器端口?有没有办法防止这种情况发生?

是的,这就是 Kubernetes Network Policies 的用途。