Можем ли мы использовать единичное монтирование тома в Pod для нескольких контейнеров? - PullRequest
0 голосов
/ 21 декабря 2018

В капсуле может быть один объем для двух разных контейнеров.

Ответы [ 2 ]

0 голосов
/ 23 декабря 2018

Если у вас есть два контейнера и вы хотите обмениваться данными между ними, вы можете сделать следующее:

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

Теперь ваши данные не будут конфликтовать иобщий

0 голосов
/ 21 декабря 2018

Да.Распространено разделение тома между двумя контейнерами в основном для связи.Посмотрите на приведенную ниже диаграмму.

enter image description here

Попробуйте это article1 article2

...