Använda beständiga volymer med AKS aktiverat av Azure Arc

Gäller för: AKS på Azure Stack HCI 22H2, AKS på Windows Server

Den här artikeln beskriver hur du etablerar, använder och tar bort beständiga volymer som tillhandahåller långsiktig lagring för användning med Kubernetes-poddar i AKS som aktiveras av Azure Arc (AKS Arc).

En beständig volym representerar en lagringsdel som har etablerats för användning med Kubernetes-poddar. En beständig volym kan användas av en eller flera poddar och är avsedd för långsiktig lagring. Den är också oberoende av podd- eller nodlivscykler.

Du kan etablera en beständig volym för både Windows- och Linux-noder, men den här artikeln beskriver hur du skapar en beständig volym för användning i ditt Windows-program. Mer information finns i Beständiga volymer i Kubernetes.

Innan du börjar

Det här behöver du för att komma igång:

Skapa ett beständigt volymanspråk

Ett beständigt volymanspråk (PVC) används för att automatiskt etablera lagring baserat på en lagringsklass. Skapa ett volymanspråk genom att först skapa en fil med namnet pvc-akshci-csi.yaml och kopiera och klistra in följande YAML-definition. PVC:en kräver en disk som är 10 GB stor med ReadWriteOnce-åtkomst . Standardlagringsklassen anges som lagringsklass (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-klustret. Använd en metod som Enter-PSSession eller Fjärrskrivbord för att ansluta till servern.

kubectl create -f pvc-akshci-csi.yaml 

Följande utdata visar att ditt beständiga volymanspråk har skapats:

Utdata:

persistentvolumeclaim/pvc-akshci-csi created

Använd beständig volym

Om du vill använda en beständig volym skapar du en fil med namnet winwebserver.yaml och kopierar och klistrar in följande YAML-definition. Skapa sedan en podd med åtkomst till det beständiga volymanspråket och vhdx.

I följande YAML-definition mountPath är sökvägen till att montera en volym i en container. När en podd har skapats visas underkatalogen mnt som skapats i C:\ och underkatalogen akshciscsi som skapats i 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 podd med ovanstående YAML-definition kör du:

kubectl create -f winwebserver.yaml 

Kontrollera att podden körs genom att köra följande kommando. Vänta några minuter tills podden är i ett körningstillstånd, eftersom det tar tid att hämta avbildningen:

kubectl get pods -o wide 

När podden körs visar du poddstatusen genom att köra följande kommando:

kubectl.exe describe pod %podName% 

Kontrollera att volymen har monterats i podden genom att köra följande kommando:

kubectl exec -it %podname% cmd.exe 

Ta bort ett beständigt volymanspråk

Innan du tar bort ett beständigt volymanspråk måste du ta bort appdistributionen genom att köra följande kommando:

kubectl delete deployments win-webserver

Du kan sedan ta bort ett beständigt volymanspråk genom att köra:

kubectl delete PersistentVolumeClaim pvc-akshci-csi

Nästa steg