Permanent volume gebruiken in een AKS op Azure Stack HCI-clusterUse persistent volume in an AKS on Azure Stack HCI cluster
Van toepassing op: AKS op Azure Stack HCI, AKS runtime op Windows Server 2019 Data CenterApplies to: AKS on Azure Stack HCI, AKS runtime on Windows Server 2019 Datacenter
Een permanent volume vertegenwoordigt een opslag ruimte die is ingericht voor gebruik met Kubernetes peul.A persistent volume represents a piece of storage that has been provisioned for use with Kubernetes pods. Een permanent volume kan worden gebruikt door een of meer peulen en is bedoeld voor lange termijn opslag.A persistent volume can be used by one or more pods and is meant for long-term storage. Het is ook onafhankelijk van de Pod of de levens cyclus van knoop punten.It's also independent of pod or node lifecycle. Hoewel u een PVC kunt inrichten voor zowel Windows-als Linux-knoop punten, in deze sectie ziet u hoe u een permanent volume maakt en hoe u dit volume gebruikt in uw Windows-toepassing.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. Zie voor meer informatie permanente volumes in Kubernetes.For more information, see Persistent volumes in Kubernetes.
Voordat u begintBefore you begin
U hebt het volgende nodig om aan de slag te gaan:Here's what you need to get started:
- Een Kubernetes-cluster met ten minste één Windows worker-knoop punt.A Kubernetes cluster with at least one Windows worker node.
- Een kubeconfig-bestand voor toegang tot het Kubernetes-cluster.A kubeconfig file to access the Kubernetes cluster.
Een permanente volume claim makenCreate a persistent volume claim
Een claim voor permanente volumes wordt gebruikt om opslag automatisch in te richten op basis van een opslag klasse.A persistent volume claim is used to automatically provision storage based on a storage class. Als u een volume claim wilt maken, maakt u eerst een bestand pvc-akshci-csi.yaml
met de naam en kopieert u dit in de volgende YAML definitie.To create a volume claim, first create a file named pvc-akshci-csi.yaml
and copy in the following YAML definition. De claim vraagt een schijf met een grootte van 10 GB met ReadWriteOnce- toegang.The claim requests a disk that is 10 GB in size with ReadWriteOnce access. De standaard opslag klasse is opgegeven als de opslag klasse (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
Maak het volume door de volgende opdrachten uit te voeren in een Power shell-sessie op een van de servers in het Azure Stack HCI-cluster (met behulp van een methode zoals Enter-PSSession of extern bureaublad om verbinding te maken met de server):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
In de volgende uitvoer ziet u dat uw permanente volume claim is gemaakt:The following output will show that your persistent volume claim has been created successfully:
UitvoerOutput:
persistentvolumeclaim/pvc-akshci-csi created
Permanent volume gebruikenUse persistent volume
Als u een permanent volume wilt gebruiken, maakt u een bestand met de naam winwebserver. yaml en kopieert u de volgende YAML-definitie.To use a persistent volume, create a file named winwebserver.yaml and copy in the following YAML definition. U gaat vervolgens een pod maken met toegang tot de permanente volume claim en vhdx.You will then create a pod with access to the persistent volume claim and vhdx.
In de onderstaande definitie van yaml is mountPath het pad voor het koppelen van een volume in een container.In the yaml definition below, mountPath is the path to mount a volume inside a container. Nadat het maken van een Pod is voltooid, ziet u de submap mnt die is gemaakt in C \ : en de submap akshciscsi gemaakt in 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
Als u een pod wilt maken met de bovenstaande yaml-definitie, voert u de volgende handelingen uit:To create a pod with the above yaml definition, run:
kubectl create -f winwebserver.yaml
Voer de volgende opdracht uit om te controleren of de Pod wordt uitgevoerd.To make sure the pod is running, run the following command. Wacht enkele minuten totdat de Pod wordt uitgevoerd, omdat het ophalen van de afbeelding tijd kost.Wait a few minutes until the pod is in a running state, since pulling the image takes time.
kubectl get pods -o wide
Nadat de Pod is uitgevoerd, bekijkt u de status van de pod door de volgende opdracht uit te voeren:Once your pod is running, view the pod status by running the following command:
kubectl.exe describe pod %podName%
Als u wilt controleren of uw volume is gekoppeld in de Pod, voert u de volgende opdracht uit:To verify your volume has been mounted in the pod, run the following command:
kubectl exec -it %podname% cmd.exe
Een permanente volume claim verwijderenDelete a persistent volume claim
Voordat u een claim van een permanente volume verwijdert, moet u de app-implementatie verwijderen door het volgende uit te voeren:Before deleting a persistent volume claim, you must delete the app deployment by running:
kubectl delete deployments win-webserver
U kunt vervolgens een permanente volume claim verwijderen door het volgende uit te voeren:You can then delete a persistent volume claim by running:
kubectl delete PersistentVolumeClaim pvc-akshci-csi