Permanent volume gebruiken in een AKS op Azure Stack HCI-clusterUse persistent volume in an AKS on Azure Stack HCI cluster

Van toepassing op: AKS op Azure Stack HCI, AKS runtime op Windows Server 2019 Data CenterApplies to: AKS on Azure Stack HCI, AKS runtime on Windows Server 2019 Datacenter

Een permanent volume vertegenwoordigt een opslag ruimte die is ingericht voor gebruik met Kubernetes peul.A persistent volume represents a piece of storage that has been provisioned for use with Kubernetes pods. Een permanent volume kan worden gebruikt door een of meer peulen en is bedoeld voor lange termijn opslag.A persistent volume can be used by one or more pods and is meant for long-term storage. Het is ook onafhankelijk van de Pod of de levens cyclus van knoop punten.It's also independent of pod or node lifecycle. Hoewel u een PVC kunt inrichten voor zowel Windows-als Linux-knoop punten, in deze sectie ziet u hoe u een permanent volume maakt en hoe u dit volume gebruikt in uw Windows-toepassing.While you can provision a PVC for both Windows and Linux nodes, in this section, you'll see how to create a persistent volume and how to use this volume in your Windows application. Zie voor meer informatie permanente volumes in Kubernetes.For more information, see Persistent volumes in Kubernetes.

Voordat u begintBefore you begin

U hebt het volgende nodig om aan de slag te gaan:Here's what you need to get started:

  • Een Kubernetes-cluster met ten minste één Windows worker-knoop punt.A Kubernetes cluster with at least one Windows worker node.
  • Een kubeconfig-bestand voor toegang tot het Kubernetes-cluster.A kubeconfig file to access the Kubernetes cluster.

Een permanente volume claim makenCreate a persistent volume claim

Een claim voor permanente volumes wordt gebruikt om opslag automatisch in te richten op basis van een opslag klasse.A persistent volume claim is used to automatically provision storage based on a storage class. Als u een volume claim wilt maken, maakt u eerst een bestand pvc-akshci-csi.yaml met de naam en kopieert u dit in de volgende YAML definitie.To create a volume claim, first create a file named pvc-akshci-csi.yaml and copy in the following YAML definition. De claim vraagt een schijf met een grootte van 10 GB met ReadWriteOnce-   toegang.The claim requests a disk that is 10 GB in size with ReadWriteOnce access. De standaard   opslag klasse is opgegeven als de opslag klasse (vhdx).The default storage class is specified as the storage class (vhdx).

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

Maak het volume door de volgende opdrachten uit te voeren in een Power shell-sessie op een van de servers in het Azure Stack HCI-cluster (met behulp van een methode zoals Enter-PSSession of extern bureaublad om verbinding te maken met de server):Create the volume by running the following commands in an administrative PowerShell session on one of the servers in the Azure Stack HCI cluster (using a method such as Enter-PSSession or Remote Desktop to connect to the server):

kubectl create -f pvc-akshci-csi.yaml 

In de volgende uitvoer ziet u dat uw permanente volume claim is gemaakt:The following output will show that your persistent volume claim has been created successfully:

UitvoerOutput:

persistentvolumeclaim/pvc-akshci-csi created

Permanent volume gebruikenUse persistent volume

Als u een permanent volume wilt gebruiken, maakt u een bestand met de naam winwebserver. yaml en kopieert u de volgende YAML-definitie.To use a persistent volume, create a file named winwebserver.yaml and copy in the following YAML definition. U gaat vervolgens een pod maken met toegang tot de permanente volume claim en vhdx.You will then create a pod with access to the persistent volume claim and vhdx.

In de onderstaande definitie van yaml is mountPath het pad voor het koppelen van een volume in een container.In the yaml definition below, mountPath is the path to mount a volume inside a container. Nadat het maken van een Pod is voltooid, ziet u de submap mnt die is gemaakt in C \ : en de submap akshciscsi gemaakt in mnt.After a successful pod creation, you will see the subdirectory mnt created in C:\ and the subdirectory akshciscsi created inside 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 

Als u een pod wilt maken met de bovenstaande yaml-definitie, voert u de volgende handelingen uit:To create a pod with the above yaml definition, run:

kubectl create -f winwebserver.yaml 

Voer de volgende opdracht uit om te controleren of de Pod wordt uitgevoerd.To make sure the pod is running, run the following command. Wacht enkele minuten totdat de Pod wordt uitgevoerd, omdat het ophalen van de afbeelding tijd kost.Wait a few minutes until the pod is in a running state, since pulling the image takes time.

kubectl get pods -o wide 

Nadat de Pod is uitgevoerd, bekijkt u de status van de pod door de volgende opdracht uit te voeren:Once your pod is running, view the pod status by running the following command:

kubectl.exe describe pod %podName% 

Als u wilt controleren of uw volume is gekoppeld in de Pod, voert u de volgende opdracht uit:To verify your volume has been mounted in the pod, run the following command:

kubectl exec -it %podname% cmd.exe 

Een permanente volume claim verwijderenDelete a persistent volume claim

Voordat u een claim van een permanente volume verwijdert, moet u de app-implementatie verwijderen door het volgende uit te voeren:Before deleting a persistent volume claim, you must delete the app deployment by running:

kubectl delete deployments win-webserver

U kunt vervolgens een permanente volume claim verwijderen door het volgende uit te voeren:You can then delete a persistent volume claim by running:

kubectl delete PersistentVolumeClaim pvc-akshci-csi

Volgende stappenNext steps