Как подключить локальный том к компоненту ksonnet, развернутому в kubeflow - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь смонтировать локальный каталог в компонент, развернутый в kubeflow с использованием прототипа ksonnet.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Если под локальным каталогом вы подразумеваете локальный каталог на узле, то можно подключить каталог в файловой системе узла внутри модуля, используя HostPath или Локальный Тома feature.

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

A local том представляет собой подключенное локальное устройство хранения, такое как диск, раздел или каталог.

Локальные тома могут использоваться только в качестве статически созданного PersistentVolume.Динамическая инициализация пока не поддерживается.

По сравнению с томами hostPath локальные тома можно использовать в надежном и переносимом режиме без ручного планирования модулей на узлы, поскольку система знает о томеограничения узла, если смотреть на сходство узлов в PersistentVolume.

Например:

# HostPaht Volume example
apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: k8s.gcr.io/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /test-pd
      name: test-volume
  volumes:
  - name: test-volume
    hostPath:
      # directory location on host
      path: /data
      # this field is optional
      type: Directory

# local volume example (beta in v1.10)
apiVersion: v1
kind: PersistentVolume
metadata:
  name: example-pv
spec:
  capacity:
    storage: 100Gi
  # volumeMode field requires BlockVolume Alpha feature gate to be enabled.
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local-storage
  local:
    path: /mnt/disks/ssd1
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - example-node

GlusterFS также доступно как Volume или как Постоянный том (Режимы доступа: ReadWriteOnce, ReadOnlyMany, ReadWriteMany)

A glusterfs том позволяет монтировать том Glusterfs (сетевая файловая система с открытым исходным кодом) в ваш Pod.,В отличие от emptyDir, который стирается при удалении Pod, содержимое тома glusterfs сохраняется, а том просто отключается.Это означает, что том glusterfs может быть предварительно заполнен данными, и эти данные могут быть «переданы» между модулями.GlusterFS может монтироваться несколькими устройствами записи одновременно.

Подробнее см. Пример GlusterFS .

0 голосов
/ 30 мая 2018

Невозможно смонтировать локальный каталог в модуль Kubernetes (ведь kubeflow и ksonnet просто создают модули и другие ресурсы Kubernetes).

Если вы хотите, чтобы ваши файлы были доступны в Kubernetes, я могу подуматьв двух вариантах:

  1. Создайте собственный образ докера, скопируйте нужную папку и отправьте ее в реестр.Kubeflow имеет параметры для настройки образов для развертывания.

  2. Использовать NFS.Таким образом, вы можете смонтировать том NFS в вашей локальной сети, а также в модулях.Для этого вам следует изменить код ksonnet, поскольку в последней стабильной версии он не реализован.

Если вы предоставите больше информации о том, какой компонент вы пытаетесь развернуть, и какого облачного провайдеравы используете, я мог бы помочь вам больше

...