Använd beständig volym i en AKS på Azure Stack HCI-klusterUse persistent volume in an AKS on Azure Stack HCI cluster

Gäller för: AKS på Azure Stack HCI, AKS runtime på Windows Server 2019 Data CenterApplies to: AKS on Azure Stack HCI, AKS runtime on Windows Server 2019 Datacenter

En beständig volym representerar en lagrings enhet som har etablerats för användning med Kubernetes poddar.A persistent volume represents a piece of storage that has been provisioned for use with Kubernetes pods. En permanent volym kan användas av en eller flera poddar och är avsedd för långsiktig lagring.A persistent volume can be used by one or more pods and is meant for long-term storage. Den är också oberoende av POD-eller Node-livscykeln.It's also independent of pod or node lifecycle. Även om du kan etablera en PVC för både Windows-och Linux-noder, i det här avsnittet, kommer du att se hur du skapar en beständig volym och hur du använder den här volymen i ditt Windows-program.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. Mer information finns i beständiga volymer i Kubernetes.For more information, see Persistent volumes in Kubernetes.

Innan du börjarBefore you begin

Det här behöver du för att komma igång:Here's what you need to get started:

  • Ett Kubernetes-kluster med minst en Windows Worker-nod.A Kubernetes cluster with at least one Windows worker node.
  • En kubeconfig-fil för att få åtkomst till Kubernetes-klustret.A kubeconfig file to access the Kubernetes cluster.

Skapa ett beständigt volym anspråkCreate a persistent volume claim

Ett beständigt volym anspråk används för att automatiskt etablera lagring baserat på en lagrings klass.A persistent volume claim is used to automatically provision storage based on a storage class. Skapa ett volym anspråk genom att först skapa en fil med namnet pvc-akshci-csi.yaml och kopiera i följande yaml-definition.To create a volume claim, first create a file named pvc-akshci-csi.yaml and copy in the following YAML definition. Anspråket begär en disk som är 10 GB i storlek med ReadWriteOnce-   åtkomst.The claim requests a disk that is 10 GB in size with ReadWriteOnce access.  *Standard*   lagrings klassen anges som lagrings klass (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

Skapa volymen genom att köra följande kommandon i en administrativ PowerShell-session på en av servrarna i Azure Stack HCI-kluster (med hjälp av en metod som till exempel Enter-PSSession eller fjärr skrivbord för att ansluta till servern):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 

Följande utdata visar att ditt beständiga volym anspråk har skapats:The following output will show that your persistent volume claim has been created successfully:

UtdataparametrarOutput:

persistentvolumeclaim/pvc-akshci-csi created

Använd beständig volymUse persistent volume

Om du vill använda en beständig volym skapar du en fil med namnet winwebserver. yaml och kopierar i följande YAML-definition.To use a persistent volume, create a file named winwebserver.yaml and copy in the following YAML definition. Du kommer sedan att skapa en POD med åtkomst till beständigt volym anspråk och VHDX.You will then create a pod with access to the persistent volume claim and vhdx.

I yaml-definitionen nedan är mountPath sökvägen till att montera en volym inuti en behållare.In the yaml definition below, mountPath is the path to mount a volume inside a container. När en lyckad Pod har skapats visas under katalogen mnt som skapats i C \ : och under katalogen akshciscsi som skapats inuti 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 

Om du vill skapa en POD med ovanstående yaml-definition kör du:To create a pod with the above yaml definition, run:

kubectl create -f winwebserver.yaml 

Kör följande kommando för att kontrol lera att Pod körs.To make sure the pod is running, run the following command. Vänta några minuter tills pod är i ett körnings läge, eftersom hämtningen av avbildningen tar tid.Wait a few minutes until the pod is in a running state, since pulling the image takes time.

kubectl get pods -o wide 

När din POD körs kan du Visa Pod-statusen genom att köra följande kommando:Once your pod is running, view the pod status by running the following command:

kubectl.exe describe pod %podName% 

Kör följande kommando för att kontrol lera att volymen har monterats i pod:To verify your volume has been mounted in the pod, run the following command:

kubectl exec -it %podname% cmd.exe 

Ta bort ett beständigt volym anspråkDelete a persistent volume claim

Innan du tar bort ett beständigt volym anspråk måste du ta bort appens distribution genom att köra:Before deleting a persistent volume claim, you must delete the app deployment by running:

kubectl delete deployments win-webserver

Du kan sedan ta bort ett beständigt volym anspråk genom att köra:You can then delete a persistent volume claim by running:

kubectl delete PersistentVolumeClaim pvc-akshci-csi

Nästa stegNext steps