Как подключить локальный том к компоненту ksonnet, развернутому в kubeflow

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

2 ответа

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

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

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

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

По сравнению с томами hostPath локальные тома могут использоваться надежным и переносимым способом без ручного планирования Pod на узлы, поскольку система знает об ограничениях узлов тома, просматривая сходство узлов в 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 также доступен как Том или как Постоянный Том (Режимы доступа:ReadWriteOnce,ReadOnlyMany,ReadWriteMany)

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

Смотрите пример GlusterFS для более подробной информации.

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

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

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

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

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

Другие вопросы по тегам