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.yaml
e 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