Verwenden persistenter Volumes mit AKS unter Windows Server

Gilt für: AKS unter Windows Server

In diesem Artikel wird beschrieben, wie Sie persistente Volumes bereitstellen, verwenden und löschen, die langfristigen Speicher für die Verwendung mit Kubernetes-Pods in AKS auf Windows Server bieten.

Ein persistentes Volume stellt ein Speicherelement dar, das für die Verwendung in Kubernetes-Pods bereitgestellt wurde. Ein persistentes Volume kann von einem oder mehreren Pods verwendet werden und ist für die langfristige Speicherung konzipiert. Es ist auch unabhängig von Pod- oder Knotenlebenszyklen.

Sie können zwar ein persistentes Volume sowohl für Windows- als auch für Linux-Knoten bereitstellen, in diesem Artikel wird beschrieben, wie Sie ein persistentes Volume für die Verwendung in Ihrer Windows-Anwendung erstellen. Weitere Informationen finden Sie unter Persistente Datenträger in Kubernetes.

Bevor Sie beginnen

Voraussetzungen für die ersten Schritte:

Erstellen einer persistenten Speicheranforderung

Ein Persistent Volume Claim (PVC) wird verwendet, um basierend auf einer Speicherklasse automatisch Speicher zuzuweisen. Zum Erstellen eines Volumeanspruchs erstellen Sie zunächst eine Datei namens pvc-akshci-csi.yaml, kopieren Sie die folgende YAML-Definition, und fügen Sie sie in die Datei ein. Der PVC erfordert einen Datenträger mit einer Größe von 10 GB und ReadWriteOnce-Zugriff. Diestandardmäßige Speicherklasse wird als Speicherklasse (VHDX) angegeben.

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

Führen Sie zum Erstellen des Volumes die folgenden Befehle in einer administrativen PowerShell-Sitzung auf einem der Server im Windows Server-Cluster aus. Verwenden Sie eine Methode wie Enter-PSSession oder Remotedesktop, um eine Verbindung mit dem Server herzustellen.

kubectl create -f pvc-akshci-csi.yaml

Die folgende Ausgabe zeigt, dass Ihr Anspruch auf persistentes Volume erfolgreich erstellt wurde.

Ausgabe:

persistentvolumeclaim/pvc-akshci-csi created

Verwenden des persistenten Volumes

Um ein persistentes Volume zu verwenden, erstellen Sie eine Datei mit dem Namen winwebserver.yaml, und kopieren Sie die folgende YAML-Definition, und fügen Sie sie ein. Erstellen Sie dann einen Pod mit Zugriff auf den Anspruch auf ein persistentes Volume und auf VHDX.

In der folgenden YAML-Definition ist mountPath der Pfad zum Einbinden eines Volumes in einem Container. Nach einer erfolgreichen Pod-Erstellung sehen Sie das unterverzeichnis mnt erstellt in C:\ und das Unterverzeichnis akshciscsi erstellt in 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

Führen Sie Folgendes aus, um einen Pod mit dieser YAML-Definition zu erstellen:

kubectl create -f winwebserver.yaml

Führen Sie den folgenden Befehl aus, um sicherzustellen, dass der Pod läuft. Warten Sie einige Minuten, bis sich der Pod im Zustand „Wird ausgeführt“ befindet, da das Pullen des Images einige Zeit in Anspruch nimmt:

kubectl get pods -o wide

Sobald Ihr Pod ausgeführt wird, können Sie den Podstatus anzeigen, indem Sie den folgenden Befehl ausführen:

kubectl.exe describe pod %podName%

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Ihr Volume im Pod eingebunden wurde:

kubectl exec -it %podname% cmd.exe

Löschen eines Anspruchs auf ein persistentes Volume

Bevor Sie einen dauerhaften Volumeanspruch löschen, müssen Sie die App-Bereitstellung löschen, indem Sie den folgenden Befehl ausführen:

kubectl delete deployments win-webserver

Sie können dann einen Anspruch auf ein persistentes Volume löschen, indem Sie Folgendes ausführen:

kubectl delete PersistentVolumeClaim pvc-akshci-csi

Nächste Schritte