Tous les produits
Search
Centre de documentation

Container Compute Service:Use NAS volumes

Dernière mise à jour :Aug 12, 2026

Pour les applications nécessitant des données partagées et des performances d'E/S élevées, utilisez Apsara File Storage NAS pour vos volumes persistants (PV). Cette rubrique explique comment monter un volume NAS sur une application, puis vérifier son accès partagé et la persistance des données.

Contexte

NAS est un système de fichiers distribué offrant un accès partagé, une extensibilité élastique, une haute fiabilité et des performances élevées. Il convient aux applications exigeant le partage de données et des performances d'E/S importantes. Pour plus d'informations, consultez Présentation du stockage.

Remarque
  • Pour plus de détails sur les spécifications de stockage, les performances, la facturation ainsi que les régions et zones prises en charge, reportez-vous à NAS universel et NAS Extreme.

  • Le NAS universel et le NAS Extreme imposent des limites différentes concernant la connectivité de montage, le nombre de systèmes de fichiers et les types de protocoles. Pour en savoir plus, consultez Limites.

Vous pouvez monter et utiliser des volumes NAS selon l'une des méthodes suivantes :

Prérequis

Le composant managed-csiprovisioner doit être installé dans le cluster ACS.

Remarque

Accédez à la page de gestion du cluster ACS dans la console ACS. Dans le volet de navigation de gauche, choisissez Operations > Add-ons. Sous l'onglet Storage, vérifiez si managed-csiprovisioner est installé.

Limites

  • Le protocole SMB n'est pas pris en charge pour le montage des systèmes de fichiers NAS.

  • Les systèmes de fichiers NAS ne peuvent être montés que sur des pods situés dans le même VPC.

    Remarque

    Le montage des systèmes de fichiers NAS entre plusieurs zones d'un même VPC est possible.

  • Seul le protocole NFSv3 est autorisé pour le montage des systèmes de fichiers NAS.

Points d'attention

  • NAS fournit un stockage partagé. Un même volume NAS peut donc être monté sur plusieurs pods. Si plusieurs pods modifient simultanément les mêmes données, votre application doit gérer la synchronisation.

  • Lors du montage d'un volume NAS, ne configurez pas securityContext.fsgroup dans le fichier YAML de l'application, sous peine d'échec du montage.

    Remarque

    Il est impossible de modifier les permissions, le propriétaire ou le groupe du répertoire racine / d'un système de fichiers NAS.

  • Une fois un volume NAS monté, ne supprimez pas sa cible de montage, car cela risque de bloquer le système d'exploitation.

Utiliser un système de fichiers NAS existant

Étape 1 : Obtenir les informations du système de fichiers NAS

  1. Récupérez l'ID du VPC et l'ID du vSwitch utilisés par les pods ACS.

    Remarque

    Ces informations sont disponibles dans la console. Vous pouvez également exécuter la commande kubectl get cm -n kube-system acs-profile -o yaml pour afficher le fichier YAML de la ConfigMap acs-profile. L'ID du VPC et l'ID du vSwitch figurent respectivement dans les champs vpcId et vSwitchIds.

    1. Connectez-vous à la console ACS.

    2. Sur la page , cliquez sur le nom du cluster pour accéder à sa page de gestion.

    3. Dans le volet de navigation de gauche, choisissez Configuration > ConfigMaps.

    4. En haut de la page , remplacez le namespace par kube-system. Recherchez ensuite acs-profile et cliquez sur .

    5. Récupérez l'ID du VPC et l'ID du vSwitch depuis les champs vpcId et vSwitchIds.

  2. Vérifiez que le système de fichiers NAS existant répond aux exigences et obtenez l'adresse de la cible de montage.

    1. Connectez-vous à la console NAS. Dans le volet de navigation de gauche, cliquez sur File System List.

    2. Localisez le système de fichiers NAS cible et assurez-vous que sa région, sa zone et son type de protocole sont conformes aux exigences.

      • Le montage inter-VPC n'étant pas pris en charge, NAS ne fonctionne pas entre différentes régions. Le système de fichiers NAS doit impérativement se trouver dans la même région que votre cluster ACS.

      • Au sein d'un même VPC, le montage entre zones est possible. Toutefois, pour des performances optimales, placez de préférence le système de fichiers NAS et les pods du cluster ACS dans la même zone.

      • Confirmez que le type de protocole du système de fichiers NAS est NFS. Les systèmes utilisant le protocole SMB ne peuvent pas être montés.

    3. Validez la conformité de la cible de montage et notez son adresse.

      1. Cliquez sur l'ID du système de fichiers.

      2. Sur la page de détails du système de fichiers, cliquez sur Mount Targets dans le volet de navigation de gauche.

      3. Dans la section Mount Target, vérifiez qu'une cible de montage existante satisfait aux exigences, puis récupérez son adresse.

        Remarque
        • Une cible de montage est créée automatiquement lors de la création d'un système de fichiers NAS universel. Pour un système NAS Extreme, vous devez la créer manuellement.

        • Si aucune cible de montage existante ne convient, créez-en une nouvelle. Pour plus d'informations, consultez Gérer les cibles de montage.

        • Le VPC de la cible de montage doit correspondre à celui du cluster ACS, faute de quoi le montage échouera.

        • Pour optimiser les performances, il est recommandé d'utiliser le même vSwitch pour la cible de montage et les pods du cluster ACS.

        • La cible de montage doit présenter le statut Available.

Étape 2 : Créer une StorageClass

  1. Adaptez le contenu YAML ci-dessous selon la description des paramètres, puis enregistrez-le sous le nom nas-sc.yaml.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas-subpath
    mountOptions:
    - nolock,tcp,noresvport
    - vers=3
    parameters:
      volumeAs: subpath
      server: "*******-mw***.cn-shanghai.nas.aliyuncs.com:/csi"
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain

    Description des paramètres :

    Paramètre

    Description

    volumeAs

    Mode de provisionnement. Définissez cette valeur sur subpath pour créer chaque volume persistant (PV) sous forme de sous-répertoire. Chaque PV correspond alors à un sous-répertoire du système de fichiers NAS.

    server

    Adresse de la cible de montage du système de fichiers NAS, au format mount-target-address:path, où path désigne le sous-répertoire NAS à monter.

    • En l'absence de chemin spécifié, le répertoire racine est monté par défaut.

    • Si le répertoire n'existe pas encore dans le système de fichiers NAS, il est créé automatiquement avant le montage.

    Le répertoire racine est / pour les systèmes NAS universels et /share pour les systèmes NAS Extreme.

    provisioner

    Type de provisionneur. Cette valeur doit être définie sur nasplugin.csi.alibabacloud.com afin d'utiliser le plug-in CSI NAS d'Alibaba Cloud.

    reclaimPolicy

    Politique de récupération du PV. Seule la valeur Retain est prise en charge. Elle garantit la conservation du système de fichiers NAS et de la cible de montage associés lors de la suppression du PV.

Étape 3 : Créer une PVC

kubectl

  1. Enregistrez le contenu suivant dans un fichier nommé nas-pvc.yaml.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-pvc
      annotations:
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 20Gi
      storageClassName: alicloud-nas-subpath

    Description des paramètres :

    Paramètre

    Description

    accessModes

    Mode d'accès.

    storage

    Capacité du volume persistant à créer.

    storageClassName

    Nom de la StorageClass à utiliser.

  2. Créez la PVC.

    kubectl create -f nas-pvc.yaml
  3. Consultez le PV.

    kubectl get pv

    La sortie indique que le plug-in CSI a automatiquement créé un PV basé sur la StorageClass et l'a lié à la PVC.

    NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM             STORAGECLASS           REASON   AGE
    nas-ea7a0b6a-bec2-4e56-b767-47222d3a****   20Gi       RWX            Retain           Bound    default/nas-pvc   alicloud-nas-subpath            1m58s

Console

  1. Connectez-vous à la console ACS.

  2. Sur la page , cliquez sur le nom du cluster pour accéder à sa page de gestion.

  3. Dans le volet de navigation de gauche de la page de gestion du cluster, choisissez Volumes > Persistent Volume Claims.

  4. Sur la page Persistent Volume Claims, cliquez sur Create.

  5. Dans la boîte de dialogue, configurez les paramètres, puis cliquez sur .

    Paramètre

    Description

    Exemple

    Sélectionnez NAS.

    NAS

    Nom de la PVC. Saisissez un nom personnalisé. Respectez les exigences de formatage indiquées à l'écran.

    nas-pvc

    Sélectionnez .

    Dynamic Provisioning Using StorageClass

    Capacité du volume persistant à créer.

    20Gi

    ReadWriteMany et ReadWriteOnce sont pris en charge.

    ReadWriteMany

    Une fois créée, la PVC apparaît sur la page . Elle est liée à un PV créé automatiquement, qui constitue un volume persistant NAS. Consultez les détails de ce PV sur la page .

Étape 4 : Créer une application et monter le volume

kubectl

  1. Créez un fichier nommé nas-test.yaml contenant le contenu suivant.

    Ce fichier YAML définit un Deployment composé de deux pods. Chacun utilise la PVC nommée nas-pvc et monte le volume sur le chemin /data.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-test
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-nas
                mountPath: /data
          volumes:
            - name: pvc-nas
              persistentVolumeClaim:
                claimName: nas-pvc
  2. Créez le Deployment et montez le volume persistant NAS.

    kubectl create -f nas-test.yaml
  3. Vérifiez l'état de déploiement des pods du Deployment.

    kubectl get pod | grep nas-test

    La sortie suivante confirme la création de deux pods.

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  4. Vérifiez le chemin de montage.

    kubectl exec nas-test-****-***a -- df -h /data

    Sortie attendue :

    Filesystem                                        Size  Used Avail Use% Mounted on
    350514*****-mw***.cn-shanghai.nas.aliyuncs.com:/   10P     0   10P   0% /data

    Cette sortie confirme le montage réussi du système de fichiers.

Console

  1. Dans le volet de navigation de gauche de la page de gestion du cluster, choisissez Workloads > .

  2. Sur la page , cliquez sur .

  3. Configurez les paramètres du Deployment, puis cliquez sur .

    Le tableau ci-dessous décrit les paramètres principaux. Conservez les valeurs par défaut pour les autres paramètres. Pour plus d'informations, consultez Créer un Deployment sans état.

    Page de configuration

    Paramètre

    Description

    Exemple

    Nom du Deployment. Saisissez un nom personnalisé. Respectez les exigences de formatage indiquées à l'écran.

    nas-test

    Nombre de réplicas pour le Deployment.

    2

    Saisissez l'adresse de l'image servant au déploiement de l'application.

    registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest

    Définissez les ressources vCPU et mémoire requises.

    0,25 vCPU, 0,5 GiB

    Cliquez sur , puis configurez les paramètres.

    • : sélectionnez la PVC précédemment créée.

    • : saisissez le chemin dans le conteneur où monter le système de fichiers NAS.

    • Mount Source : nas-pvc

    • Container Path : /data

  4. Vérifiez l'état du déploiement de l'application.

    1. Sur la page , cliquez sur le nom de l'application.

    2. Sous l'onglet , assurez-vous que les pods sont dans l'état Running.

Créer un système de fichiers NAS comme volume

Étape 1 : Créer une StorageClass

  1. Modifiez le contenu YAML ci-dessous en fonction de la description des paramètres, puis enregistrez le fichier sous le nom nas-sc.yaml.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas-fs
    mountOptions:
    - nolock,tcp,noresvport
    - vers=3
    parameters:
      volumeAs: filesystem
      fileSystemType: standard
      storageType: Performance
      regionId: cn-shanghai
      zoneId: cn-shanghai-e
      vpcId: "vpc-2ze2fxn6popm8c2mzm****"
      vSwitchId: "vsw-2zwdg25a2b4y5juy****"
      accessGroupName: DEFAULT_VPC_GROUP_NAME
      deleteVolume: "false"
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain

    Le tableau suivant décrit les paramètres.

    Important

    La prise en charge des types de systèmes de fichiers NAS et des classes de stockage varie selon les régions et les zones de disponibilité. Assurez-vous que la région, la zone de disponibilité, le VPC et le vSwitch choisis pour le système de fichiers NAS et sa cible de montage sont compatibles avec votre cluster ACS ainsi qu'avec le VPC et le vSwitch utilisés par vos pods. Pour plus d'informations, consultez les rubriques suivantes :

    • Pour connaître les classes de stockage, les performances, la facturation ainsi que les régions et zones de disponibilité prises en charge pour les différents types de systèmes de fichiers NAS, reportez-vous à NAS universel et NAS Extreme.

    • Le NAS universel et le NAS Extreme imposent des limites différentes concernant la connectivité de montage, le nombre de systèmes de fichiers et les types de protocoles. Pour en savoir plus, consultez Limites.

    • Exécutez la commande kubectl get cm -n kube-system acs-profile -o yaml pour afficher le fichier YAML acs-profile et obtenir les ID du VPC et des vSwitch utilisés par les pods depuis les champs vpcId et vSwitchIds.

    Paramètre

    Description

    volumeAs

    Méthode de provisionnement du volume. Définissez cette valeur sur filesystem pour créer automatiquement un nouveau système de fichiers NAS pour chaque volume.

    fileSystemType

    Type du système de fichiers NAS.

    • standard (par défaut) : NAS universel. Pour plus d'informations, consultez NAS universel.

    • extreme : NAS Extreme. Pour plus d'informations, consultez NAS Extreme.

    storageType

    Classe de stockage du système de fichiers NAS.

    • Pour le NAS universel, les valeurs valides sont :

      • Performance (par défaut) : Performance

      • Capacity : Capacité

    • Pour le NAS Extreme, les valeurs valides sont :

      • standard (par défaut) : Standard

      • advanced : Avancé

    regionId

    Région où se trouve le système de fichiers NAS. Elle doit correspondre à celle de votre cluster ACS.

    zoneId

    Zone de disponibilité où se trouve le système de fichiers NAS. Choisissez une zone de disponibilité en fonction du vSwitch utilisé par les pods de votre cluster ACS.

    Remarque

    Au sein d'un même VPC, le montage d'un système de fichiers NAS entre plusieurs zones de disponibilité est possible. Pour des performances optimales, privilégiez toutefois la même zone de disponibilité.

    vpcId, vSwitchId

    Identifiants du VPC et du vSwitch pour la cible de montage du système de fichiers NAS. Ils doivent correspondre à ceux utilisés par les pods de votre cluster ACS.

    accessGroupName

    Groupe de permissions de la cible de montage pour le système de fichiers NAS. La valeur par défaut est DEFAULT_VPC_GROUP_NAME.

    provisioner

    Provisionneur. Cette valeur doit être définie sur nasplugin.csi.alibabacloud.com, ce qui spécifie l'utilisation du plug-in CSI NAS d'Alibaba Cloud.

    reclaimPolicy

    Politique de récupération du PV. La seule politique prise en charge est Retain, ce qui signifie que le système de fichiers NAS et la cible de montage correspondants sont conservés lors de la suppression du PV.

  2. Créez la StorageClass.

    kubectl create -f nas-sc.yaml
  3. Vérifiez la StorageClass.

    kubectl get sc

    Sortie attendue :

    NAME                             PROVISIONER                       RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    alicloud-nas-fs                  nasplugin.csi.alibabacloud.com    Retain          Immediate              false                  13m
    ......

Étape 2 : Créer une PersistentVolumeClaim

  1. Enregistrez le contenu suivant dans un fichier nommé nas-pvc-fs.yaml.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-pvc-fs
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: alicloud-nas-fs
      resources:
        requests:
          storage: 20Gi

    Le tableau suivant décrit les paramètres.

    Paramètre

    Description

    accessModes

    Mode d'accès.

    storage

    Capacité du volume NAS à créer.

    Remarque

    La capacité minimale du NAS Extreme est de 100 GiB. Si le type de système de fichiers NAS défini dans la StorageClass est NAS Extreme, la valeur de storage doit être supérieure ou égale à 100 GiB. Sinon, le PersistentVolume correspondant ne pourra pas être créé.

    storageClassName

    Nom de la StorageClass à utiliser.

  2. Créez la PersistentVolumeClaim.

    kubectl create -f nas-pvc-fs.yaml
  3. Vérifiez la PersistentVolumeClaim.

    kubectl get pvc

    La sortie indique que la PersistentVolumeClaim est liée au PersistentVolume créé automatiquement. Vous pouvez également consulter le système de fichiers NAS correspondant dans la console NAS.

    NAME         STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      VOLUMEATTRIBUTESCLASS  AGE
    nas-pvc-fs   Bound    nas-04a730ba-010d-4fb1-9043-476d8c38****   20Gi       RWX            alicloud-nas-fs   <unset>                14s

Étape 3 : Créer une application et monter le volume NAS

  1. Créez un fichier nommé nas-test-fs.yaml avec le contenu suivant.

    Ce fichier YAML crée un Deployment composé de deux pods. Chacun demande du stockage via la PersistentVolumeClaim nommée nas-pvc-fs et monte le volume sur le chemin /data.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-test
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-nas
                mountPath: /data
          volumes:
            - name: pvc-nas
              persistentVolumeClaim:
                claimName: nas-pvc-fs
  2. Créez le Deployment et montez le volume NAS.

    kubectl create -f nas-test-fs.yaml
  3. Vérifiez l'état de déploiement des pods du Deployment.

    kubectl get pod | grep nas-test

    La sortie suivante confirme la création de deux pods.

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  4. Vérifiez le chemin de montage.

    kubectl exec nas-test-****-***a -- df -h /data

    Sortie attendue :

    Filesystem                                        Size  Used Avail Use% Mounted on
    350514*****-mw***.cn-shanghai.nas.aliyuncs.com:/   10P     0   10P   0% /data

    Cette sortie confirme le montage réussi du système de fichiers.

Monter un système de fichiers NAS existant via un volume NFS

Étape 1 : Obtenir les informations du système de fichiers NAS

Pour plus d'informations sur l'obtention de l'adresse de la cible de montage NAS, consultez Obtenir les informations du système de fichiers NAS.

Étape 2 : Créer une application et monter le NAS

  1. Créez un fichier nommé nas-test-nfs.yaml avec le contenu suivant.

    Ce fichier YAML définit un Deployment composé de deux pods. Chaque pod monte le système de fichiers NAS sur le chemin /data à l'aide d'un volume nommé nfs-nas.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-test
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: nfs-nas
                mountPath: /data
          volumes:
          - name: nfs-nas
            nfs:
              server: file-system-id.region.nas.aliyuncs.com    # The mount target address of the Alibaba Cloud NAS file system. Replace this with your actual value. Example: 7bexxxxxx-xxxx.ap-southeast-1.nas.aliyuncs.com.
              path: /    # The directory path in the NAS file system. The directory must be an existing directory or the root directory. The root directory of a General-purpose NAS file system is "/", and the root directory of an Extreme NAS file system is "/share".
  2. Créez le Deployment et montez le volume NAS.

    kubectl create -f nas-test-nfs.yaml
  3. Vérifiez l'état de déploiement des pods du Deployment.

    kubectl get pod | grep nas-test

    La sortie suivante confirme la création de deux pods.

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  4. Vérifiez le chemin de montage.

    kubectl exec nas-test-****-***a -- df -h /data

    Sortie attendue :

    Filesystem                                        Size  Used Avail Use% Mounted on
    350514*****-mw***.cn-shanghai.nas.aliyuncs.com:/   10P     0   10P   0% /data

    Cette sortie confirme le montage réussi du système de fichiers.

Vérifier le stockage partagé et persistant

Le Deployment créé dans l'exemple précédent contient deux pods qui montent le même système de fichiers NAS. Vérifiez cette configuration comme suit :

  • Créez un fichier dans un pod et affichez-le dans l'autre pour valider le stockage partagé.

  • Redémarrez le Deployment et vérifiez si les données persistent dans un nouveau pod afin de confirmer la persistance du stockage.

  1. Consultez les informations des pods.

    kubectl get pod | grep nas-test

    Exemple de sortie :

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  2. Validez le stockage partagé.

    1. Créez un fichier dans l'un des pods.

      Cet exemple utilise le pod nommé nas-test-****-***a :

      kubectl exec nas-test-****-***a -- touch /data/test.txt
    2. Affichez le fichier dans l'autre pod.

      Cet exemple utilise le pod nommé nas-test-****-***b :

      kubectl exec nas-test-****-***b -- ls /data

      La sortie attendue affiche le nouveau fichier test.txt, ce qui confirme son partage entre les pods.

      test.txt
  3. Validez la persistance du stockage.

    1. Redémarrez le Deployment.

      kubectl rollout restart deploy nas-test
    2. Vérifiez les pods et attendez le démarrage des nouveaux pods.

      kubectl get pod | grep nas-test

      Exemple de sortie :

      nas-test-****-***c   1/1     Running   0          67s
      nas-test-****-***d   1/1     Running   0          49s
    3. Dans l'un des nouveaux pods, vérifiez que les données persistent dans le système de fichiers.

      Cet exemple utilise le pod nommé nas-test-****-***c :

      kubectl exec nas-test-****-***c -- ls /data

      La sortie confirme que les données du système de fichiers NAS persistent et sont accessibles dans le répertoire de montage du nouveau pod.

      test.txt