Utiliser un partage de fichiers Azure

GKE sur Azure permet d'installer des partages de fichiers Azure. Si vous disposez déjà d'un partage de fichiers Azure à utiliser avec GKE sur Azure, vous pouvez créer un objet PersistentVolume (PV) et le réserver pour un objet PersistentVolumeClaim (PVC) spécifique.

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

Avant de commencer

Stocker les informations de votre compte de stockage Azure

GKE sur Azure stocke des informations pour accéder à votre compte de stockage Azure dans un secret. Si vous n'avez pas créé de secret dans votre cluster, vous devez en ajouter un. Si vous disposez de ce secret dans votre cluster, passez à la section Créer un PersistentVolume pour un partage existant.

  1. Pour créer le secret, copiez le fichier manifeste suivant dans un fichier nommé "azure-service-account-key.yaml".

    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: azure-secret-account-key
    type: Opaque
    stringData:
      accountname: STORAGE_ACCOUNT_NAME
     
    accountkey: STORAGE_ACCOUNT_KEY

    Remplacez les éléments suivants :

    • STORAGE_ACCOUNT_NAME : nom de votre compte de stockage Azure
    • STORAGE_ACCOUNT_KEY : votre clé de compte de stockage Azure
  2. Appliquez le fichier à votre cluster à l'aide de l'outil kubectl :

    kubectl apply -f azure-service-account-key.yaml

Créer un PersistentVolume pour un partage existant

Pour importer un partage de fichiers Azure existant, spécifiez un nouveau PV dans votre cluster. Pour créer le PV, procédez comme suit :

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

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: VOLUME_NAME
    spec:
      capacity:
        storage: VOLUME_CAPACITY
     
    storageClassName: standard-rwx
     
    accessModes:
        - ReadWriteMany
     
    persistentVolumeReclaimPolicy: Retain
     
    csi:
        driver: file.csi.azure.com
       
    readOnly: false
       
    volumeHandle: VOLUME_ID

    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.
    • VOLUME_ID : ID unique du volume, formaté en tant que chaîne de RESOURCE_GROUP_NAME#STORAGE_ACCOUNT_NAME#FILESHARE_NAME#
    • FILE_SHARE_NAME : nom de partage Azure File

    Si votre compte de stockage se trouve dans un groupe de ressources différent de celui de votre cluster, vous devez ajouter une référence à un secret contenant la clé de votre compte de stockage. Pour ajouter la référence, insérez les éléments suivants dans la section spec.csi :

    # Optional. Only required if your storageAccount is in a different resource group than the cluster.
       
    nodeStageSecretRef:
          name: NODE_STAGE_SECRET_NAME
         
    namespace: NODE_STAGE_SECRET_NAMESPACE

    Remplacez les éléments suivants :

    • NODE_STAGE_SECRET_NAME : nom du secret
    • NODE_STAGE_SECRET_NAMESPACE : espace de noms contenant le secret
  2. Appliquez le code YAML à votre cluster.

    kubectl apply -f existing-volume.yaml
  3. Confirmez la création du PV avec kubectl describe 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. 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
  4. Pour supprimer le pod, utilisez la commande kubectl delete.

    kubectl delete -f nginx.yaml

Étapes suivantes