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 Local 22H2'deki AKS, Windows Server'daki AKS, Azure Local'deki AKS, sürüm 23H2

Bu makalede, Arc tarafından etkinleştirilen AKS'de dinamik olarak disk kalıcı birimleri oluşturmak ve ö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ış

Container Storage Interface (CSI), rastgele blok ve dosya depolama sistemlerini Kubernetes üzerindeki kapsayıcılı iş yüklerinde kullanıma sunmaya yönelik bir standarttır. Arc tarafından etkinleştirilen AKS, CSI kullanarak yeni depolama sistemlerini kullanıma sunma amacıyla eklentiler 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 üzerindeki 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.

  • Podlara SMB veya NFS paylaşımını 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ı, kalıcı birimleri de 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 VM'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'in 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 alınan altyapı Azure Yerel 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 Yerel 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ı bir depolama yolu $storagepathnameoluş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. için storage path IDönceki adımda oluşturulan öğesini container kullanın. ve groupiçinhostname, 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