首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同一个实例中的每个容器都有独立的文件系统吗?

同一个实例中的每个容器都有独立的文件系统吗?
EN

Stack Overflow用户
提问于 2020-06-06 15:47:52
回答 2查看 358关注 0票数 3

尝试在pod内的两个容器之间共享一个文件,我必须使用卷,并为该卷在入口路径中创建文件。

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: pod-5
spec:
  containers:
  - name: busybox
    image: busybox
    command: ["sh", "-c", "if [ -f /workdir/foo ]; then sleep 3600; else exit; fi"]
    volumeMounts:
    - name: workdir
      mountPath: "/workdir"
  initContainers:
  - name: install
    image: busybox
    command: ["sh", "-c", "touch /workdir/foo; hostname > /workdir/foo"]
    volumeMounts:
    - name: workdir
      mountPath: "/workdir"
  volumes:
  - name: workdir
    emptyDir: {}

如果我不使用卷并在init容器中创建一个文件,并尝试从另一个容器中读取它,它将无法工作。

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: pod-5
spec:
  containers:
  - name: busybox
    image: busybox
    command: ["sh", "-c", "if [ -f /workdir/foo ]; then sleep 3600; else exit; fi"]
  initContainers:
  - name: install
    image: busybox
    command: ["sh", "-c", "touch /workdir/foo; hostname > /workdir/foo"]

为什么?我认为pod中的所有容器都应该共享网络和文件系统。

EN

回答 2

Stack Overflow用户

发布于 2020-06-06 17:03:05

同一个pod中的容器共享网络命名空间和IPC命名空间,但它们有单独的挂载命名空间和filesystem.Hence,我们使用卷来共享挂载。要了解有关名称空间的更多信息,请查看linux名称空间doc

票数 3
EN

Stack Overflow用户

发布于 2020-06-06 16:41:17

让我们首先解释一下什么是Pod。Pod is是Kubernetes可以部署和管理的最小单元。换句话说,如果您需要在Kubernetes中运行单个容器,那么您需要为该容器创建一个Pod。同时,一个Pod可以包含多个容器,通常是因为这些容器是相对紧密耦合的。有多紧耦合?好吧,这样想吧: pod中的容器代表了在前容器世界中运行在同一服务器上的进程。

现在,把pod想象成您正在尝试运行容器的本地计算机中的pod。

kubernetes环境中的Pod也是如此。

在Kubernetes中,您可以使用共享Kubernetes Volume作为一种简单高效的方式在Pod中的容器之间共享数据。在大多数情况下,使用主机上与Pod内所有容器共享的目录就足够了

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62228843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档