Доступно в редакциях: CE, SE, SE+, EE, CSE Pro (1.64)
Подробнее см. в разделе Условия и цены.
Deckhouse поддерживает работу с NFS (Network File System), обеспечивая возможность подключения и управления сетевыми файловыми хранилищами в Kubernetes. Это позволяет организовать централизованное хранение данных и совместное использование файлов между контейнерами.
На этой странице представлены инструкции по подключению NFS-хранилища в Deckhouse, настройке соединения, созданию StorageClass, а также проверке работоспособности системы.
Включение модуля
Для управления томами на основе протокола NFS (Network File System) используется модуль csi-nfs
, позволяющий создавать StorageClass через создание пользовательских ресурсов NFSStorageClass. Чтобы включить модуль выполните команду:
d8 k apply -f - <<EOF
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: csi-nfs
spec:
enabled: true
version: 1
EOF
Дождитесь, когда модуль csi-nfs
перейдет в состояние Ready
. Проверить состояние можно, выполнив следующую команду:
d8 k get module csi-nfs -w
В результате будет выведена информация о модуле csi-nfs
:
NAME WEIGHT STATE SOURCE STAGE STATUS
csi-nfs 910 Enabled Embedded Ready
Создание StorageClass
Для создания StorageClass необходимо использовать ресурс NFSStorageClass. Ручное создание ресурса StorageClass без NFSStorageClass может привести к ошибкам. Пример команды для создания класса хранения на базе NFS:
d8 k apply -f - <<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: NFSStorageClass
metadata:
name: nfs-storage-class
spec:
connection:
# Адрес NFS сервера.
host: 10.223.187.3
# Путь к точке монтирования на NFS сервере.
share: /
# Версия NFS сервера.
nfsVersion: "4.1"
# Режим поведения при удалении PVC.
# Допустимые значения:
# - Delete (при удалении PVC будет удален PV и данные на NFS-сервере);
# - Retain (при удалении PVC не будут удалены PV и данные на NFS-сервере, потребуют ручного удаления пользователем).
# [Подробнее...](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#reclaiming)
reclaimPolicy: Delete
# Режим создания тома.
# Допустимые значения: "Immediate", "WaitForFirstConsumer".
# [Подробнее...](https://kubernetes.io/docs/concepts/storage/storage-classes/#volume-binding-mode)
volumeBindingMode: WaitForFirstConsumer
EOF
Проверьте, что созданный ресурс NFSStorageClass перешел в состояние Created
, выполнив следующую команду:
d8 k get NFSStorageClass nfs-storage-class -w
В результате будет выведена информация о созданном ресурсе NFSStorageClass:
NAME PHASE AGE
nfs-storage-class Created 1h
Убедитесь, что был создан соответствующий StorageClass, выполнив следующую команду:
d8 k get sc nfs-storage-class
В результате будет выведена информация о созданном StorageClass:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
nfs-storage-class nfs.csi.k8s.io Delete WaitForFirstConsumer true 1h
Если StorageClass с именем nfs-storage-class
появился, значит настройка модуля csi-nfs
завершена. Теперь пользователи могут создавать PersistentVolume, указывая StorageClass с именем nfs-storage-class
. Для каждого ресурса PersistentVolume будет создаваться каталог <директория из share>/<имя PersistentVolume>
.
Проверка работоспособности модуля
Для того чтобы проверить работоспособность модуля csi-nfs
, необходимо проверить состояние подов в пространстве имен d8-csi-nfs
. Все поды должны быть в состоянии Running
или Completed
, поды csi-nfs
должны быть запущены на всех узлах. Проверить работоспособность модуля можно с помощью следующей команды:
d8 k -n d8-csi-nfs get pod -owide -w
В результате будет выведен список всех подов в пространстве имен d8-csi-nfs
:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
controller-547979bdc7-5frcl 1/1 Running 0 1h 10.111.2.84 master <none> <none>
csi-controller-5c6bd5c85-wzwmk 6/6 Running 0 1h 172.18.18.50 master <none> <none>
webhooks-7b5bf9dbdb-m5wxb 1/1 Running 0 1h 10.111.0.16 master <none> <none>
csi-nfs-8mpcd 2/2 Running 0 1h 172.18.18.50 master <none> <none>
csi-nfs-n6sks 2/2 Running 0 1h 172.18.18.51 worker-1 <none> <none>
csi-nfs-6nqq8 2/2 Running 0 1h 172.18.18.52 worker-2 <none> <none>