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 :
- Un cluster Kubernetes avec au moins un nœud Worker Windows
- Un fichier kubeconfig pour accéder au cluster Kubernetes
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é 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