Azure Stack HKS kümesindeki bir AKS kümesinde kalıcı birim kullanmaUse persistent volume in an AKS on Azure Stack HCI cluster

Uygulama hedefi: Windows Server 2019 Datacenter üzerinde Azure Stack HI, AKS çalışma zamanı üzerindeki AKSApplies to: AKS on Azure Stack HCI, AKS runtime on Windows Server 2019 Datacenter

Kalıcı bir birim, Kubernetes pods ile kullanılmak üzere sağlanmış bir depolama parçasını temsil eder.A persistent volume represents a piece of storage that has been provisioned for use with Kubernetes pods. Kalıcı bir birim bir veya daha fazla Pod tarafından kullanılabilir ve uzun vadeli depolama için tasarlanmıştır.A persistent volume can be used by one or more pods and is meant for long-term storage. Ayrıca Pod veya node yaşam döngüsünün da bağımsızdır.It's also independent of pod or node lifecycle. Hem Windows hem de Linux düğümleri için bir PVC sağlayabileceğinizden, bu bölümde kalıcı birim oluşturma ve bu birimin Windows uygulamanızda nasıl kullanılacağı hakkında bilgi edineceksiniz.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. Daha fazla bilgi için bkz. Kubernetes 'Te kalıcı birimler.For more information, see Persistent volumes in Kubernetes.

Başlamadan önceBefore you begin

Kullanmaya başlamak için gerekenler aşağıda verilmiştir:Here's what you need to get started:

  • En az bir Windows çalışan düğümü olan bir Kubernetes kümesi.A Kubernetes cluster with at least one Windows worker node.
  • Kubernetes kümesine erişmek için bir kubeconfig dosyası.A kubeconfig file to access the Kubernetes cluster.

Kalıcı bir birim talebi oluşturunCreate a persistent volume claim

Kalıcı bir birim talebi, depolama sınıfına göre depolamayı otomatik olarak sağlamak için kullanılır.A persistent volume claim is used to automatically provision storage based on a storage class. Bir birim talebi oluşturmak için, önce pvc-akshci-csi.yaml aşağıdaki YAML tanımında adlı bir dosya oluşturun ve kopyalayın.To create a volume claim, first create a file named pvc-akshci-csi.yaml and copy in the following YAML definition. Talep, Readwriteonce erişimi Ile 10 GB büyüklüğünde bir disk ister   .The claim requests a disk that is 10 GB in size with ReadWriteOnce access.  *Varsayılan*   depolama sınıfı, depolama sınıfı (VHDX) olarak belirtilir.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

Azure Stack HCı kümesindeki sunuculardan birindeki bir yönetim PowerShell oturumunda aşağıdaki komutları çalıştırarak birimi oluşturun (örneğin, sunucuya bağlanmak için ENTER-PSSession veya uzak masaüstü gibi bir yöntem kullanarak):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 

Aşağıdaki çıktıda kalıcı birim talebinin başarıyla oluşturulduğunu gösterilmektedir:The following output will show that your persistent volume claim has been created successfully:

ÇıktılarınOutput:

persistentvolumeclaim/pvc-akshci-csi created

Kalıcı birim kullanUse persistent volume

Kalıcı bir birim kullanmak için, winwebserver. YAML adlı bir dosya oluşturun ve aşağıdaki YAML tanımına kopyalayın.To use a persistent volume, create a file named winwebserver.yaml and copy in the following YAML definition. Daha sonra kalıcı birim talebi ve VHDX erişimi olan bir pod oluşturacaksınız.You will then create a pod with access to the persistent volume claim and vhdx.

Aşağıdaki YAML tanımında, Bağlamayolu , bir birimi bir kapsayıcı içinde bağlama yoludur.In the yaml definition below, mountPath is the path to mount a volume inside a container. Başarılı bir pod oluşturulduktan sonra, \ C: ile oluşturulan mnt alt dizinini ve mnt içinde oluşturulan akshciscsı alt dizinini görürsünüz.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 

Yukarıdaki YAML tanımıyla bir pod oluşturmak için şunu çalıştırın:To create a pod with the above yaml definition, run:

kubectl create -f winwebserver.yaml 

Pod 'ın çalıştığından emin olmak için aşağıdaki komutu çalıştırın.To make sure the pod is running, run the following command. Görüntüyü çekmek zaman alacağından, Pod 'un çalışır durumda olduğundan birkaç dakika bekleyin.Wait a few minutes until the pod is in a running state, since pulling the image takes time.

kubectl get pods -o wide 

Pod 'niz çalışmaya başladıktan sonra aşağıdaki komutu çalıştırarak Pod durumunu görüntüleyin:Once your pod is running, view the pod status by running the following command:

kubectl.exe describe pod %podName% 

Biriminizin Pod 'a bağlandığından emin olmak için aşağıdaki komutu çalıştırın:To verify your volume has been mounted in the pod, run the following command:

kubectl exec -it %podname% cmd.exe 

Kalıcı bir birim talebi silmeDelete a persistent volume claim

Kalıcı bir birim talebi silinmeden önce, şunu çalıştırarak uygulama dağıtımını silmeniz gerekir:Before deleting a persistent volume claim, you must delete the app deployment by running:

kubectl delete deployments win-webserver

Ardından, şunu çalıştırarak kalıcı bir birim talebi silebilirsiniz:You can then delete a persistent volume claim by running:

kubectl delete PersistentVolumeClaim pvc-akshci-csi

Sonraki adımlarNext steps