Helm / bitnami / spark - как загрузить файлы в extraVolumeMounts? - PullRequest
0 голосов
/ 18 февраля 2020

Я использую диаграмму Шлем для развертывания Spark в Кубернетес в GCE. Я настроил extraVolumes и extraVolumeMounts в values.yaml , и они были успешно созданы во время развертывания.

Как правильно добавить файлы на эти тома во время развертывания диаграммы?

  ## Array to add extra volumes
  extraVolumes:
    - name: spark-volume

  ## Array to add extra mounts (normally used with extraVolumes)
  extraVolumeMounts:
    - name: spark-volume
      mountPath: /tmp/new-data

1 Ответ

0 голосов
/ 18 февраля 2020

Зависит от того, где находятся файлы. Если у вас есть их внутри репо, я бы использовал initContainer для его клонирования.

Это может выглядеть так:

    initContainers:
      - name: git-clone-spark-volumes
        image: alpine/git
        args:
          - clone
          - --single-branch
          - --branch=master
          - --depth=1
          - --
          - https://github.com/your/repo.git
          - /tmp/new-data
        securityContext:
          runAsUser: 0
        volumeMounts:
          - name: spark-volume
            mountPath: /tmp/new-data
    extraVolumes:
      - name: spark-volume
        emptyDir: {}
    extraVolumeMounts:
      - name: spark-volume
        mountPath: /tmp/new-data

Это клонирует репо ( https://github.com/your/repo.git) в папку /tmp/new-data, в которую смонтирован спарк-том.

Если ваши файлы основаны на key=value, вы можете использовать ConfigMap:

$ kubectl create configmap spark-volume --from-file=configure-pod-container/configmap/game.properties --from-file=configure-pod-container/configmap/ui.properties

Что можно использовать:

    extraVolumes:
      - name: spark-volume
        configMap:
          name: spark-volume
    extraVolumeMounts:
      - name: spark-volume
        mountPath: /tmp/new-data

Это хорошо описано в Настройка модуля для использования ConfigMap .

...