Если у вас есть два контейнера и вы хотите обмениваться данными между ними, вы можете сделать следующее:
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: {}
Здесь
и emptyDir
используется для обмена данными вмежду двумя контейнерами.Оба контейнера имеют объем.
Итак, если вы хотите совместно использовать одни и те же данные, вы можете монтировать один и тот же том в два контейнера.
Но, если вы хотите использовать один том, и неЕсли вы хотите обмениваться данными между двумя контейнерами, вы можете использовать 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
Теперь ваши данные не будут конфликтовать иобщий