Configurez un système de fichiers NAS en tant que PV (Persistent Volume) et PVC (Persistent Volume Claim) partagés dans votre cluster ACK pour stocker les données d'entraînement Arena.
Prérequis
Assurez-vous de disposer des éléments suivants :
Un cluster ACK opérationnel
Les autorisations nécessaires pour créer des systèmes de fichiers NAS et gérer les ressources de stockage ACK
Une instance Elastic Compute Service (ECS) située dans le même Virtual Private Cloud (VPC) que votre cluster ACK, afin de monter et d'alimenter le système de fichiers NAS
Notes d'utilisation
Tenez compte des contraintes suivantes :
Co-localisation VPC requise. Le système de fichiers NAS, son point de montage et votre cluster ACK doivent tous résider dans le même VPC.
Le type de protocole impacte les performances multi-écriture. NFSv3 offre de meilleures performances lorsque plusieurs instances ECS n'écrivent pas simultanément dans le même fichier. Extreme NAS prend uniquement en charge NFSv3.
La capacité du PV sert uniquement à la mise en correspondance. Les valeurs de capacité ne limitent pas le stockage réel. Les limites réelles dépendent des spécifications du système de fichiers NAS.
Les PV statiques ne prennent pas en charge
archiveOnDelete. Définir l'option Delete sur un PV statique ne supprime ni le PV ni les données NAS. Utilisez l'option Retain (par défaut), sauf si vous utilisez des volumes NAS provisionnés dynamiquement.
Informations générales
La configuration d'un volume de stockage partagé pour les environnements de tâches Arena permet de préserver le travail des data scientists (code et données) afin qu'il ne soit pas perdu lors de la suppression des conteneurs, et facilite l'accès aux données d'entraînement partagées. Dans le cadre du développement en équipe, l'allocation d'un pool de stockage partagé permet de partager les données et le code entre les membres de l'équipe.
Lors de la soumission d'une tâche Arena, vous pouvez utiliser le paramètre --data pour déclarer le stockage partagé et le chemin de montage. Le stockage partagé est monté dans le répertoire spécifié, et les tâches ultérieures peuvent réutiliser ces données ou ce code.
Dans Kubernetes, les objets de stockage sont décrits par des Persistent Volumes (PV) et des Persistent Volume Claims (PVC). En tant qu'administrateur de cluster, lors de l'attribution des environnements, créez un PVC distinct pour chaque data scientist. Par exemple, les PVC des utilisateurs A et B peuvent monter le même backend NAS ou CPFS, mais doivent pointer vers des sous-répertoires différents afin que leurs environnements de travail restent isolés.
Étape 1 : Créer une instance NAS
Créez un système de fichiers NAS General-purpose dans la même région et le même VPC que votre cluster ACK.
Consultez la rubrique Créer un système de fichiers NAS General-purpose via la console.
Utilisez les valeurs suivantes :
|
Paramètre |
Valeur requise |
|
File system type |
General-purpose NAS |
|
Region |
Même région que votre cluster ACK |
|
VPC |
Même VPC que votre cluster ACK |
|
Protocol type |
NFS |
Étape 2 : Monter le système de fichiers sur une instance ECS
Montez le système de fichiers NAS sur une instance ECS afin de l'alimenter ultérieurement avec des données d'entraînement. Cette étape utilise la fonctionnalité de montage en un clic. Consultez la rubrique Scénarios de montage d'un système de fichiers pour découvrir d'autres méthodes.
Monter le système de fichiers NAS
Connectez-vous à la console NAS. Dans le volet de navigation de gauche, sélectionnez .
-
Dans la barre de navigation supérieure, sélectionnez le groupe de ressources et la région de votre système de fichiers.

-
Localisez votre système de fichiers et cliquez sur Mount dans la colonne Actions.
Lors de la première utilisation, NAS vous invite à attribuer le rôle lié au service AliyunServiceRoleForNasEcsHandler. Suivez les instructions affichées à l'écran. Consultez la rubrique Rôles liés au service de NAS .
-
Dans le panneau Mount, configurez les options de montage :
Sélectionnez un point de montage et cliquez sur Next.
-
Sélectionnez une instance ECS située dans le même VPC que le système de fichiers et cliquez sur Next. Si l'instance n'apparaît pas dans la liste, actualisez la page.
RemarqueCette configuration permet de joindre une seule instance ECS. Consultez la rubrique Monter par lot un système de fichiers NFS sur plusieurs instances ECS pour effectuer des montages par lot.
-
Configurez les paramètres de montage :
Paramètre
Description
Obligatoire
Par défaut
Mount path
Répertoire local sur l'instance ECS servant de point de montage.
Oui
—
Automatic mount
Remonte automatiquement le système de fichiers au redémarrage de l'instance ECS.
Non
Activé
Protocol type
Version du protocole NFS. General-purpose NAS prend en charge NFSv3 et NFSv4 ; Extreme NAS prend uniquement en charge NFSv3. NFSv3 offre de meilleures performances lorsque plusieurs instances n'écrivent pas simultanément dans le même fichier.
Oui
—
NAS directory
Répertoire NAS à monter. Saisissez
/pour la racine ou un sous-répertoire tel que/abc. Pour les répertoires inexistants, sélectionnez Confirm New Directory et définissez l'UID, le GID et les autorisations POSIX.Non
/(racine)Mount parameters
Indicateurs de montage NFS. Consultez la rubrique Monter un système de fichiers NFS sur une instance ECS Linux pour obtenir la référence complète.
Non
Paramètres de montage par défaut
-
Cliquez sur Complete. Le montage prend 1 à 2 minutes. Lorsque le statut indique Mounted, le système de fichiers est prêt. En cas d'échec (Failed), consultez la rubrique Monter un système de fichiers NFS sur une instance ECS Linux pour résoudre le problème.

Vérifier le montage
Connectez-vous à l'instance ECS et exécutez les commandes suivantes pour vérifier l'accès :
mkdir /mnt/dir1
mkdir /mnt/dir2
touch /mnt/file1
echo 'some file content' > /mnt/file2
ls /mnt
La sortie liste dir1, dir2, file1 et file2 :
dir1 dir2 file1 file2
Pour afficher les détails du montage ou vérifier la capacité, exécutez mount -l ou df -h.
Chaque système de fichiers NAS nécessite un point de montage. Consultez la rubrique Gérer les points de montage pour ajouter ou rechercher des points de montage. Définissez Mount target type sur VPC et sélectionnez le même VPC et vSwitch que votre cluster ACK.
Étape 3 : Créer un PV et un PVC
Enregistrez le système de fichiers NAS en tant que PV dans votre cluster ACK, puis créez un PVC pour l'accès par les pods.
Créer un PV
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.Console NAS
Sur la page Clusters, cliquez sur le cluster cible. Dans le volet de navigation de gauche, sélectionnez Volumes > Persistent Volumes.
-
Sur la page Persistent Volumes, cliquez sur Create. Configurez les paramètres suivants et cliquez sur OK.
Paramètre
Description
Obligatoire
Par défaut
Exemple
PV type
Sélectionnez NAS.
Oui
—
NAS
Name
Nom du PV. Doit être unique au sein du cluster.
Oui
—
pv-nasCapacity
Sert uniquement à la mise en correspondance avec le PVC. Ne limite pas le stockage réel. Consultez les rubriques Systèmes de fichiers NAS General-purpose et Systèmes de fichiers Extreme NAS pour connaître les limites de capacité.
Oui
—
5 GiAccess mode
ReadWriteMany : plusieurs nœuds montent le volume en lecture-écriture. ReadWriteOnce : un seul nœud.
Oui
—
ReadWriteManyEnable CNFS
Active le Container Network File System (CNFS) pour l'O&M automatisé, l'accélération par cache et la surveillance des performances. Consultez la rubrique Créer un CNFS pour gérer un système de fichiers NAS (recommandé) afin de gérer les systèmes de fichiers existants.
Non
Désactivé
Désactivé
Mount target domain name
Disponible lorsque CNFS est désactivé. Adresse du point de montage NAS. Sélectionnez un point de montage existant ou saisissez un domaine personnalisé. Consultez la rubrique Gérer les points de montage pour rechercher les adresses.
Oui (lorsque CNFS est désactivé)
—
0c47****-mpk25.cn-shenzhen.nas.aliyuncs.coMount path (Avancé)
Sous-répertoire NAS à monter. Pour Extreme NAS, doit commencer par
/share(par exemple,/share/data). Les répertoires inexistants sont créés automatiquement.Non
/(racine)/dataReclaim policy
Retain (par défaut) : le PV et les données NAS sont conservés lors de la suppression du PVC ; un nettoyage manuel est requis. Delete : nécessite
archiveOnDelete. Les PV statiques ne prennent pas en chargearchiveOnDelete, donc le PV et les données persistent quoi qu'il arrive. Consultez la rubrique Utiliser des volumes NAS provisionnés dynamiquement pour la configuration dearchiveOnDelete.Non
Retain
RetainMount options
Version du protocole NFS et indicateurs de montage. NFSv3 offre de meilleures performances pour les lectures d'entraînement ML sans écritures concurrentes.
Non
—
nolock,tcp,noresvportvers=3Label
Libellés pour le PV.
Non
—
pv-nas
Le PV apparaît sur la page Persistent Volumes.
Créer un PVC
Dans le volet de navigation, sélectionnez Storage > Persistent Volume Claims.
-
Sur la page Persistent Volume Claims, cliquez sur Create. Configurez les paramètres suivants et cliquez sur OK.
Paramètre
Description
Obligatoire
Par défaut
Exemple
PVC type
Sélectionnez NAS.
Oui
—
NAS
Name
Nom du PVC. Doit être unique au sein du cluster.
Oui
—
pvc-nasAllocation mode
Use Existing Persistent Volume : se lie au PV ci-dessus. Create Volume : provisionne un nouveau PV directement.
Oui
—
Use Existing Persistent Volume
Existing volumes
Le PV créé précédemment.
Oui (lors de l'utilisation d'un PV existant)
—
pv-nasCapacity
Capacité de stockage demandée. Sert uniquement à la mise en correspondance PVC-PV.
Oui
—
5
Vérifier le PV et le PVC
Confirmez que le PVC est lié au PV. Connectez-vous à n'importe quel nœud du cluster ACK et exécutez :
kubectl get pvc pvc-nas
La sortie affiche le PVC dans l'état Bound :
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc-nas Bound pv-nas 5Gi RWX 1m
Si l'état est Pending, vérifiez que le nom du PV et les modes d'accès correspondent.
Étape 4 : Alimenter le PVC avec des données
Un cluster Kubernetes accède aux données partagées via des PVC (qui pointent vers l'instance NAS créée à l'étape 1) ; il vous suffit donc d'alimenter le backend NAS du PVC. La procédure suivante crée deux tâches Kubernetes qui copient les jeux de données MNIST PyTorch et TensorFlow depuis des images de conteneur d'exemple vers le NAS, dans les répertoires spécifiés. L'exemple utilise le PVC pvc-nas de l'étape 3.
-
Créez un fichier nommé
prepare-pytorch-mnist-data.yamlavec le contenu suivant :apiVersion: batch/v1 kind: Job metadata: name: prepare-pytorch-mnist-data namespace: default spec: completions: 1 parallelism: 1 backoffLimit: 3 ttlSecondsAfterFinished: 3600 template: spec: containers: - name: pytorch-mnist-example image: kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/pytorch-mnist-example:2.5.1-cuda12.4-cudnn9-runtime imagePullPolicy: Always command: - /bin/bash - -c args: - | set -eux mkdir -p /mnt/pytorch_data/MNIST/raw cp -r /data/MNIST/raw/* /mnt/pytorch_data/MNIST/raw || { echo "Copy failed"; exit 1; } echo "MNIST data prepared successfully at /mnt/pytorch_data/MNIST/raw." resources: requests: cpu: 100m memory: 128Mi limits: cpu: 100m memory: 128Mi volumeMounts: - name: training-data mountPath: /mnt volumes: - name: training-data persistentVolumeClaim: claimName: pvc-nas restartPolicy: Never -
Créez la tâche pour copier le jeu de données PyTorch MNIST vers
/pytorch_datasur le NAS :# Create the Job kubectl create -f prepare-pytorch-mnist-data.yaml # Wait for the Job to complete kubectl wait --for=condition=complete --namespace=default --timeout=300s job/prepare-pytorch-mnist-dataLorsque la tâche se termine avec succès, la sortie est la suivante :
job.batch/prepare-pytorch-mnist-data condition met -
Créez un fichier nommé
prepare-tensorflow-mnist-data.yamlavec le contenu suivant :apiVersion: batch/v1 kind: Job metadata: name: prepare-tensorflow-mnist-data namespace: default spec: completions: 1 parallelism: 1 backoffLimit: 3 ttlSecondsAfterFinished: 3600 template: spec: containers: - name: tensorflow-mnist-example image: kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/tensorflow-mnist-example:2.15.0-gpu imagePullPolicy: Always command: - /bin/bash - -c args: - | set -eux mkdir -p /mnt/tf_data cp -r /data/mnist.npz /mnt/tf_data/mnist.npz || { echo "Copy failed"; exit 1; } echo "MNIST data prepared successfully at /mnt/tf_data/mnist.npz." resources: requests: cpu: 100m memory: 128Mi limits: cpu: 100m memory: 128Mi volumeMounts: - name: training-data mountPath: /mnt volumes: - name: training-data persistentVolumeClaim: claimName: pvc-nas restartPolicy: Never -
Créez la tâche pour copier le jeu de données TensorFlow MNIST vers
/tf_datasur le NAS :# Create the Job kubectl create -f prepare-tensorflow-mnist-data.yaml # Wait for the Job to complete kubectl wait --for=condition=complete --namespace=default --timeout=300s job/prepare-tensorflow-mnist-dataLorsque la tâche se termine avec succès, la sortie est la suivante :
job.batch/prepare-tensorflow-mnist-data condition met
Cet exemple utilise le PVC nommépvc-nasdans ledefaultnamespace. Si votre PVC porte un nom différent ou se trouve dans un autre namespace, ajustez les manifests en conséquence.
/tf_data contient les données TensorFlow MNIST et /pytorch_data contient les données PyTorch MNIST. Les deux sont accessibles à tout pod qui monte pvc-nas.
Étapes suivantes
Soumettez une tâche d'entraînement Arena avec
--datapour monterpvc-nas.Pour isoler les environnements utilisateur, créez des PVC distincts pointant vers différents sous-répertoires du même système de fichiers NAS.
Pour les charges de travail de production, envisagez d'activer CNFS.