Partager via


Utiliser des volumes persistants avec AKS activé par Arc

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

Cet article explique comment provisionner, 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 configuré 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 local Azure. 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é correctement créée :

Sortie :

persistentvolumeclaim/pvc-akshci-csi created

Utiliser le volume persistant

Pour utiliser un volume persistant, créez un fichier nommé winwebserver.yaml, copiez et collez 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. Une fois la création réussie d’un pod, vous verrez le sous-répertoire créé en 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 cette définition YAML, 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 dans un état 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 de l’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