Kubernetes ПВХ объемное крепление - PullRequest
0 голосов
/ 23 мая 2019

Я запускаю приложение на k8s.

Мой файл Docker выглядит так:

FROM python:3.5 AS python-build
ADD . /test
WORKDIR /test

в тестовой директории, я делаю все свои файлы в этой тестовой папке.

когда я захожу внутрь модуля и проверяю файловую структуру, это выглядит как /var /usr /test /bin

, поэтому я хочу добавить весь тест папки в pvc

, в структуре файла теста это похоже на /app /data /history

так я могу сохранить добавить папку присоединить к ПВХ с помощью mountpath?

возможно ли два пути монтирования, но один пвх?

Ответы [ 2 ]

3 голосов
/ 23 мая 2019

Как я понимаю, вы хотите включить ваш тестовый каталог в качестве пути монтирования в вашем PVC. Чтобы ответить на этот вопрос, да, вы можете сделать это, указав его в hostpath, а не в пути монтирования. Как объяснено в документации: -

Том hostPath монтирует файл или каталог из файловой системы узла в ваш Pod. Это не то, что нужно большинству Pod, но оно предлагает мощный аварийный люк для некоторых приложений.

и путь монтирования -

Место в модуле, где должен быть установлен том.

Итак, если из вашей хост-системы вы хотите смонтировать папку \ test, вам нужно указать ее в pv, как показано ниже

kind: PersistentVolume
apiVersion: v1
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/test"

и вы можете использовать этот PV для получения тома с помощью pvc и использовать mountPath для монтирования этого тома в ваш модуль.

Чтобы ответить на ваш второй вопрос, да, у вас может быть несколько путей монтирования для одного PVC. Пример этого, который работает: -

    "containers": [
    {
        ...,
        "volumeMounts": [
         {
             "mountPath": "/mnt/1",
             "name": "v1",
             "subPath": "data/1"
         },
         {
             "mountPath": "/mnt/2",
             "name": "v1",
             "subPath": "data/2"
         }
       ]
    }
   ],
   ...,
   "volumes": [
       {
           "name": "v1",
           "persistentVolumeClaim": {
                "claimName": "testvolume"
           }
       }
     ]
  }
}
1 голос
/ 23 мая 2019

Для точек монтирования вы не имеете дело с PVC, но PV s и volumeMounts в развертывании yaml.От Документы

PVC

PersistentVolumeClaim (PVC) - это запрос на хранение пользователем.Он похож на модуль.

PV

PersistentVolume (PV) - это часть хранилища в кластере, предоставленная администратором.

И да, вы можете сделать это.Просто создайте PV (или не обязательно, это зависит от конфигурации кластера. PV будут создаваться из PVC) и укажите volumeMounts в вашем развертывании

Проверьте мои файлы yaml в моем репо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...