1

在一个 pod 中,我们可以为两个不同的容器提供一个卷。

4

2 回答 2

2

如果你有两个容器并且你想在它们之间共享数据,你可以这样做:

apiVersion: v1
kind: Pod
metadata:
  name: production
spec:
  containers:
  - name: container1
    image: image1
    volumeMounts:
    - name: storage
      mountPath: /vol/data
  - name: container2
    image: image2
    volumeMounts:
    - name: storage
      mountPath: /store/data
  volumes:
  - name: storage
    emptyDir: {}

这里,

anemptyDir用于在两个容器之间共享数据。两个容器都有体积。

所以,如果你想共享相同的数据,你可以在两个容器中挂载相同的卷。

但是,如果你想使用单个卷,并且不想在两个容器之间共享数据,你可以使用subPath

spec:
  containers:
  - name: container1
    image: image1
    volumeMounts:
    - name: storage
      mountPath: /vol/data
      subPath: vol
  - name: container2
    image: image2
    volumeMounts:
    - name: storage
      mountPath: /store/data
      subPath: store
  volumes:
  - name: storage
    emptyDir: {}

这里,

subPath在引用的卷中指定一个子路径,而不是它的根。这意味着,您的卷中的两个单独目录将安装在两个容器中。

在这个例子中,/vol目录将被挂载到container1容器中,并且/store从卷将被挂载到container2

现在,您的数据不会发生冲突和共享

于 2018-12-23T05:03:04.523 回答
0

是的。在两个容器之间共享一个卷是很常见的,主要是为了通信。看看下图。

在此处输入图像描述

试试这篇文章1文章2

于 2018-12-21T16:22:55.630 回答