# CSI NFS Driver CSI-драйвер для динамического provisioning PersistentVolume через NFS. Создаёт StorageClass `nfs-` (например `nfs-master01`). Работает в паре с аддоном `nfs-server` или внешним NFS сервером. ## Быстрый старт ```yaml # group_vars/all/addons.yml addon_csi_nfs: true ``` ```bash make addon-csi-nfs ``` ## Параметры | Переменная | Умолч. | Описание | |---|---|---| | `csi_nfs_server` | первый мастер | IP или hostname NFS сервера | | `csi_nfs_share` | `/storage/nfs` | Базовый путь NFS экспорта | | `csi_nfs_storageclass_default` | `true` | Сделать StorageClass по умолчанию | | `csi_nfs_reclaim_policy` | `Delete` | Delete \| Retain | | `csi_nfs_on_delete` | `delete` | delete \| retain \| archive | ## Внешний NFS сервер ```yaml csi_nfs_server: "192.168.1.20" csi_nfs_share: "/srv/nfs/k8s" ``` ## Использование в PVC ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: app-data spec: accessModes: [ReadWriteMany] storageClassName: nfs-master01 resources: requests: storage: 5Gi ``` ### Политика при удалении PVC - `delete` — директория удаляется - `retain` — директория остаётся - `archive` — директория переименовывается в `archived-<имя>` ## Структура данных на сервере ``` /storage/nfs/ ├── default/ ← namespace │ └── my-pvc/ ← имя PVC │ └── pvc-xxx/ ← имя PV │ └── data/ ``` ## Проверка ```bash kubectl get storageclass # NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE # nfs-master01 (default) nfs.csi.k8s.io Delete Immediate kubectl get pvc -A ``` ## Официальные ресурсы - Официальный сайт: [https://kubernetes-csi.github.io/docs/drivers.html](https://kubernetes-csi.github.io/docs/drivers.html) - Официальная документация: [https://github.com/kubernetes-csi/csi-driver-nfs](https://github.com/kubernetes-csi/csi-driver-nfs) - Версии Helm chart / ПО: [https://github.com/kubernetes-csi/csi-driver-nfs/releases](https://github.com/kubernetes-csi/csi-driver-nfs/releases)