Azure Container Storage Preview'ı yerel NVMe ve birim çoğaltma ile kullanma
Azure Container Storage , kapsayıcılar için yerel olarak oluşturulmuş bulut tabanlı bir birim yönetimi, dağıtımı ve düzenleme hizmetidir. Bu makalede, Azure Container Storage'ı Kubernetes iş yükleriniz için arka uç depolama alanı olarak yerel NVMe ve birim çoğaltma ile Kısa Ömürlü Disk kullanacak şekilde nasıl yapılandırabileceğiniz gösterilmektedir. Sonunda, depolama alanı olarak yerel NVMe kullanan bir pod'nuz olacak. Çoğaltma, verileri farklı düğümlerdeki birimler arasında kopyalar ve bir çoğaltma kaybolduğunda birimi geri yükleyerek Kısa Ömürlü Disk için dayanıklılık sağlar.
Kısa Ömürlü Disk nedir?
Uygulamanızın milisaniyenin altında depolama gecikme süresine ihtiyacı olduğunda, performans gereksinimlerinizi karşılamak için Azure Container Storage ile Kısa Ömürlü Disk'i kullanabilirsiniz. Kısa ömürlü, disklerin AKS kümesini barındıran yerel sanal makineye (VM) dağıtıldığını ve Azure depolama hizmetine kaydedilmediğini gösterir. VM'nizi durdurur/serbest bırakırsanız bu disklerdeki veriler kaybolur.
İki tür Kısa Ömürlü Disk vardır: NVMe ve geçici SSD. NVMe, depolama ve CPU arasında yüksek hızlı veri aktarımı için tasarlanmıştır. Uygulamanız geçici SSD'den daha yüksek IOPS ve aktarım hızı gerektirdiğinde veya iş yükünüz çoğaltma gerektiriyorsa NVMe'yi seçin. Geçici SSD için çoğaltma şu anda desteklenmiyor.
Önkoşullar
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Bu makale, Azure CLI'nın en son sürümünü (2.35.0 veya üzeri) gerektirir. Bkz. Azure CLI'yi yükleme. Azure Cloud Shell'de Bash ortamını kullanıyorsanız en son sürüm zaten yüklüdür. Komutları Azure Cloud Shell yerine yerel olarak çalıştırmayı planlıyorsanız, bunları yönetici ayrıcalıklarıyla çalıştırdığınızdan emin olun. Daha fazla bilgi için bkz . Azure Cloud Shell'i kullanmaya başlama.
Kubernetes komut satırı istemcisine ihtiyacınız olacaktır.
kubectl
Azure Cloud Shell kullanıyorsanız zaten yüklüdür veya komutunu çalıştırarakaz aks install-cli
yerel olarak yükleyebilirsiniz.Azure Container Storage'ı henüz yüklemediyseniz Azure Container Storage'ı Azure Kubernetes Service ile kullanma başlığındaki yönergeleri izleyin.
Hedef bölgenizin Azure Container Storage bölgelerinde desteklenip desteklenmediğini denetleyin.
Yerel NVMe'yi destekleyen bir VM türü seçin
Kısa Ömürlü Disk yalnızca belirli vm türlerinde kullanılabilir. Yerel NVMe kullanmayı planlıyorsanız, standard_l8s_v3 gibi depolama için iyileştirilmiş bir VM gereklidir.
Düğüm havuzunuzda kullanılan VM türünü almak için aşağıdaki komutu çalıştırabilirsiniz.
az aks nodepool list --resource-group <resource group> --cluster-name <cluster name> --query "[].{PoolName:name, VmSize:vmSize}" -o table
Aşağıda bir çıkış örneği verilmiştir.
PoolName VmSize
---------- ---------------
nodepool1 standard_l8s_v3
Her VM'nin en az dört sanal CPU'su (vCPU) ve her düğüm havuzunun en az üç düğümü olması önerilir.
Kalıcı birimler oluşturma ve ekleme
Kalıcı birim oluşturmak ve eklemek için bu adımları izleyin.
1. Birim çoğaltma ile depolama havuzu oluşturma
Çoğaltma ile yerel NVMe kullanarak depolama havuzu oluşturmak için bu adımları izleyin. Azure Container Storage şu anda üç çoğaltmalı ve beş çoğaltmalı yapılandırmaları desteklemektedir. Üç çoğaltma belirtirseniz AKS kümenizde en az üç düğüm olmalıdır. Beş çoğaltma belirtirseniz en az beş düğüme sahip olmanız gerekir.
Not
Kısa Ömürlü Disk depolama havuzları kullanılabilir tüm NVMe disklerini tükettiğinden, yeni bir depolama havuzu oluşturmadan önce mevcut yerel NVMe depolama havuzlarını silmeniz gerekir.
Gibi
code acstor-storagepool.yaml
bir YAML bildirim dosyası oluşturmak için sık kullandığınız metin düzenleyiciyi kullanın.Aşağıdaki kodu yapıştırın ve dosyayı kaydedin. Depolama havuzu adı değeri istediğiniz gibi olabilir. Çoğaltmaları 3 veya 5 olarak ayarlayın.
apiVersion: containerstorage.azure.com/v1 kind: StoragePool metadata: name: ephemeraldisk-nvme namespace: acstor spec: poolType: ephemeralDisk: diskType: nvme replicas: 3
Depolama havuzunu oluşturmak için YAML bildirim dosyasını uygulayın.
kubectl apply -f acstor-storagepool.yaml
Depolama havuzu oluşturma işlemi tamamlandığında aşağıdaki gibi bir ileti görürsünüz:
storagepool.containerstorage.azure.com/ephemeraldisk-nvme created
Depolama havuzunun durumunu denetlemek için bu komutu da çalıştırabilirsiniz. değerini depolama havuzu adı değerinizle değiştirin
<storage-pool-name>
. Bu örnekte değer ephemeraldisk-nvme olacaktır.kubectl describe sp <storage-pool-name> -n acstor
Depolama havuzu oluşturulduğunda, Azure Container Storage adlandırma kuralını acstor-<storage-pool-name>
kullanarak sizin adınıza bir depolama sınıfı oluşturur.
2. Kullanılabilir depolama sınıflarını görüntüleme
Depolama havuzu kullanıma hazır olduğunda, birimleri oluştururken ve dağıtırken depolamanın nasıl dinamik olarak oluşturulduğunu tanımlamak için bir depolama sınıfı seçmeniz gerekir.
Kullanılabilir depolama sınıflarını görüntülemek için komutunu çalıştırın kubectl get sc
. adlı acstor-<storage-pool-name>
bir depolama sınıfı görmeniz gerekir.
$ kubectl get sc | grep "^acstor-"
acstor-azuredisk-internal disk.csi.azure.com Retain WaitForFirstConsumer true 65m
acstor-ephemeraldisk-nvme containerstorage.csi.azure.com Delete WaitForFirstConsumer true 2m27s
Önemli
İç olarak işaretlenmiş depolama sınıfını kullanmayın. Bu, Azure Container Storage'ın çalışması için gereken bir iç depolama sınıfıdır.
3. Kalıcı birim talebi oluşturma
Depolama sınıfına göre depolamayı otomatik olarak sağlamak için kalıcı birim talebi (PVC) kullanılır. Yeni depolama sınıfını kullanarak bir PVC oluşturmak için bu adımları izleyin.
Gibi
code acstor-pvc.yaml
bir YAML bildirim dosyası oluşturmak için sık kullandığınız metin düzenleyiciyi kullanın.Aşağıdaki kodu yapıştırın ve dosyayı kaydedin. PVC
name
değeri istediğiniz gibi olabilir.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ephemeralpvc spec: accessModes: - ReadWriteOnce storageClassName: acstor-ephemeraldisk-nvme # replace with the name of your storage class if different resources: requests: storage: 100Gi
Birimlerinizin depolama boyutunu değiştirdiğinizde, boyutun tek bir düğümün kısa ömürlü diskinin kullanılabilir kapasitesinden küçük olduğundan emin olun. Bkz. Düğüm kısa ömürlü disk kapasitesini denetleme.
PVC'yi oluşturmak için YAML bildirim dosyasını uygulayın.
kubectl apply -f acstor-pvc.yaml
Aşağıdakine benzer bir çıktı görmeniz gerekir:
persistentvolumeclaim/ephemeralpvc created
Aşağıdaki komutu çalıştırarak PVC'nin durumunu doğrulayabilirsiniz:
kubectl describe pvc ephemeralpvc
PVC oluşturulduktan sonra bir pod tarafından kullanılmaya hazır olur.
4. Pod dağıtma ve kalıcı birim ekleme
Karşılaştırma ve iş yükü benzetimi için Fio (Esnek G/Ç TestLeyicisi) kullanarak bir pod oluşturun ve kalıcı birim için bir bağlama yolu belirtin. claimName için, kalıcı birim talebi oluştururken kullandığınız ad değerini kullanın.
Gibi
code acstor-pod.yaml
bir YAML bildirim dosyası oluşturmak için sık kullandığınız metin düzenleyiciyi kullanın.Aşağıdaki kodu yapıştırın ve dosyayı kaydedin.
kind: Pod apiVersion: v1 metadata: name: fiopod spec: nodeSelector: acstor.azure.com/io-engine: acstor volumes: - name: ephemeralpv persistentVolumeClaim: claimName: ephemeralpvc containers: - name: fio image: nixery.dev/shell/fio args: - sleep - "1000000" volumeMounts: - mountPath: "/volume" name: ephemeralpv
Podu dağıtmak için YAML bildirim dosyasını uygulayın.
kubectl apply -f acstor-pod.yaml
Aşağıdakine benzer bir çıktı görmeniz gerekir:
pod/fiopod created
Pod'un çalışıp çalışmadığını ve kalıcı birim talebin poda başarıyla bağlanıp bağlanmadığını denetleyin:
kubectl describe pod fiopod kubectl describe pvc ephemeralpvc
Geçerli durumunu görmek için fio testini denetleyin:
kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
Şimdi birim çoğaltması ile yerel NVMe kullanan bir pod dağıttınız ve bunu Kubernetes iş yükleriniz için kullanabilirsiniz.
Birimleri ve depolama havuzlarını yönetme
Bu bölümde, tek bir düğüm için kısa ömürlü diskin kullanılabilir kapasitesini denetlemeyi, kalıcı birimi ayırmayı ve yeniden takmayı ve depolama havuzunu genişletmeyi veya silmeyi öğreneceksiniz.
Düğüm kısa ömürlü disk kapasitesini denetleme
Kısa ömürlü birim tek bir düğümde ayrılır. Kısa ömürlü birimlerinizin boyutunu yapılandırdığınızda, boyut tek düğümün kısa ömürlü diskinin kullanılabilir kapasitesinden küçük olmalıdır.
Tek bir düğüm için kısa ömürlü diskin kullanılabilir kapasitesini denetlemek için aşağıdaki komutu çalıştırın.
$ kubectl get diskpool -n acstor
NAME CAPACITY AVAILABLE USED RESERVED READY AGE
ephemeraldisk-nvme-diskpool-jaxwb 75660001280 75031990272 628011008 560902144 True 21h
ephemeraldisk-nvme-diskpool-wzixx 75660001280 75031990272 628011008 560902144 True 21h
ephemeraldisk-nvme-diskpool-xbtlj 75660001280 75031990272 628011008 560902144 True 21h
Bu örnekte, tek bir düğüm için kısa ömürlü diskin kullanılabilir kapasitesi bayt veya 69 GiB'dir 75031990272
.
Kalıcı birimi ayırma ve yeniden ekleme
Kalıcı bir birimi ayırmak için, kalıcı birimin bağlı olduğu podu silin.
kubectl delete pods <pod-name>
Kalıcı bir birimi yeniden eklemek için, pod dağıtma ve kalıcı birim ekleme bölümünde açıklandığı gibi YAML bildirim dosyasındaki kalıcı birim talep adına başvurmanız yeterlidir.
Kalıcı birim talebin hangi kalıcı birime bağlı olduğunu denetlemek için şunu çalıştırın:
kubectl get pvc <persistent-volume-claim-name>
Depolama havuzunu genişletme
Yerel NVMe tarafından yedeklenen depolama havuzlarını genişleterek ölçeği hızla ve kapalı kalma süresi olmadan artırabilirsiniz. Depolama havuzlarının küçültülmesi şu anda desteklenmiyor.
Kısa Ömürlü Disk tarafından yedeklenen bir depolama havuzu AKS kümesi düğümlerinde (VM' ler) yerel depolama kaynaklarını kullandığından, depolama havuzunu genişletmek için kümeye başka bir düğüm eklenmesi gerekir. Depolama havuzunu genişletmek için bu yönergeleri izleyin.
AKS kümesine düğüm eklemek için aşağıdaki komutu çalıştırın.
<cluster-name>
,<nodepool name>
ve<resource-group-name>
değerleini kendi değerlerinizle değiştirin. Düğüm havuzunuzun adını almak için komutunu çalıştırınkubectl get nodes
.az aks nodepool add --cluster-name <cluster name> --name <nodepool name> --resource-group <resource group> --node-vm-size Standard_L8s_v3 --node-count 1 --labels acstor.azure.com/io-engine=acstor
komutunu çalıştırdığınızda
kubectl get nodes
kümeye bir düğüm eklendiğini görürsünüz.komutunu çalıştırdığınızda
kubectl get sp -A
depolama havuzunun kapasitesinin arttığını görmeniz gerekir.
Depolama havuzunu silme
Depolama havuzunu silmek istiyorsanız aşağıdaki komutu çalıştırın. değerini depolama havuzu adıyla değiştirin <storage-pool-name>
.
kubectl delete sp -n acstor <storage-pool-name>
Ayrıca bkz.
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