Доступно в редакциях: 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. Чтобы включить модуль выполните команду:
1d8 k apply -f - <<EOF
2apiVersion: deckhouse.io/v1alpha1
3kind: ModuleConfig
4metadata:
5 name: csi-nfs
6spec:
7 enabled: true
8 version: 1
9EOF
Дождитесь, когда модуль csi-nfs
перейдет в состояние Ready
. Проверить состояние можно, выполнив следующую команду:
1d8 k get module csi-nfs -w
В результате будет выведена информация о модуле csi-nfs
:
1NAME WEIGHT STATE SOURCE STAGE STATUS
2csi-nfs 910 Enabled Embedded Ready
Создание StorageClass
Для создания StorageClass необходимо использовать ресурс NFSStorageClass. Ручное создание ресурса StorageClass без NFSStorageClass может привести к ошибкам. Пример команды для создания класса хранения на базе NFS:
1d8 k apply -f - <<EOF
2apiVersion: storage.deckhouse.io/v1alpha1
3kind: NFSStorageClass
4metadata:
5 name: nfs-storage-class
6spec:
7 connection:
8 # Адрес NFS сервера.
9 host: 10.223.187.3
10 # Путь к точке монтирования на NFS сервере.
11 share: /
12 # Версия NFS сервера.
13 nfsVersion: "4.1"
14 # Режим поведения при удалении PVC.
15 # Допустимые значения:
16 # - Delete (при удалении PVC будет удален PV и данные на NFS-сервере);
17 # - Retain (при удалении PVC не будут удалены PV и данные на NFS-сервере, потребуют ручного удаления пользователем).
18 # [Подробнее...](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#reclaiming)
19 reclaimPolicy: Delete
20 # Режим создания тома.
21 # Допустимые значения: "Immediate", "WaitForFirstConsumer".
22 # [Подробнее...](https://kubernetes.io/docs/concepts/storage/storage-classes/#volume-binding-mode)
23 volumeBindingMode: WaitForFirstConsumer
24EOF
Проверьте, что созданный ресурс NFSStorageClass перешел в состояние Created
, выполнив следующую команду:
1d8 k get NFSStorageClass nfs-storage-class -w
В результате будет выведена информация о созданном ресурсе NFSStorageClass:
1NAME PHASE AGE
2nfs-storage-class Created 1h
Убедитесь, что был создан соответствующий StorageClass, выполнив следующую команду:
1d8 k get sc nfs-storage-class
В результате будет выведена информация о созданном StorageClass:
1NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
2nfs-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
должны быть запущены на всех узлах. Проверить работоспособность модуля можно с помощью следующей команды:
1d8 k -n d8-csi-nfs get pod -owide -w
В результате будет выведен список всех подов в пространстве имен d8-csi-nfs
:
1NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
2controller-547979bdc7-5frcl 1/1 Running 0 1h 10.111.2.84 master <none> <none>
3csi-controller-5c6bd5c85-wzwmk 6/6 Running 0 1h 172.18.18.50 master <none> <none>
4webhooks-7b5bf9dbdb-m5wxb 1/1 Running 0 1h 10.111.0.16 master <none> <none>
5csi-nfs-8mpcd 2/2 Running 0 1h 172.18.18.50 master <none> <none>
6csi-nfs-n6sks 2/2 Running 0 1h 172.18.18.51 worker-1 <none> <none>
7csi-nfs-6nqq8 2/2 Running 0 1h 172.18.18.52 worker-2 <none> <none>