【发布时间】:2019-01-08 06:00:34
【问题描述】:
有什么方法可以配置 k8s 以便工作节点上预定义的主机路径仅适用于属于特定命名空间的 pod,而其他命名空间中的其他 pod 无法挂载它。
【问题讨论】:
标签: kubernetes kubernetes-security
有什么方法可以配置 k8s 以便工作节点上预定义的主机路径仅适用于属于特定命名空间的 pod,而其他命名空间中的其他 pod 无法挂载它。
【问题讨论】:
标签: kubernetes kubernetes-security
没有这种可能性。这与卷的性质有关。具体来说:
Kubernetes 卷具有明确的生命周期 - 与 pod 相同 包含它。 [...] 当 Pod 不再存在时,卷将 也不复存在。也许比这更重要的是,Kubernetes 支持多种类型的卷,一个 Pod 可以使用任意数量的卷 同时地。 [...] 卷只是一个目录,它是 Pod 中的容器可以访问。那个目录是怎么来的, 支持它的媒介和内容是由特定的 使用的卷类型。
emptyDir 的想法是节点可以将其内容存储在另一个节点中。除了 emptyDir 开始为空并且它们不是持久的之外,emptyDir 和 hostpath 之间基本上没有区别(而且它们不需要任何特殊配置,因为它们使用节点上的现有存储)。 HostPath 卷保留在原始节点上,除非重新启动后它在不同的节点上启动 - 然后它将无法访问该卷。
因此,如果您的主机节点文件系统(将在其上创建 hostPath 的节点)上有一些路径,那么 hostPath 将允许它安装在任何 Pod 上。这里没有其他限制。
【讨论】: