在一个 pod 中,我们可以为两个不同的容器提供一个卷。
问问题
239 次
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 回答