Condividi tramite


Usare volumi persistenti con il servizio Azure Kubernetes abilitato da 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 da usare con i pod Kubernetes nel servizio Azure Kubernetes abilitati da Azure Arc (AKS Arc).

Un volume permanente rappresenta una parte di spazio di archiviazione di cui è stato effettuato il provisioning per l'uso con i pod Kubernetes. Un volume permanente 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.

Sebbene sia possibile effettuare il provisioning di un volume permanente per i nodi Windows e Linux, questo articolo descrive come creare un volume permanente da usare nell'applicazione Windows. Per altre informazioni, vedere Volumi persistenti in Kubernetes.

Operazioni preliminari

Di seguito sono riportate le informazioni necessarie per iniziare:

  • Un cluster Kubernetes con almeno un nodo di lavoro Di Windows.
  • Un file kubeconfig per accedere al cluster Kubernetes.

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 di tutto 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 amministrativa di PowerShell in uno dei server nel cluster Azure Stack HCI. Usare un metodo come Enter-PSSession o Desktop remoto per connettersi al server.

kubectl create -f pvc-akshci-csi.yaml 

L'output seguente mostra che l'attestazione del volume permanente è stata creata correttamente:

Output:

persistentvolumeclaim/pvc-akshci-csi created

Usare un volume permanente

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

Nella definizione YAML seguente è mountPath il percorso per montare un volume all'interno di un contenitore. Dopo aver completato la creazione del 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 questa definizione YAML, 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, perché il pull dell'immagine richiede tempo:

kubectl get pods -o wide 

Quando il pod è in esecuzione, 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 di volume permanente

Prima di eliminare un'attestazione di volume permanente, è necessario eliminare la distribuzione dell'app eseguendo il comando seguente:

kubectl delete deployments win-webserver

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

kubectl delete PersistentVolumeClaim pvc-akshci-csi

Passaggi successivi