Образ докера, запущенный на моем ноутбуке с папкой тома докера myVolume
внутри он привязан к папке на моем рабочем столе (может быть любой каталог на хост-машине) Desktop-Volume
:
docker run -it -v ~/Desktop/Desktop-Volume:/myVolume ..
Внутри есть файлы и папки Desktop-Volume
, когда приложение докера запускает эту папку, она заполняется вновь созданными файлами, которые, конечно, после выключения докера все еще остаются в Desktop-Volume
,
Теперь я создаю кластер Kubernetes в Google Cloud, делаю PersistentVolumes и запускаю deployment
, но контейнер вылетает, потому что это зависит от предварительно обработанных Desktop-Volume
чтобы инициализировать , поэтому мне нужно поместить эти файлы в PersistentVolumes перед запуск моего контейнера в кластере Kubernetes, но я не знаю как.
Стручок был примерно таким
spec:
volumes:
- name: demo
persistentVolumeClaim:
claimName: disk
containers:
- name: myContainer
image: "gcr.io/my-instance/myDocker:latest"
volumeMounts:
- mountPath: "/myVolume"
name: disk
Я также пробовал:
я connect
в оболочку кластера и оттуда загрузите Desktop-Volume.zip
с моего ноутбука в оболочку, затем разархивируйте и установите
hostPath:
path: "/home/<name>/Desktop-Volume"
но контейнер разбился no such a file or directory
ссылаясь на файлы, которые находятся в myVolume
через Desktop-Volume
Desktop-Volume
файлы в PersistentVolumes перед запуском контейнера в кластере?ls
туда и посмотреть мои файлы?Если я понимаю ваши вопросы, вам нужен PersistentVolume, который ведет себя так же, как ваша локальная папка на рабочем столе, когда он используется в качестве тома в вашем локальном развертывании докера.
PersistentVolume поддерживается постоянными дисками Compute Engine. Это означает, что для доступа к диску вам необходимо подключить его к виртуальной машине для использования, например этот.
Я думаю, вам нужно решение более гибкое, чем PersistentVolumnes на GKE, потому что вы хотите использовать разные точки подключения (ваш локальный рабочий стол и кубернеты).
Вы можете использовать облачное хранилище ПРЕДОХРАНИТЕЛЬ, этот адаптер позволяет монтировать сегменты облачного хранилища в качестве файловой системы, вы можете монтировать его на своем рабочем столе, другой виртуальной машине и Кубернеты.
Другой вариант это Свод.
С уважением.
Похоже, вашему контейнеру нужен предварительно заполненный том для запуска. Вы можете использовать hostPath, как вы упомянули, но это не рекомендуется по нескольким причинам. Вместо этого вы перенесете свои данные на GCE PD, убедитесь, что ваш PV использует уже существующий диск, а затем подключите его к своему модулю. Вот некоторые подробности:
1. Скопируйте данные на GCE PD: Разверните виртуальную машину, затем либо переносить данные с локального компьютера на виртуальную машину или создайте файловую систему и подготовьте необходимые файлы прямо с виртуальной машины, а не на локальном компьютере.
2. Подготовьте диск GCE для использования PV: Либо отсоедините диск GCE от вашей виртуальной машины или возьмите снимок диска и создайте новый GCE PD из снимка.
3. Создайте PV для использования диска: Для этого шага важно внимательно следовать документации. Поведение PVC по умолчанию в GKE должно быть подготовлено динамически с использованием StorageClass. Вместо этого мы хотим убедиться, что PV создается первым и явно нацелен на GCE-PD. GCP имеет хороший прохождение о том, как это сделать.
4. Создайте PVC для нацеливания на PV: Как я уже упоминал, поведение по умолчанию будет заключаться в динамическом создании нового диска, который будет новым пустым диском. Обязательно следуйте прохождение осторожно. Если какое-либо из полей установлено неправильно, будет создан другой PV.
5. Установите ПВХ в контейнер: Прежде всего, обратите внимание, что диски GCE не поддерживают чтение / запись многих, поэтому этот PVC может использоваться только одним модулем.
Если вам нужно иметь более одного модуля, вам потребуется создать несколько PVC, используя описанные выше шаги. Если файлы и файловая система, необходимые для контейнера, должны быть доступны только для чтения, у вас есть два других варианта, чтобы упростить задачу:
Создайте диск GCE в режиме readOnlyMnay, чтобы один и тот же PVC можно было использовать в нескольких модулях.
Используйте configMap со всеми необходимыми файлами. Это требует немного большего планирования, чтобы убедиться, что все соответствующие файлы находятся в нужном месте.