Korzystanie z woluminu trwałego w AKS w klastrze Azure Stack HCLUse persistent volume in an AKS on Azure Stack HCI cluster

Dotyczy: AKS na Azure Stack HCL, AKS Runtime w systemie Windows Server 2019 DatacenterApplies to: AKS on Azure Stack HCI, AKS runtime on Windows Server 2019 Datacenter

Wolumin trwały reprezentuje część magazynu, która została zainicjowana do użycia z Kubernetes.A persistent volume represents a piece of storage that has been provisioned for use with Kubernetes pods. Wolumin trwały może być używany przez co najmniej jeden zasobnik i jest przeznaczony do długoterminowego przechowywania.A persistent volume can be used by one or more pods and is meant for long-term storage. Jest on również niezależny od cyklu życia lub węzła.It's also independent of pod or node lifecycle. Chociaż możesz udostępnić obwód PVC dla węzłów systemu Windows i Linux, w tej sekcji zobaczysz, jak utworzyć wolumin trwały i jak używać tego woluminu w aplikacji systemu Windows.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. Aby uzyskać więcej informacji, zobacz woluminy trwałe w Kubernetes.For more information, see Persistent volumes in Kubernetes.

Przed rozpoczęciemBefore you begin

Oto, co jest potrzebne, aby rozpocząć pracę:Here's what you need to get started:

  • Klaster Kubernetes z co najmniej jednym węzłem procesu roboczego systemu Windows.A Kubernetes cluster with at least one Windows worker node.
  • Plik kubeconfig do uzyskiwania dostępu do klastra Kubernetes.A kubeconfig file to access the Kubernetes cluster.

Tworzenie trwałego żądania woluminuCreate a persistent volume claim

W celu automatycznego aprowizacji magazynu na podstawie klasy magazynu jest używane takie trwałe poświadczenie woluminu.A persistent volume claim is used to automatically provision storage based on a storage class. Aby utworzyć zgłoszenie woluminu, najpierw utwórz plik o nazwie pvc-akshci-csi.yaml i skopiuj w następującej definicji YAML.To create a volume claim, first create a file named pvc-akshci-csi.yaml and copy in the following YAML definition. Zgłoszenie żąda dysku o rozmiarze 10 GB z dostępem ReadWriteOnce   .The claim requests a disk that is 10 GB in size with ReadWriteOnce access.  *Domyślna*   Klasa magazynu jest określona jako Klasa magazynu (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

Utwórz wolumin, uruchamiając następujące polecenia w sesji administracyjnego programu PowerShell na jednym z serwerów w klastrze Azure Stack HCl (przy użyciu metody, takiej jak Enter-PSSession lub Pulpit zdalny, aby połączyć się z serwerem):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 

Następujące dane wyjściowe pokazują, że zostało utworzone trwałe zgłoszenie woluminu:The following output will show that your persistent volume claim has been created successfully:

RozdzielczościOutput:

persistentvolumeclaim/pvc-akshci-csi created

Użyj woluminu trwałegoUse persistent volume

Aby użyć woluminu trwałego, Utwórz plik o nazwie winwebserver. YAML i skopiuj go w następującej definicji YAML.To use a persistent volume, create a file named winwebserver.yaml and copy in the following YAML definition. Następnie można utworzyć element pod z dostępem do trwałego żądania woluminu i dysku VHDX.You will then create a pod with access to the persistent volume claim and vhdx.

W definicji YAML poniżej mountPath jest ścieżką do zainstalowania woluminu wewnątrz kontenera.In the yaml definition below, mountPath is the path to mount a volume inside a container. Po pomyślnym utworzeniu usługi zostanie wyświetlony podkatalog mnt utworzony w języku C \ : i podkatalog akshciscsi utworzony wewnątrz 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 

Aby utworzyć element pod z powyższą definicją YAML, uruchom polecenie:To create a pod with the above yaml definition, run:

kubectl create -f winwebserver.yaml 

Aby upewnić się, że na komputerze jest uruchomiony program, uruchom następujące polecenie.To make sure the pod is running, run the following command. Odczekaj kilka minut, aż stan jest uruchomiony, ponieważ ściąganie obrazu zajmie trochę czasu.Wait a few minutes until the pod is in a running state, since pulling the image takes time.

kubectl get pods -o wide 

Po uruchomieniu tego programu Sprawdź stan pod, uruchamiając następujące polecenie:Once your pod is running, view the pod status by running the following command:

kubectl.exe describe pod %podName% 

Aby sprawdzić, czy wolumin został zainstalowany w obszarze pod, uruchom następujące polecenie:To verify your volume has been mounted in the pod, run the following command:

kubectl exec -it %podname% cmd.exe 

Usuwanie trwałego żądania woluminuDelete a persistent volume claim

Przed usunięciem żądania trwałego woluminu należy usunąć wdrożenie aplikacji, uruchamiając polecenie:Before deleting a persistent volume claim, you must delete the app deployment by running:

kubectl delete deployments win-webserver

Następnie można usunąć nietrwałego żądania woluminu, uruchamiając polecenie:You can then delete a persistent volume claim by running:

kubectl delete PersistentVolumeClaim pvc-akshci-csi

Następne krokiNext steps