Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Mount a statically provisioned NAS volume

Dernière mise à jour :Aug 11, 2026

Cette rubrique explique comment monter un volume Alibaba Cloud Network Attached Storage (NAS) sur les pods d'un cluster Container Service for Kubernetes (ACK) à l'aide du provisionnement statique. Le provisionnement statique vous permet de connecter des pods à un système de fichiers NAS existant pour offrir un stockage persistant et partagé accessible simultanément par plusieurs pods.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

Pour chiffrer les données du volume NAS, configurez le type de chiffrement lors de la création du système de fichiers NAS, et non ultérieurement.

Notes d'utilisation

Contrainte Détail
Chemin Extreme NAS Le champ path doit être un sous-répertoire de /share (par exemple, /share/path1). Le NAS général utilise / par défaut.
Écritures simultanées de pods Un système de fichiers NAS peut être monté sur plusieurs pods simultanément. Si plusieurs pods écrivent dans le même chemin, votre application doit gérer la synchronisation des données.
Permissions du répertoire racine Les permissions, le propriétaire et le groupe du répertoire / d'un système de fichiers NAS ne peuvent pas être modifiés.
securityContext.fsgroup La définition de ce paramètre amène kubelet à exécuter chmod ou chown après le montage du volume, ce qui augmente le temps de montage. Pour une solution de contournement, consultez la section Le temps de montage d'un volume NAS est prolongé.

Cas d'utilisation

  • Applications ayant des exigences élevées en matière d'E/S disque

  • Partage de fichiers entre plusieurs hôtes — par exemple, utilisation d'un volume NAS comme serveur de fichiers partagé

Monter un volume NAS à l'aide de la console

Étape 1 : Créer un Persistent Volume (PV)

  1. Connectez-vous à la console ACK et cliquez sur Clusters dans le volet de navigation de gauche.

  2. Sur la page Clusters, cliquez sur le nom du cluster cible ou sur Details dans la colonne Actions.

  3. Dans le volet de navigation de gauche de la page des détails du cluster, choisissez Volumes > Persistent Volumes.

  4. Sur la page Persistent Volumes, cliquez sur Create.

  5. Dans la boîte de dialogue Create PV, configurez les paramètres.

    Pour Extreme NAS, Mount Path doit commencer par /share , par exemple /share/data .
    Paramètre Description Obligatoire Par défaut
    PV Type Sélectionnez NAS. Oui
    Name Nom du PV. Il doit être unique au sein du cluster. Exemple : pv-nas. Oui
    Capacity Capacité allouée au PV. Les systèmes de fichiers NAS n'ont pas de limite de capacité inhérente ; cette valeur définit l'enregistrement du PV, et non un quota NAS. Oui
    Access Mode Sélectionnez ReadWriteMany ou ReadWriteOnce. Oui ReadWriteMany
    Mount Target Domain Name Adresse de montage permettant au cluster d'accéder au système de fichiers NAS. Sélectionnez Select Mount Target ou spécifiez un nom de domaine Custom. Oui
    Mount Path (Avancé, facultatif) Sous-répertoire du système de fichiers NAS à monter. Si le répertoire n'existe pas, il est créé automatiquement. Non / (NAS général) ou /share (Extreme NAS)
    Reclaim Policy Lorsque le PVC est supprimé, le PV et le système de fichiers NAS sont conservés et doivent être supprimés manuellement. Non Retain
    Mount Options Paramètres de montage NFS, y compris la version du protocole NFS. Utilisez NFS v3 — Extreme NAS prend uniquement en charge la version v3. Pour plus de détails, consultez la section Protocole NFS. Non
    Label Libellés à ajouter au PV. Non
  6. Cliquez sur OK.

Étape 2 : Créer un Persistent Volume Claim (PVC)

  1. Dans le volet de navigation de gauche de la page des détails du cluster, choisissez Volumes > Persistent Volume Claims.

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

  3. Dans la boîte de dialogue Create PVC, configurez les paramètres.

    Si aucun PV n'existe encore, définissez Allocation Mode sur Create Volume pour créer un PV directement.
    Paramètre Description Obligatoire
    PVC Type Sélectionnez NAS. Oui
    Name Nom du PVC. Il doit être unique au sein du cluster. Oui
    Allocation Mode Sélectionnez Existing Volumes pour lier le PVC au PV créé à l'étape 1. Oui
    Existing Volumes Cliquez sur Select PV, trouvez le PV cible et cliquez sur Select dans la colonne Actions. Oui
    Capacity Capacité demandée par le PVC. Elle ne peut pas dépasser la capacité du PV lié. Oui
  4. Cliquez sur OK. Une fois le PVC créé, son statut passe à Bound, confirmant qu'il est lié au PV.

Étape 3 : Créer une application

  1. Dans le volet de navigation de gauche de la page des détails du cluster, choisissez Workloads > Deployments.

  2. Sur la page Deployments, cliquez sur Create From Image.

  3. Configurez les paramètres clés ci-dessous, puis cliquez sur Create. Pour tous les autres paramètres, consultez la section Créer une application sans état à l'aide d'un Deployment.

    Section Paramètre Exemple
    Basic Information Name nas-test
    Basic Information Replicas 2
    Container Image Name anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
    Container Required Resources 0,25 cœur, 512 Mio
    Volume Mount Source Sélectionnez le PVC créé à l'étape 2, par exemple pvc-nas.
    Volume Container Path /data
  4. Vérifiez le statut du déploiement : sur la page Deployments, cliquez sur le nom de l'application, puis confirmez que tous les pods de l'onglet Pods sont dans l'état Running.

Monter un volume NAS à l'aide de kubectl

Les trois fichiers YAML ci-dessous utilisent le pilote CSI (Container Storage Interface) NAS (nasplugin.csi.alibabacloud.com) pour monter le système de fichiers NAS dans les pods.

Étape 1 : Créer un PV

Créez le fichier pv-nas.yaml avec le contenu suivant, puis appliquez-le.

kubectl create -f pv-nas.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-nas
  labels:
    alicloud-pvname: pv-nas
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  csi:
    driver: nasplugin.csi.alibabacloud.com
    volumeHandle: pv-nas
    volumeAttributes:
      server: "2564f4****-ysu87.cn-shenzhen.nas.aliyuncs.com"
      path: "/csi"
  mountOptions:
  - nolock,tcp,noresvport
  - vers=3
Paramètre Description Obligatoire
name Nom du PV. Oui
labels Libellés utilisés par le sélecteur du PVC pour se lier à ce PV. Non
storage Capacité allouée au PV. Oui
accessModes Mode d'accès au volume. Oui
driver Identifiant du pilote NAS CSI : nasplugin.csi.alibabacloud.com. Oui
volumeHandle ID unique de ce PV. Il doit être unique parmi tous les PV du cluster. Oui
server Nom de domaine de la cible de montage NAS. Oui
path Sous-répertoire du système de fichiers NAS à monter. Pour Extreme NAS, il doit s'agir d'un sous-répertoire de /share. Oui
vers Version du protocole NFS. Utilisez 3 — Extreme NAS prend uniquement en charge la version v3. Oui

Étape 2 : Créer un PVC

Créez le fichier pvc-nas.yaml avec le contenu suivant. Le champ selector utilise le libellé du PV pour lier ce PVC au PV spécifique créé à l'étape 1.

kubectl create -f pvc-nas.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-nas
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  selector:
    matchLabels:
      alicloud-pvname: pv-nas
Paramètre Description
name Nom du PVC.
accessModes Doit correspondre au mode d'accès du PV.
storage Capacité demandée. Elle ne peut pas dépasser la capacité du PV.
matchLabels Sélecteur de libellés qui lie ce PVC au PV cible.

Étape 3 : Créer un Deployment

Créez le fichier nas.yaml avec le contenu suivant. Cela crée un Deployment nommé nas-static avec deux répliques, chacune montant le PVC sur /data.

kubectl create -f nas.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nas-static
  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: pvc-nas
Paramètre Description
mountPath Chemin à l'intérieur du conteneur où le volume NAS est monté.
claimName Nom du PVC à lier. Il doit correspondre au PVC créé à l'étape 2.

Vérifiez que les pods sont en cours d'exécution :

kubectl get pod

Résultat attendu :

NAME                          READY   STATUS    RESTARTS   AGE
nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
nas-static-c5bb4746c-4****    1/1     Running   0          32s

Vérifier la persistance

Cette procédure confirme que les données écrites dans le volume NAS survivent à la suppression et à la recréation des pods.

  1. Exécutez la commande suivante pour afficher les noms des pods de l'application déployée.

    kubectl get pod

    Résultat attendu :

    NAME                          READY   STATUS    RESTARTS   AGE
    nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
    nas-static-c5bb4746c-4****    1/1     Running   0          32s
  2. Confirmez que /data est initialement vide dans l'un des pods :

    kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

    Aucun résultat n'est renvoyé, ce qui confirme l'absence de fichiers.

  3. Créez un fichier de test dans /data :

    kubectl exec nas-static-5b5cdb85f6-n**** -- touch /data/nas
  4. Vérifiez que le fichier a bien été créé :

    kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

    Résultat attendu :

    nas
  5. Supprimez le pod :

    kubectl delete pod nas-static-5b5cdb85f6-n****
  6. Dans un terminal distinct, observez la recréation du pod par Kubernetes :

    kubectl get pod -w -l app=nginx
  7. Une fois que le nouveau pod atteint l'état Running, obtenez son nom :

    kubectl get pod

    Résultat attendu :

    NAME                          READY   STATUS    RESTARTS   AGE
    nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
    nas-static-c5bb4746c-4****    1/1     Running   0          32s
  8. Vérifiez que le fichier existe toujours dans le pod recréé :

    kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

    Résultat attendu :

    nas

    Le fichier nas est présent, ce qui confirme que les données du volume NAS persistent lors des redémarrages de pods.

Vérifier le stockage partagé

Cette procédure confirme que les données écrites dans le volume NAS depuis un pod sont immédiatement visibles dans tous les autres pods montant le même volume.

  1. Affichez les noms des pods où l'application est déployée, puis vérifiez les fichiers dans /data des deux pods.

    kubectl get pod

    Résultat attendu :

    NAME                          READY   STATUS    RESTARTS   AGE
    nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
    nas-static-c5bb4746c-4****    1/1     Running   0          32s
    kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data
    kubectl exec nas-static-c5bb4746c-4**** -- ls /data
  2. Créez un fichier dans /data d'un pod :

    kubectl exec nas-static-5b5cdb85f6-n**** -- touch /data/nas
  3. Vérifiez que le fichier apparaît dans les deux pods :

    kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

    Résultat attendu :

    nas
    kubectl exec nas-static-c5bb4746c-4**** -- ls /data

    Résultat attendu :

    nas

    Le même fichier est visible dans les deux pods, ce qui confirme qu'ils partagent le même volume NAS.