Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Configurer un volume NAS partagé

Dernière mise à jour :Sep 06, 2026

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

  1. Connectez-vous à la console NAS. Dans le volet de navigation de gauche, sélectionnez File System > File System List.

  2. Dans la barre de navigation supérieure, sélectionnez le groupe de ressources et la région de votre système de fichiers.

    image

  3. 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 .
  4. Dans le panneau Mount, configurez les options de montage :

    1. Sélectionnez un point de montage et cliquez sur Next.

    2. 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.

      Remarque

      Cette 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.

    3. 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

  5. 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.

    image

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

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.Console NAS

  2. Sur la page Clusters, cliquez sur le cluster cible. Dans le volet de navigation de gauche, sélectionnez Volumes > Persistent Volumes.

  3. 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-nas

    Capacity

    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 Gi

    Access mode

    ReadWriteMany : plusieurs nœuds montent le volume en lecture-écriture. ReadWriteOnce : un seul nœud.

    Oui

    —

    ReadWriteMany

    Enable 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.co

    Mount 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)

    /data

    Reclaim 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 charge archiveOnDelete, 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 de archiveOnDelete.

    Non

    Retain

    Retain

    Mount 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,noresvport vers=3

    Label

    Libellés pour le PV.

    Non

    —

    pv-nas

Le PV apparaît sur la page Persistent Volumes.

Créer un PVC

  1. Dans le volet de navigation, sélectionnez Storage > Persistent Volume Claims.

  2. 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-nas

    Allocation 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-nas

    Capacity

    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.

  1. Créez un fichier nommé prepare-pytorch-mnist-data.yaml avec 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
  2. Créez la tâche pour copier le jeu de données PyTorch MNIST vers /pytorch_data sur 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-data

    Lorsque la tâche se termine avec succès, la sortie est la suivante :

    job.batch/prepare-pytorch-mnist-data condition met
  3. Créez un fichier nommé prepare-tensorflow-mnist-data.yaml avec 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
  4. Créez la tâche pour copier le jeu de données TensorFlow MNIST vers /tf_data sur 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-data

    Lorsque 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-nas dans le default namespace. 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 --data pour monter pvc-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.