ACK CNFS peut être monté et utilisé comme un volume de stockage partagé NAS. Comme l'illustre une application StatefulSet, CNFS permet de monter le même répertoire d'un système de fichiers NAS sur plusieurs applications ou Pods afin de résoudre les problèmes de partage de données entre Pods.
Prérequis
-
Le service NAS est activé.
Si vous accédez pour la première fois à la page produit de NAS, suivez les instructions affichées à l'écran pour activer le service NAS.
Un cluster Container Service for Kubernetes (ACK) exécutant Kubernetes 1.20 ou une version ultérieure a été créé. Le plug-in Container Storage Interface (CSI) est utilisé en tant que plug-in de volume. Pour plus d'informations, consultez la rubrique Créer un cluster ACK managé.
Les versions de csi-plugin et csi-provisioner sont v1.24.11-5221f79-aliyun ou ultérieures. Pour plus d'informations sur la mise à jour de csi-plugin et csi-provisioner, consultez la rubrique Installer et mettre à jour les composants CSI.
La version de storage-operator est v1.24.105-825188d-aliyun ou ultérieure. Pour plus d'informations sur la mise à jour de storage-operator, consultez la rubrique Gérer les composants.
-
Un client kubectl est connecté à votre cluster. Pour plus d'informations, consultez la rubrique Se connecter à un cluster ACK à l'aide de kubectl.
RemarquePour plus d'informations sur CNFS, consultez la rubrique CNFS.
Pour plus d'informations sur l'utilisation de CNFS pour gérer les systèmes de fichiers NAS, consultez la rubrique Gérer les systèmes de fichiers NAS à l'aide de CNFS.
Étape 1 : Créer une charge de travail pour un volume partagé
Créez un volume persistant (PV) nommé
cnfs-nas-static-pv. Ce PV fait référence à un CNFS nommécnfs-nas-filesystem, qui correspond au système de fichiers NAS que vous avez créé.Créez une revendication de volume persistant (PVC) nommée
cnfs-nas-static-pvcet liez le PV au PVC.Créez un StatefulSet nommé
cnfs-nas-static-sts. Le StatefulSet utilise une image busybox pour monter le PVC et écrit 1 Go de données temporaires1G.tmpfiledans le point de montage.
Étape 2 : Vérifier le résultat du montage
Vérifiez le résultat du montage :
kubectl exec cnfs-nas-static-sts-0 -- mount |grep nfs
Sortie attendue :
971134b0e8-****.cn-zhangjiakou.nas.aliyuncs.com:/ on /data type nfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other)
La sortie attendue affiche un point de montage, ce qui indique que le volume est monté.
Étape 3 : Vérifier si les données sont persistées sur le volume
Écrivez un fichier temporaire de 1 Go dans le répertoire :
kubectl exec cnfs-nas-static-sts-0 -ti -- sh -c 'dd if=/dev/zero of=/data/1G.tmpfile bs=1G count=1;'
Vérifiez si le fichier temporaire a bien été écrit dans le répertoire :
kubectl exec cnfs-nas-static-sts-0 -- ls -arlth /data
Sortie attendue :
total 1G
-rw-r--r-- 1 root root 1.0G Dec 15 12:11 1G.tmpfile
La sortie indique que le fichier 1G.tmpfile a été écrit dans le répertoire /data.
Étape 4 : Vérifier si les données sont partagées avec d'autres pods
Vérifiez si le fichier temporaire de 1 Go est partagé dans un autre Pod, cnfs-nas-static-sts-1 :
kubectl exec cnfs-nas-static-sts-1 -- ls -arlth /data
Sortie attendue :
total 1G
-rw-r--r-- 1 root root 1.0G Dec 15 12:11 1G.tmpfile
La sortie indique que le fichier 1G.tmpfile existe dans les pods nommés cnfs-nas-static-sts-0 et cnfs-nas-static-sts-1.
Lors de l'écriture de données de stockage partagé entre différents Pods, CNFS ne garantit pas la cohérence des données. Évitez d'écrire plusieurs fois dans le même fichier pour prévenir toute corruption de celui-ci.
Références
Si vous devez monter différents répertoires d'un système de fichiers NAS sur plusieurs applications ou Pods afin d'assurer l'isolation du stockage, consultez la rubrique Utiliser CNFS pour gérer des volumes NAS isolés (recommandé).
Si vous devez déclencher une expansion automatique lorsque l'utilisation d'un volume de stockage NAS dépasse un seuil spécifique, consultez la rubrique Utiliser CNFS pour mettre à l'échelle automatiquement les volumes NAS.