Utiliser des volumes persistants avec AKS activé par Azure Arc

S’applique à : AKS sur Azure Stack HCI 22H2, AKS sur Windows Server

Cet article explique comment approvisionner, utiliser et supprimer des volumes persistants qui fournissent un stockage à long terme pour une utilisation avec des pods Kubernetes dans AKS activés par Azure Arc (AKS Arc).

Un volume persistant représente un élément de stockage qui a été provisionné pour une utilisation avec des pods Kubernetes. Un volume persistant peut être utilisé par un ou plusieurs pods et est destiné au stockage à long terme. Il est également indépendant des cycles de vie des pods ou des nœuds.

Bien que vous puissiez provisionner un volume persistant pour les nœuds Windows et Linux, cet article explique comment créer un volume persistant à utiliser dans votre application Windows. Pour plus d’informations, consultez Volumes persistants dans Kubernetes.

Avant de commencer

Voici ce dont vous avez besoin pour commencer :

Créer une revendication de volume persistant

Une revendication de volume persistant (PVC) est utilisée pour configurer automatiquement le stockage basé sur une classe de stockage. Pour créer une revendication de volume, créez tout d’abord un fichier nommé pvc-akshci-csi.yaml et copiez-y la définition YAML suivante. Le PVC exige un disque d’une taille de 10 Go avec un accès ReadWriteOnce. La classe de stockage default est spécifiée en tant que classe de stockage (vhdx).

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
 name: pvc-akshci-csi
spec:
 accessModes:
 - ReadWriteOnce
 resources:
  requests:
   storage: 10Gi

Pour créer le volume, exécutez les commandes suivantes dans une session PowerShell d’administration sur l’un des serveurs du cluster Azure Stack HCI. Utilisez une méthode telle que Enter-PSSession ou Bureau à distance pour vous connecter au serveur.

kubectl create -f pvc-akshci-csi.yaml 

La sortie suivante indique que votre revendication de volume persistant a été créée avec succès :

Sortie :

persistentvolumeclaim/pvc-akshci-csi created

Utiliser le volume persistant

Pour utiliser un volume persistant, créez un fichier winwebserver.yaml et copiez-y la définition YAML suivante. Créez ensuite un pod avec un accès à la revendication de volume persistant et à vhdx.

Dans la définition YAML suivante, mountPath est le chemin d’accès pour monter un volume à l’intérieur d’un conteneur. Après une création réussie du pod, vous voyez le sous-répertoire mnt créé dans C :\ et le sous-répertoire akshciscsi créé à l’intérieur de mnt.

apiVersion: apps/v1 
kind: Deployment 
metadata: 
  labels: 
    app: win-webserver 
  name: win-webserver 
spec: 
  replicas: 1 
  selector: 
    matchLabels: 
      app: win-webserver 
  template: 
    metadata: 
      labels: 
        app: win-webserver 
      name: win-webserver 
    spec: 
     containers: 
      - name: windowswebserver 
        image: mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019 
        ports:  
          - containerPort: 80    
        volumeMounts: 
            - name: akshciscsi 
              mountPath: "/mnt/akshciscsi" 
     volumes: 
        - name: akshciscsi 
          persistentVolumeClaim: 
            claimName:  pvc-akshci-csi 
     nodeSelector: 
      kubernetes.io/os: windows 

Pour créer un pod avec la définition YAML ci-dessus, exécutez :

kubectl create -f winwebserver.yaml 

Pour vous assurer que le pod est en cours d’exécution, exécutez la commande suivante. Patientez quelques minutes jusqu’à ce que le pod soit en cours d’exécution, car l’extraction de l’image prend du temps :

kubectl get pods -o wide 

Lorsque votre pod est en cours d’exécution, affichez l’état du pod en exécutant la commande suivante :

kubectl.exe describe pod %podName% 

Pour vérifier que votre volume a été monté dans le pod, exécutez la commande suivante :

kubectl exec -it %podname% cmd.exe 

Supprimer une revendication de volume persistant

Avant de supprimer une revendication de volume persistant, vous devez supprimer le déploiement d’application en exécutant la commande suivante :

kubectl delete deployments win-webserver

Vous pouvez ensuite supprimer une revendication de volume persistant en exécutant :

kubectl delete PersistentVolumeClaim pvc-akshci-csi

Étapes suivantes