Usare volumi persistenti con servizio Azure Kubernetes abilitato da Azure Arc

Si applica a: Servizio Azure Kubernetes in Azure Stack HCI 22H2, servizio Azure Kubernetes in Windows Server

Questo articolo descrive come effettuare il provisioning, l'uso e l'eliminazione di volumi persistenti che forniscono l'archiviazione a lungo termine per l'uso con i pod Kubernetes abilitati da Azure Arc (AKS Arc).

Un volume persistente rappresenta una parte di archiviazione di cui è stato effettuato il provisioning per l'uso con i pod Kubernetes. Un volume persistente può essere usato da uno o più pod ed è destinato all'archiviazione a lungo termine. È anche indipendente dai cicli di vita dei pod o dei nodi.

Anche se è possibile effettuare il provisioning di un volume persistente per i nodi Windows e Linux, questo articolo descrive come creare un volume persistente per l'uso nell'applicazione Windows. Per altre informazioni, vedere Volumi persistenti in Kubernetes.

Prima di iniziare

Ecco cosa è necessario iniziare:

Creare un'attestazione di volume permanente

Un'attestazione di volume permanente viene usata per il provisioning automatico dell'archiviazione in una classe di archiviazione. Per creare un'attestazione di volume, creare prima un file denominato pvc-akshci-csi.yaml e copiare e incollare la definizione YAML seguente. Il PVC richiede un disco di dimensioni pari a 10 GB con accesso ReadWriteOnce . La classe di archiviazione predefinita viene specificata come classe di archiviazione (vhdx).

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

Per creare il volume, eseguire i comandi seguenti in una sessione di PowerShell amministrativa in uno dei server nel cluster Azure Stack HCI. Usare un metodo, ad esempio Invio-PSSession o Desktop remoto, per connettersi al server.

kubectl create -f pvc-akshci-csi.yaml 

L'output seguente mostrerà che l'attestazione del volume persistente è stata creata correttamente:

Output:

persistentvolumeclaim/pvc-akshci-csi created

Usare il volume persistente

Per usare un volume persistente, creare un file denominato winwebserver.yaml e copiare e incollare la definizione YAML seguente. Creare quindi un pod con accesso all'attestazione del volume persistente e vhdx.

Nella definizione YAML seguente è mountPath il percorso per montare un volume all'interno di un contenitore. Dopo aver completato la creazione di pod, verrà visualizzata la sottodirectory mnt creata in C:\ e la sottodirectory akshciscsi creata all'interno di 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 

Per creare un pod con la definizione YAML precedente, eseguire:

kubectl create -f winwebserver.yaml 

Per assicurarsi che il pod sia in esecuzione, eseguire il comando seguente. Attendere alcuni minuti fino a quando il pod non è in esecuzione, poiché il pull dell'immagine richiede tempo.

kubectl get pods -o wide 

Dopo aver eseguito il pod, visualizzare lo stato del pod eseguendo il comando seguente:

kubectl.exe describe pod %podName% 

Per verificare che il volume sia stato montato nel pod, eseguire il comando seguente:

kubectl exec -it %podname% cmd.exe 

Eliminare un'attestazione del volume persistente

Prima di eliminare un'attestazione del volume persistente, è necessario eliminare la distribuzione dell'app eseguendo:

kubectl delete deployments win-webserver

È quindi possibile eliminare un'attestazione di volume persistente eseguendo:

kubectl delete PersistentVolumeClaim pvc-akshci-csi

Passaggi successivi