Share via


Azure Arc tarafından etkinleştirilen AKS'de Kapsayıcı Depolama Arabirimi (CSI) disk sürücülerini kullanma

> Şunlar için geçerlidir: Azure Stack HCI 22H2 üzerinde AKS, Windows Server'da AKS, Azure Stack HCI 23H2 üzerinde AKS

Bu makalede, dinamik olarak disk kalıcı birimleri oluşturmak ve Arc tarafından etkinleştirilen AKS'de özel depolama sınıfları oluşturmak için Kapsayıcı Depolama Arabirimi (CSI) yerleşik depolama sınıflarının nasıl kullanılacağı açıklanmaktadır.

Arc tarafından etkinleştirilen AKS'de CSI'ye genel bakış

Kapsayıcı Depolama Arabirimi (CSI), Kubernetes'te kapsayıcılı iş yüklerine rastgele blok ve dosya depolama sistemlerini kullanıma sunar. Arc tarafından etkinleştirilen AKS, CSI kullanarak yeni depolama sistemlerini kullanıma açmak için eklentileri yazabilir, dağıtabilir ve yineleyebilir. CSI kullanmak, çekirdek Kubernetes koduna dokunmak ve ardından yayın döngülerini beklemek zorunda kalmadan Kubernetes'teki mevcut olanları da geliştirebilir.

AKS Arc tarafından kullanılan disk ve dosya CSI sürücüleri CSI belirtim uyumlu sürücülerdir.

AKS Arc'ta CSI depolama sürücüsü desteği şunları kullanmanıza olanak tanır:

  • Kubernetes DataDisk kaynağı oluşturmak için kullanabileceğiniz AKS Arc diskleri. Bunlar ReadWriteOnce olarak bağlanır, bu nedenle aynı anda yalnızca tek bir pod için kullanılabilir. Aynı anda birden çok pod tarafından erişilebilen depolama birimleri için AKS Arc dosyalarını kullanın.

  • Bir SMB veya NFS paylaşımını podlara bağlamak için kullanabileceğiniz AKS Arc dosyaları. Bunlar ReadWriteMany olarak bağlanır, böylece verileri birden çok düğüm ve pod arasında paylaşabilirsiniz. Pvc (kalıcı birim talebi) belirtimine göre ReadWriteOnce olarak da bağlanabilirler.

Yerleşik depolama sınıfını kullanarak dinamik olarak disk kalıcı birimleri oluşturma

Depolama sınıfı, bir depolama biriminin kalıcı bir birimle dinamik olarak nasıl oluşturulduğunu tanımlamak için kullanılır. Depolama sınıflarını kullanma hakkında daha fazla bilgi için bkz. Kubernetes depolama sınıfları.

AKS Arc'ta varsayılan depolama sınıfı varsayılan olarak oluşturulur ve VHDX destekli birimler oluşturmak için CSI kullanır. Geri kazanma ilkesi, kullanılan kalıcı birim silindiğinde temel alınan VHDX'in silinmesini sağlar. Depolama sınıfı ayrıca kalıcı birimleri genişletilebilir olacak şekilde yapılandırıyor; kalıcı birim talebinizi yeni boyutla düzenlemeniz yeterlidir.

Bu depolama sınıfından yararlanmak için bir PVC ve buna başvuran ve kullanan ilgili bir pod oluşturun. Pvc, depolama sınıfına göre depolamayı otomatik olarak sağlamak için kullanılır. PVC, istenen boyutta bir VHDX oluşturmak için önceden oluşturulmuş depolama sınıflarından birini veya kullanıcı tanımlı bir depolama sınıfını kullanabilir. Pod tanımı oluşturduğunuzda, istenen depolamayı istemek için PVC belirtilir.

Diskler için özel depolama sınıfı oluşturma

Varsayılan depolama sınıfı çoğu yaygın senaryo için uygundur. Ancak bazı durumlarda, belirli bir performans katmanına eşlenmiş belirli bir konumdaKI PV'leri depolayan kendi depolama sınıfınızı oluşturmak isteyebilirsiniz.

Linux iş yükleriniz (podlar) varsa parametresiyle fsType: ext4özel bir depolama sınıfı oluşturmanız gerekir. Bu gereksinim Kubernetes 1.19 ve 1.20 veya sonraki sürümleri için geçerlidir. Aşağıdaki örnekte, parametresi tanımlanmış özel bir depolama sınıfı tanımı fsType gösterilmektedir:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: aks-hci-disk-custom
parameters:
  blocksize: "33554432"
  container: SqlStorageContainer
  dynamic: "true"
  group: clustergroup-summertime
  hostname: TESTPATCHING-91.sys-sqlsvr.local
  logicalsectorsize: "4096"
  physicalsectorsize: "4096"
  port: "55000"
  fsType: ext4
provisioner: disk.csi.akshci.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true  

Özel bir depolama sınıfı oluşturursanız, VM'leri depolamak istediğiniz konumu belirtebilirsiniz. Temel altyapı Azure Stack HCI ise, bu yeni konum yüksek performanslı SSD'ler/NVMe tarafından desteklenen bir birim veya HDD'ler tarafından desteklenen maliyet için iyileştirilmiş bir birim olabilir.

Özel depolama sınıfı oluşturmak iki adımlı bir işlemdir:

  1. Azure Stack HCI kümenizdeki depolama yollarını oluşturmak, göstermek ve listelemek için cmdlet'lerini kullanarak stack-hci-vm storagepath yeni bir depolama yolu oluşturun. Depolama yolu oluşturma hakkında daha fazla bilgi için bkz. depolama yolu.

    için $pathadlı $storagepathnamebir depolama yolu oluşturun; örneğin, C:\ClusterStorage\test-storagepath:

    az stack-hci-vm storagepath create --resource-group $resource_group --custom-location $customLocationID --name $storagepathname --path $path
    

    Depolama yolu kaynak kimliğini alın:

    $storagepathID = az stack-hci-vm storagepath show --name $storagepathname --resource-group $resource_group --query "id" -o tsv 
    
  2. Yeni depolama yolunu kullanarak yeni bir özel depolama sınıfı oluşturun.

    1. sc-aks-hci-disk-custom.yaml adlı bir dosya oluşturun ve bildirimi aşağıdaki YAML dosyasından kopyalayın. Depolama sınıfı, yeni containerile dışında varsayılan depolama sınıfıyla aynıdır. storage path ID için containerönceki adımda oluşturulan öğesini kullanın. ve hostnameiçin group komutunu çalıştırarak kubectl get storageclass default -o yamlvarsayılan depolama sınıfını sorgulayın ve belirtilen değerleri kullanın:

      kind: StorageClass
      apiVersion: storage.k8s.io/v1
      metadata:
       name: aks-hci-disk-custom
      provisioner: disk.csi.akshci.com
      parameters:
       blocksize: "33554432"
       container: <storage path ID>
       dynamic: "true"
       group: <e.g clustergroup-akshci> # same as the default storageclass
       hostname: <e.g. ca-a858c18c.ntprod.contoso.com> # same as the default storageclass
       logicalsectorsize: "4096"
       physicalsectorsize: "4096"
       port: "55000"
       fsType: ext4 # refer to the note above to determine when to include this parameter
      allowVolumeExpansion: true
      reclaimPolicy: Delete
      volumeBindingMode: Immediate
      
    2. kubectl apply komutuyla depolama sınıfını oluşturun ve sc-aks-hci-disk-custom.yaml dosyanızı belirtin:

       $ kubectl apply -f sc-aks-hci-disk-custom.yaml
       storageclass.storage.k8s.io/aks-hci-disk-custom created
      

Sonraki adımlar