Linux中有6种名称空间:Network, UTS, Users, Mount, IPC, Pid
。我知道所有容器都与Kubernetes容器中的暂停容器共享相同的网络名称空间。默认情况下,不同的容器具有不同的PID名称空间,因为它们具有不同的初始化过程。但是,其他名称空间又如何呢?
答案 0 :(得分:5)
根据this article:
容器中的容器在“逻辑主机”上运行;它们使用相同的网络名称空间(换句话说,相同的IP地址和端口空间)和相同的IPC名称空间。
Pod中的容器共享相同的IPC名称空间,这意味着它们还可以使用标准的进程间通信(例如SystemV信号量或POSIX共享内存)相互通信。
通过“ localhost”可以访问Pod中的容器;他们使用相同的网络名称空间。另外,对于容器,可观察的主机名是Pod的名称。由于容器共享相同的IP地址和端口空间,因此应在容器中使用不同的端口进行传入连接。换句话说,Pod中的应用程序必须协调其端口的使用。
您还可以通过指定v1.PodSpec.shareProcessNamespace: true
在Pod中的容器之间enable sharing Process namespace。