Механизм PersistentVolume позволяет подключить к кластеру K8S существующий диск, в качестве постоянного хранилища данных.
Важно Если вы хотите подключить общее файловое хранилище NFS в качестве диска, то воспользуйтесь инструкцией по этой ссылке.
Рассмотрим пример. Имеется диск с файловой системой ext4, на котором есть файл test_file.txt. Создадим PV на основе этого диска, описав для него манифест:
— accessModes: ReadWriteOnce — означает что данный диск может быть подключен только к одному поду (множественное подключение к разным подам доступно только для NFS)
— capacity: storage: 8Gi — поле размера PV, является обязательным и должно равняться размеру используемого диска volumeID — поле где указывается ID используемого диска
— fsType: ext4 — тип файловой системы, расположенной на диске
— persistentVolumeReclaimPolicy: Retain — параметр жизненного цикла PV, при значении Retain, диск останется в проекте после удаления PVC и PV (при значении Delete, диск будет удалён)
Создадим PV на основе манифеста и проверим его:
Отобразится:
Затем выполните команду:
Результат команды:
Теперь нужно описать PVC для этого PV:
— storageClassName:«» — всегда пусто для Persistent Volume, создаваемых на основе существующего диска. Размер (storage) должен совпадать с указанными параметрами в PV.
— volumeName: pv-test — тут нужно указать имя созданного на предыдущем шаге PV
Создадим PVC:
Отобразится:
Затем выполните команду:
Отобразится:
NAME STATUS VOLUME CAPACITY ACCESS MODES. STORAGECLASS AGE
test-pvc Bound pv-test 8Gi RWO dp1 22m
Теперь создадим манифест для пода с использованием PVC:
В разделеspec: volumesописывается диск, который будет монтироваться в наш контейнер, здесь задаётся его имя и через параметр persistentVolumeСlaim мы указываем наш созданный PVC (по имени) В разделе containers:volumeMounts указывается диск, описанный в предыдущем пункте, параметр mountPath:/mntзадаёт путь куда диск будет примонтирован.
Создадим под:
Отобразится:
Затем выполните команду:
отобразится:
NAME READY STATUS RESTARTS AGE
test-pod 1/1 Running 0 24m
Теперь подключимся к запущенному поду и прочитаем файл с примонтированного диска:
Отобразится:
С более подробной информацией о Persistent Volumes рекомендуем ознакомиться на официальном сайте Kubernetes.
Опишите вашу задачу, и мы поможем вам ее решить