Как получить доступ к файлам PersistentVolume на Docker для рабочего стола? - PullRequest
0 голосов
/ 13 февраля 2019

Я хотел бы получить доступ и редактировать файлы в моем Kubernetes PersistentVolume на моем локальном компьютере (macOS), но я не могу понять, где найти эти файлы!

Я указываюмои hostPath до /tmp/wordpress-volume, но я нигде не могу их найти.В чем заключается скрытый секрет, который я упускаю

Я использую следующую конфигурацию на докер для рабочего стола кластер Version 2.0.0.2 (30215).

PersistentVolume

kind: PersistentVolume
metadata:
  name: wordpress-volume
spec:
  # ...
  hostPath:
    path: /tmp/wordpress-volume

PersistentVolumeClaim

kind: PersistentVolumeClaim
metadata:
  name: wordpress-volume-claim
# ...

Развертывание

kind: Deployment
metadata:
  name: wordpress
# ...
spec:
  containers:
  - image: wordpress:4.8-apache
    # ...
    volumeMounts:
    - name: wordpress-volume
      mountPath: /var/www/html
  volumes:
  - name: wordpress-volume
    persistentVolumeClaim:
      claimName: wordpress-volume-claim

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Благодаря @ aman-tuladhar и нескольким часам, потраченным в Интернете, я обнаружил, что вам просто нужно убедиться, что storageClassName установлено для вас PersistentVolume и PersistentVolumeClaim ,

Согласно документации , если вы хотите избежать динамического генерирования Kubernetes PersistentVolumes без учета статически объявленного вами, вы можете просто установитьпустая строка " ".

В моем случае я установил storageClassName: manual.

PersistentVolume

kind: PersistentVolume
metadata:
  name: wordpress-volume
spec:
  # ...
  storageClassName: manual
  hostPath:
    path: /tmp/wordpress-volume

PersistentVolumeClaim

kind: PersistentVolumeClaim
metadata:
  name: wordpress-volume-claim
spec:
  storageClassName: manual
  # ...

Thisработает "из коробки" с кластером docker-for-desktop (если для mountPath задан абсолютный путь).

Ссылки:

0 голосов
/ 13 февраля 2019

Первое, что вам нужно запомнить, это то, что Kubernetes работает в кластере minikube.minikube сам по себе работает на виртуальной машине.Таким образом, этот путь не будет на вашей хост-машине, скорее это путь в виртуальной машине.

Но с minikube у нас есть простой способ сделать это.Сначала вы должны смонтировать каталог хоста в minikube.

(Если вы используете облачных провайдеров, у вас будет какой-то способ создать хранилище. Для GCE у вас есть gcePersistentDisk)

minikube mount /path/to/dir/to/mount:/vm-mount-path

Сейчас

kind: PersistentVolume
metadata:
  name: wordpress-volume
spec:
  # ...
  hostPath:
    path: /vm-mount-path

Если вы создадите этот ресурс, он должен сохранить файл на вашем хост-компьютере.

Для получения более подробной информации следуйте этой документации на мини-куб

...