Verwenden eines persistenten Volumes mit Azure Kubernetes Service in Azure Stack HCI und Windows Server

Gilt für: Azure Stack HCI und Windows Server

Sie können ein persistentes Volume in Azure Kubernetes Service (AKS) in Azure Stack HCI und Windows Server einrichten. Der Begriff 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 außerdem unabhängig vom Lebenszyklus von Pods oder Knoten.

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

Voraussetzungen

Voraussetzungen für die ersten Schritte:

Erstellen eines Anspruchs auf ein persistentes Volume

Ein Anspruch auf ein persistentes Volume (Persistent Volume Claim, PVC) wird verwendet, um basierend auf einer Speicherklasse automatisch Speicher bereitzustellen. 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

Um das Volume zu erstellen, führen Sie die folgenden Befehle in einer PowerShell-Administratorsitzung auf einem der Server im Azure Stack HCI-Cluster aus (mithilfe einer Methode wie Enter-PSSession oder Remotedesktop zum Herstellen einer Verbindung mit dem Server):

kubectl create -f pvc-akshci-csi.yaml 

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

Ausgabe:

persistentvolumeclaim/pvc-akshci-csi created

Verwenden des persistenten Volumes

Erstellen Sie zur Verwendung eines persistenten Volumes eine Datei namens winwebserver.yaml, kopieren Sie die folgende YAML-Definition, und fügen Sie sie in die Datei 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 einen Container. Nach erfolgreicher Erstellung eines Pods sehen Sie, dass das Unterverzeichnis mnt in C:\ und das Unterverzeichnis akshciscsi in mnt erstellt wurde.

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 der obigen YAML-Definition zu erstellen:

kubectl create -f winwebserver.yaml 

Führen Sie den folgenden Befehl aus, um sicherzustellen, dass der Pod ausgeführt wird. 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 Anspruch auf ein persistentes Volume löschen, müssen Sie die App-Bereitstellung löschen, indem Sie Folgendes 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