Importer un volume Azure Disk existant

Si vous disposez déjà d'un volume de disque Azure à utiliser avec GKE sur Azure, vous pouvez créer un objet PersistentVolume (PV) et le réserver pour une ressource PersistentVolumeClaim (PVC) spécifique.

Cette page explique comment créer un PV à l'aide d'un volume existant contenant des données et comment utiliser le PV dans un pod.

Avant de commencer

Créer un PersistentVolume pour un volume existant

Vous pouvez importer un volume existant en spécifiant un nouveau PV.

  1. Copiez le fichier YAML suivant dans un fichier nommé existing-volume.yaml.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: VOLUME_NAME
      annotations:
        pv.kubernetes.io/provisioned-by: disk.csi.azure.com
    spec:
      capacity:
        storage: VOLUME_CAPACITY
      accessModes:
        - ReadWriteOnce
      persistentVolumeReclaimPolicy: Retain
      storageClassName: STORAGE_CLASS_NAME
      claimRef:
        name: my-pvc
        namespace: default
      csi:
        driver: disk.csi.azure.com
        volumeHandle: /subscriptions/SUBSCRIPTION_ID/resourcegroups/RESOURCE_GROUP_NAME/providers/microsoft.compute/disks/DISK_NAME
        fsType: FILE_SYSTEM_TYPE
    

    Remplacez les éléments suivants :

    • VOLUME_NAME : nom du volume.
    • VOLUME_CAPACITY : taille du volume. Par exemple, 30Gi. Pour en savoir plus sur la spécification de la capacité de volume dans Kubernetes, consultez la page Meaning of memory.
    • STORAGE_CLASS_NAME : nom de l'objet StorageClass qui provisionne le volume. Vous pouvez par exemple utiliser la valeur par défaut standard-rwo.

    • SUBSCRIPTION_ID : ID d'abonnement Azure contenant le volume.

    • RESOURCE_GROUP_NAME : groupe de ressources Azure contenant le volume.

    • DISK_NAME : nom Azure Disk du volume.

    • FS_TYPE: type de système de fichiers du volume. Par exemple, ext4.

  2. Appliquez le code YAML à votre cluster :

    kubectl apply -f existing-volume.yaml
    
  3. Confirmez la création du PV :

    kubectl describe pv VOLUME_NAME
    

    Le résultat de cette commande contient l'état du PV.

Utiliser le volume avec un objet PersistentVolumeClaim et un pod

Après avoir importé votre volume, vous pouvez créer un PVC et un pod qui installe le PVC.

  1. Le code YAML suivant crée un PVC et l'associe à un pod exécutant le serveur Web Nginx. Copiez-le dans un fichier nommé nginx.yaml :

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: my-pvc
    spec:
      storageClassName: STORAGE_CLASS_NAME
      volumeName: VOLUME_NAME
      accessModes:
        - ACCESS_MODE
      resources:
        requests:
          storage: VOLUME_CAPACITY
    ---
    
    apiVersion: v1
    kind: Pod
    metadata:
      name: web-server
    spec:
      containers:
       - name: web-server
         image: nginx
         volumeMounts:
           - mountPath: /var/lib/www/html
             name: data
      volumes:
       - name: data
         persistentVolumeClaim:
           claimName: my-pvc
    

    Remplacez les éléments suivants :

    • STORAGE_CLASS : nom de l'objet StorageClass du PersistentVolume que vous avez créé précédemment. Exemple : standard-rwo.
    • ACCESS_MODE : mode d'accès du volume. Pour Azure Disk, utilisez ReadWriteOnce. Pour Azure File, utilisez ReadWriteMany.
    • VOLUME_CAPACITY : taille du volume. Par exemple, 30Gi.
  2. Appliquez le code YAML à votre cluster :

    kubectl apply -f nginx.yaml
    
  3. Vérifiez l'état de votre instance Nginx avec kubectl describe. Dans le résultat, STATUS doit être à l'état Running.

    kubectl describe pod web-server
    

Étapes suivantes