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.
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.
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.
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:
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
$path
adlı bir depolama yolu$storagepathname
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
Yeni depolama yolunu kullanarak yeni bir özel depolama sınıfı oluşturun.
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
container
ile dışında varsayılan depolama sınıfıyla aynıdır. içinstorage path ID
önceki adımda oluşturulan öğesinicontainer
kullanın. vegroup
içinhostname
, komutunu çalıştırarakkubectl get storageclass default -o yaml
varsayı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
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