在同一个容器中的容器之间隔离

时间:2017-06-26 19:39:57

标签: kubernetes

假设一个pod有两个容器,一个是特权,另一个是普通的非特权容器。

我可以期望在同一个容器中这两个容器之间的隔离保证是否相同,就好像它们位于两个独立的容器中一样?由于命名空间和卷在一个pod中共享,同一个pod中的容器之间的隔离是否会变弱?

1 个答案:

答案 0 :(得分:0)

同一容器中的pod之间的隔离取决于您配置pod和容器的确切方式。对于典型设置,它不像单独的pod之间那么全面。这些差异是否重要取决于您的计划和威胁模型的细节。

以下是有关Pod sharing/isolation的一些文档。这是detailed Pod API docs

为了更深入地理解,有助于理解各种类型的Linux namespaces

在评估隔离是否足以满足您的使用情况时,需要考虑以下事项:

  • 不同的卷:所有容器都有单独的安装命名空间。 Pod API允许您单独指定将哪些卷装入每个Pod。如果您没有指定任何卷,则pod不会共享文件。

  • 共享localhost :同一个pod中的容器共享localhost网络接口。不同豆荚中的容器不适合。这可能会减少隔离。例如,如果特权pod在localhost上打开一个端口,则另一个pod可以访问它。 (例外:如果pod使用hostNetwork: true选项)。

  • 不同的Linux功能和用户:同一个pod中的容器具有不同的功能,可以作为不同的用户ID运行。这有助于隔离。

  • 共享IPC :同一个pod中的容器共享IPC命名空间。这意味着可以通过IPC机制(如System V IPC(http://man7.org/linux/man-pages/man7/svipc.7.html)或POSIX消息队列进行通信。但是,您仍然必须选择使用这些功能。

  • 不同资源:每个容器都有自己的内存和CPU限制。

相关问题