В предыдущих статьях я уже показал:
— как установить HA Kubernetes кластер
— как развернуть NFS-сервер для Kubernetes
Теперь осталось связать всё это, чтобы хранилище работало динамически: при создании PersistentVolumeClaim (PVC) Kubernetes сам выдавал готовый PersistentVolume (PV) через NFS. Для этого нам нужно настроить StorageClass и установить NFS CSI Driver.
Установка NFS CSI Driver
helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts
helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs \
--namespace kube-system \
--version 4.11.0
Проверка статуса:
kubectl -n kube-system get pods \
--selector="app.kubernetes.io/instance=csi-driver-nfs" --watch
Создание StorageClass
#nfs-storageclass.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs-csi
provisioner: nfs.csi.k8s.io
parameters:
server: IP_NFS_SERVER # IP NFS сервера
share: /data/path # Путь на сервере
reclaimPolicy: Delete
volumeBindingMode: Immediate
mountOptions:
- nfsvers=4.1
Применение:
kubectl apply -f nfs-storageclass.yaml
Использование
Создаём PVC, указывая storageClassName: nfs-csi:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-nfs-pvc
spec:
accessModes:
- ReadWriteMany
storageClassName: nfs-csi
resources:
requests:
storage: 5Gi
kubectl apply -f pvc.yaml
PV должен будет создаться автоматически