Azure Kubernetes Service'te Azure ultra diskleri kullanma
Azure ultra diskleri durum bilgisi olan uygulamalarınız için yüksek aktarım hızına, yüksek IOPS'ye ve tutarlı olarak düşük gecikme süresine sahip disk depolaması getirir. Ultra disklerin önemli avantajlarından biri aracı düğümlerinizi yeniden başlatmanıza gerek kalmadan SSD'nin ve iş yüklerinizin performansını dinamik olarak değiştirebilme özelliğidir. Ultra diskler yoğun veri gerektiren iş yüklerine uygundur.
Bu makalede Azure ultra diskleri kullanmak için yeni veya mevcut bir AKS kümesinin nasıl yapılandırıldığı açıklanmaktadır.
Başlamadan önce
Bu özellik yalnızca küme oluşturma sırasında veya düğüm havuzu oluşturulurken ayarlanabilir.
Sınırlamalar
- Azure ultra diskleri, kullanılabilirlik alanlarına ve bu diskleri destekleyen bölgelere dağıtılan düğüm havuzlarını gerektirir ve yalnızca belirli VM serisi tarafından desteklenir. Daha fazla bilgi için Ultra disk sınırlamaları bölümünün altındaki ilgili tabloyu gözden geçirin.
- Ultra diskler kullanılabilirlik kümeleri veya Azure Disk Şifrelemesi gibi bazı özellikler ve işlevlerle kullanılamaz. En son bilgiler için Ultra disk sınırlamalarını gözden geçirin.
Ultra diskleri kullanabilen bir küme oluşturma
Aşağıdaki CLI komutlarını kullanarak Azure ultra Disklerden yararlanabilen bir AKS kümesi oluşturun. --enable-ultra-ssd
Özelliği ayarlamak için parametresini EnableUltraSSD
kullanın.
az aks create \
--resource-group MyResourceGroup \
--name myAKSCluster \
--location westus2 \
--node-vm-size Standard_D2s_v3 \
--zones 1 2 \
--node-count 2 \
--enable-ultra-ssd \
--generate-ssh-keys
Ultra disk desteği olmadan bir küme oluşturmak istiyorsanız, parametresini --enable-ultra-ssd
atlayarak bunu yapabilirsiniz.
Mevcut kümede ultra diskleri etkinleştirme
Mevcut bir kümede ultra diskleri destekleyen yeni bir düğüm havuzu ekleyerek ultra diskleri etkinleştirebilirsiniz. komutuyla az aks nodepool add
parametresini kullanarak --enable-ultra-ssd
ultra diskleri kullanmak için yeni bir düğüm havuzu yapılandırın.
Ultra disk desteği olmadan yeni düğüm havuzları oluşturmak istiyorsanız, parametresini --enable-ultra-ssd
dışlayarak bunu yapabilirsiniz.
Bir depolama sınıfıyla ultra diskleri dinamik olarak kullanma
Dağıtımlarınızda veya durum bilgisi olan kümelerde ultra diskleri kullanmak için dinamik sağlama için bir depolama sınıfı kullanabilirsiniz.
Depolama sınıfını 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. Kubernetes depolama sınıfları hakkında daha fazla bilgi için bkz . Kubernetes depolama sınıfları. Bu örnekte ultra disklere başvuran bir depolama sınıfı oluşturacağız.
Adlı
azure-ultra-disk-sc.yaml
bir dosya oluşturun ve aşağıdaki bildirimde kopyalayın:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: ultra-disk-sc provisioner: disk.csi.azure.com # replace with "kubernetes.io/azure-disk" if aks version is less than 1.21 volumeBindingMode: WaitForFirstConsumer # optional, but recommended if you want to wait until the pod that will use this disk is created parameters: skuname: UltraSSD_LRS kind: managed cachingMode: None diskIopsReadWrite: "2000" # minimum value: 2 IOPS/GiB diskMbpsReadWrite: "320" # minimum value: 0.032/GiB
komutunu kullanarak depolama sınıfını
kubectl apply
oluşturun ve dosyanızıazure-ultra-disk-sc.yaml
belirtin.kubectl apply -f azure-ultra-disk-sc.yaml
Çıkışınız aşağıdaki örnek çıkışa benzemelidir:
storageclass.storage.k8s.io/ultra-disk-sc created
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. Bu durumda, bir PVC ultra disk oluşturmak için daha önce oluşturulmuş depolama sınıfını kullanabilir.
Adlı
azure-ultra-disk-pvc.yaml
bir dosya oluşturun ve aşağıdaki bildirimde kopyalayın:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ultra-disk spec: accessModes: - ReadWriteOnce storageClassName: ultra-disk-sc resources: requests: storage: 1000Gi
Talep, ReadWriteOnce erişimiyle boyutu 1000 GB olan adlı
ultra-disk
bir disk istemektedir. Ultra-disk-sc depolama sınıfı, depolama sınıfı olarak belirtilir.komutunu kullanarak
kubectl apply
kalıcı birim talebi oluşturun ve dosyanızıazure-ultra-disk-pvc.yaml
belirtin.kubectl apply -f azure-ultra-disk-pvc.yaml
Çıkışınız aşağıdaki örnek çıkışa benzemelidir:
persistentvolumeclaim/ultra-disk created
Kalıcı birimi kullanma
Kalıcı birim talebi oluşturulduktan ve disk başarıyla sağlandıktan sonra, diske erişim ile bir pod oluşturulabilir. Aşağıdaki bildirim, azure diskini yoluna /mnt/azure
bağlamak için ultra-disk adlı kalıcı birim talebi kullanan temel bir NGINX podunu oluşturur.
Adlı
nginx-ultra.yaml
bir dosya oluşturun ve aşağıdaki bildirimde kopyalayın:kind: Pod apiVersion: v1 metadata: name: nginx-ultra spec: containers: - name: nginx-ultra image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - mountPath: "/mnt/azure" name: volume volumes: - name: volume persistentVolumeClaim: claimName: ultra-disk
komutunu kullanarak
kubectl apply
pod oluşturun ve dosyanızınginx-ultra.yaml
belirtin.kubectl apply -f nginx-ultra.yaml
Çıkışınız aşağıdaki örnek çıkışa benzemelidir:
pod/nginx-ultra created
Artık azure diskinizin dizinine
/mnt/azure
bağlı olduğu çalışan bir podunuz var.komutunu kullanarak
kubectl describe pod
yapılandırma ayrıntılarınıza bakın ve dosyanızınginx-ultra.yaml
belirtin.kubectl describe pod nginx-ultra
Çıkışınız aşağıdaki örnek çıkışa benzemelidir:
[...] Volumes: volume: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: azure-managed-disk ReadOnly: false default-token-smm2n: Type: Secret (a volume populated by a Secret) SecretName: default-token-smm2n Optional: false [...] Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 2m default-scheduler Successfully assigned mypod to aks-nodepool1-79590246-0 Normal SuccessfulMountVolume 2m kubelet, aks-nodepool1-79590246-0 MountVolume.SetUp succeeded for volume "default-token-smm2n" Normal SuccessfulMountVolume 1m kubelet, aks-nodepool1-79590246-0 MountVolume.SetUp succeeded for volume "pvc-faf0f176-8b8d-11e8-923b-deb28c58d242" [...]
Sonraki adımlar
- Ultra diskler hakkında daha fazla bilgi için bkz . Azure ultra diskleri kullanma.
- Depolama için en iyi yöntemler hakkında daha fazla bilgi için bkz . AKS'de depolama ve yedeklemeler için en iyi yöntemler.
Azure Kubernetes Service