Установка Local Storage#

Подготовить место на хранилище#

  • Зайти на Worker noade по SSH;
  • Убедиться, что места на хранилище достаточно (df -h)
  • Создать папку для данных:
sudo mkdir -p /mnt/my-app-data

Определить и создать PersistentVolume (PV)#

Создать манифест my-pv.yaml :

apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-app-pv
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/my-app-data"
  • storageClassName: manual: имя класса. Использование несуществующего имени заставляет вручную провести связку между PV и PVC;
  • capacity: размер хранилища (volume);
  • accessModesReadWriteOnce означает, что 1 узел подключает хранилище как read-write;
  • hostPath: путь до хранилища, созданного ранее.

Применить манифест и проверить:

kubectl apply -f my-pv.yaml

kubectl get pv

Должен появиться my-app-pv со статусом STATUS = Available

Определить и создать PersistentVolumeClaim (PVC)#

Создать манифест my-pvc.yaml :

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-app-pvc
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

Применить манифест и проверить:

kubectl apply -f my-pvc.yaml

kubectl get pvc
kubectl get pv

Статус PVC STATUS должен быть Bound, и у PV STATUS должен стать Bound. Теперь они связаны.