Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Volume de disque cloud statique pour le stockage persistant - Flexvolume

Dernière mise à jour :Aug 25, 2026

Lorsqu'un conteneur plante, les données métier des charges de travail avec état peuvent être perdues ou devenir peu fiables. Le stockage persistant permet de pallier ce risque. Cette rubrique explique comment utiliser un volume de disque cloud provisionné statiquement pour le stockage persistant avec Flexvolume.

Prérequis

Effectuez les tâches suivantes :

Contexte

Cas d'utilisation des disques cloud :

  • Services nécessitant des E/S disque élevées et ne requérant pas de partage de données, tels que MySQL et Redis.

  • Écriture rapide des journaux.

  • Persistance des données au-delà du cycle de vie d'un pod.

Si vous disposez déjà d'un disque cloud, utilisez un volume provisionné statiquement.

Créez manuellement un Persistent Volume (PV) et une Persistent Volume Claim (PVC) pour utiliser un volume de disque cloud provisionné statiquement.

Limitations

  • Un disque cloud ne peut être monté que sur un seul pod à la fois.

  • Un disque cloud ne peut être monté que sur un nœud situé dans la même zone.

Créer un PV

  1. Créez un fichier nommé pv-static.yaml.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: <your-disk-id>
      labels:
        alicloud-pvname: <your-disk-id>
        failure-domain.beta.kubernetes.io/zone: <your-zone>
        failure-domain.beta.kubernetes.io/region: <your-region>
    spec:
      capacity:
        storage: 20Gi
      accessModes:
        - ReadWriteOnce
      flexVolume:
        driver: "alicloud/disk"
        fsType: "ext4"
        options:
          volumeId: "<your-disk-id>"
    Remarque
    • alicloud-pvname: <your-disk-id> : nom du PV. Il doit correspondre à l'ID de votre disque cloud.

    • failure-domain.beta.kubernetes.io/zone: <your-zone> : zone du disque cloud, par exemple cn-hangzhou-b.

    • failure-domain.beta.kubernetes.io/region: <your-region> : région du disque cloud, par exemple cn-hangzhou.

    Pour les clusters multi-zones, spécifiez failure-domain.beta.kubernetes.io/zone et failure-domain.beta.kubernetes.io/region afin de garantir que les pods sont planifiés dans la même zone que le disque cloud.

  2. Créez le PV.

    kubectl create -f pv-static.yaml

    Verification Result

    1. Connectez-vous à la console de gestion Container Service.

    2. Dans le volet de navigation de gauche, cliquez sur Clusters.

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

    4. Dans le volet de navigation de gauche de la page de gestion du cluster, sélectionnez Volumes > Persistent Volumes. Le PV s'affiche avec une capacité de 20Gi, un mode d'accès ReadWriteOnce, une politique de récupération Retain et un statut Available.

Créer une PVC

  1. Créez un fichier nommé pvc-static.yaml.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-disk
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 20Gi
      selector:
        matchLabels:
          alicloud-pvname: <your-disk-id>
  2. Créez la PVC.

    kubectl create -f pvc-static.yaml

    Verification Result

    1. Connectez-vous à la console de gestion Container Service.

    2. Dans le volet de navigation de gauche, cliquez sur Clusters.

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

    4. Dans le volet de navigation de gauche de la page de gestion du cluster, sélectionnez Volumes > Persistent Volume Claims.

    5. La PVC s'affiche sur la page Persistent Volume Claims.

Créer une application

  1. Créez un fichier nommé static.yaml.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-static
      labels:
        app: nginx
    spec:
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            volumeMounts:
              - name: disk-pvc
                mountPath: "/data"
          volumes:
            - name: disk-pvc
              persistentVolumeClaim:
                claimName: pvc-disk
  2. Créez l'application.

    kubectl create -f static.yaml

    Verification Result

    1. Connectez-vous à la console de gestion Container Service.

    2. Dans le volet de navigation de gauche, cliquez sur Clusters.

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

    4. Dans le volet de navigation de gauche de la page de gestion du cluster, sélectionnez Workloads > Deployments.

    5. L'application s'affiche sur la page Deployments.

Vérifier la persistance des données

  1. Récupérez le nom du pod.

    kubectl get pod | grep static

    Sortie attendue :

    nginx-static-78c7dcb9d7-g****   2/2     Running     0          32s
  2. Vérifiez que le disque cloud est monté sur /data.

    kubectl exec nginx-static-78c7dcb9d7-g**** -- df | grep data

    Sortie attendue :

    /dev/vdf        20511312    45080  20449848   1% /data
  3. Listez les fichiers dans /data.

    kubectl exec nginx-static-78c7dcb9d7-g**** -- ls /data

    Sortie attendue :

    lost+found
  4. Créez un fichier nommé static dans /data.

    kubectl exec nginx-static-78c7dcb9d7-g**** -- touch /data/static
  5. Listez les fichiers dans /data.

    kubectl exec nginx-static-78c7dcb9d7-g**** -- ls /data

    Sortie attendue :

    static
    lost+found
  6. Supprimez le pod nginx-static-78c7dcb9d7-g****.

    kubectl delete pod nginx-static-78c7dcb9d7-g****

    Sortie attendue :

    pod "nginx-static-78c7dcb9d7-g****" deleted
  7. Dans un terminal distinct, observez Kubernetes supprimer et recréer le pod.

    kubectl get pod -w -l app=nginx

    Sortie attendue :

    NAME                            READY   STATUS            RESTARTS   AGE
    nginx-static-78c7dcb9d7-g****   2/2     Running           0          50s
    nginx-static-78c7dcb9d7-g****   2/2     Terminating       0          72s
    nginx-static-78c7dcb9d7-h****   0/2     Pending           0          0s
    nginx-static-78c7dcb9d7-h****   0/2     Pending           0          0s
    nginx-static-78c7dcb9d7-h****   0/2     Init:0/1          0          0s
    nginx-static-78c7dcb9d7-g****   0/2     Terminating       0          73s
    nginx-static-78c7dcb9d7-h****   0/2     Init:0/1          0          5s
    nginx-static-78c7dcb9d7-g****   0/2     Terminating       0          78s
    nginx-static-78c7dcb9d7-g****   0/2     Terminating       0          78s
    nginx-static-78c7dcb9d7-h****   0/2     PodInitializing   0          6s
    nginx-static-78c7dcb9d7-h****   2/2     Running           0          8s
  8. Récupérez le nom du pod recréé.

    kubectl get pod

    Sortie attendue :

    NAME                            READY   STATUS      RESTARTS   AGE
    nginx-static-78c7dcb9d7-h****   2/2     Running     0          14s
  9. Listez les fichiers dans /data. Le fichier static existe toujours, ce qui confirme que les données sur le disque cloud persistent lors des redémarrages de pod.

    kubectl exec nginx-static-78c7dcb9d7-h**** -- ls /data

    Sortie attendue :

    static
    lost+found