Настройка сервера для RWX томов
Создание сервера
В примере показана Ubuntu 24.04
-
Создайте сервер, с которого будут шариться тома(volume)
-
Установите NFS-server
sudo apt update
sudo apt install -y nfs-kernel-server- Создайте экспортируемую папку
sudo mkdir -p /srv/nfs/k8s
sudo chmod 777 /srv/nfs/k8s- Добавьте строку в файл
/etc/exportsстроку
/srv/nfs/k8s *(rw,sync,no_subtree_check,no_root_squash)* = разрешаем доступ всем (можно ограничить IP-адресами позже)
- Применить настройки
sudo exportfs -rav
sudo systemctl restart nfs-serverРазвертывание StorageClass в k8s кластер
- Добавление чарта provisoner
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
helm repo update- Установка provisoner
helm install nfs-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set nfs.server=<ip-nfs-server> \ #Сюда добавьте ip адрес nfs-сервера
--set nfs.path=/srv/nfs/k8s \
--set storageClass.name=nfs-rwx \
--set storageClass.defaultClass=falseПараметры:
- nfs.server — IP твоей внешней ВМ
- nfs.path — путь, где хранятся подкаталоги
- storageClass.name — имя, которое ты будешь использовать в чартах
Теперь можно использовать StorageClass в своих развертываниях
Например:
persistence:
enabled: true
size: 1Gi
storageClassName: nfs-rwx
accessModes:
- ReadWriteMany
mountPath: /usr/share/uploads