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:
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
$path
adlı$storagepathname
bir 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
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.storage path ID
içincontainer
önceki adımda oluşturulan öğesini kullanın. vehostname
içingroup
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
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin