Azure Kubernetes Service'te (AKS) küme otomatik ölçeklendiricisini kullanma

AKS'deki uygulama taleplerine ayak uydurmak için iş yüklerinizi çalıştıran düğüm sayısını ayarlamanız gerekebilir. Küme otomatik ölçeklendiricisi bileşeni, kaynak kısıtlamaları nedeniyle zamanlamayan kümenizdeki podları izler. Küme otomatik ölçeklendiricisi sorunları algıladığında, uygulama taleplerini karşılamak için düğüm havuzundaki düğüm sayısını artırır. Ayrıca düğümlerde çalışan pod eksikliği olup olmadığını düzenli olarak denetler ve gerektiğinde düğüm sayısını küçültür.

Bu makalede, açık kaynak Kubernetes sürümünü temel alan AKS'de küme otomatik ölçeklendiricisini etkinleştirme ve yönetme işlemleri gösterilmektedir.

Başlamadan önce

Bu makale, Azure CLI sürüm 2.0.76 veya üzerini gerektirir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

AKS kümesinde küme otomatik ölçeklendiricisini kullanma

Önemli

Küme otomatik ölçeklendiricisi bir Kubernetes bileşenidir. AKS kümesi, düğümler için bir sanal makine ölçek kümesi kullanıyor olsa da ölçek kümesi otomatik ölçeklendirme ayarlarını el ile etkinleştirmeyin veya düzenlemeyin. Kubernetes kümesi otomatik ölçeklendiricisinin gerekli ölçek ayarlarını yönetmesine izin verin. Daha fazla bilgi için bkz. Düğüm kaynak grubundaki AKS kaynaklarını değiştirebilir miyim?

Yeni bir kümede küme otomatik ölçeklendiricisini etkinleştirme

  1. komutunu kullanarak az group create bir kaynak grubu oluşturun.

    az group create --name myResourceGroup --location eastus
    
  2. komutunu kullanarak az aks create bir AKS kümesi oluşturun ve parametresini kullanarak ve ile bir düğüm --min-count --max-countbelirterek küme için düğüm havuzunda küme otomatik ölçeklendiricisini --enable-cluster-autoscaler etkinleştirin ve yapılandırın. Aşağıdaki örnek komut, sanal makine ölçek kümesi tarafından desteklenen tek bir düğüme sahip bir küme oluşturur, küme otomatik ölçeklendiricisini etkinleştirir, en az bir ve en fazla üç düğüm ayarlar:

    az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 1 \
    --vm-set-type VirtualMachineScaleSets \
    --load-balancer-sku standard \
    --enable-cluster-autoscaler \
    --min-count 1 \
    --max-count 3 \
    --generate-ssh-keys
    

    Kümenin oluşturulması ve küme otomatik ölçeklendiricisi ayarlarının yapılandırılması birkaç dakika sürer.

Mevcut bir kümede küme otomatik ölçeklendiricisini etkinleştirme

  • komutunu kullanarak mevcut bir kümeyi güncelleştirin az aks update ve parametresini kullanarak düğüm havuzunda küme otomatik ölçeklendiricisini --enable-cluster-autoscaler etkinleştirin ve yapılandırın ve bir düğüm --min-count ve --max-countbelirtin. Aşağıdaki örnek komut, küme için düğüm havuzunda küme otomatik ölçeklendiricisini etkinleştirmek üzere var olan bir AKS kümesini güncelleştirir ve en az bir ve en fazla üç düğüm ayarlar:

    az aks update \
      --resource-group myResourceGroup \
      --name myAKSCluster \
      --enable-cluster-autoscaler \
      --min-count 1 \
      --max-count 3
    

    Kümenin güncelleştirilip küme otomatik ölçeklendiricisi ayarlarının yapılandırılması birkaç dakika sürer.

Kümede küme otomatik ölçeklendiricisini devre dışı bırakma

  • komutunu ve parametresini kullanarak küme otomatik ölçeklendiricisini az aks update --disable-cluster-autoscaler devre dışı bırakın.

    az aks update \
      --resource-group myResourceGroup \
      --name myAKSCluster \
      --disable-cluster-autoscaler
    

    Küme otomatik ölçeklendiricisi devre dışı bırakıldığında düğümler kaldırılmaz.

Not

komutunu kullanarak az aks scale küme otomatik ölçeklendiricisini devre dışı bırakdıktan sonra kümenizi el ile ölçeklendirin. Yatay pod otomatik ölçeklendiricisini kullanırsanız, küme otomatik ölçeklendiricisi devre dışı bırakıldığında çalışmaya devam eder, ancak tüm düğüm kaynakları kullanılıyorsa podlar zamanlanamayabilir.

Kümede küme otomatik ölçeklendiricisini yeniden etkinleştirme

komutunu kullanarak ve , --min-countve --max-count parametrelerini belirterek mevcut bir kümede küme otomatik ölçeklendiricisini az aks update --enable-cluster-autoscaleryeniden etkinleştirebilirsiniz.

Düğüm havuzlarında küme otomatik ölçeklendiricisini kullanma

Birden çok düğüm havuzunda küme otomatik ölçeklendiricisini kullanma

Küme otomatik ölçeklendiricisini birden çok düğüm havuzuyla kullanabilir ve her düğüm havuzunda küme otomatik ölçeklendiricisini etkinleştirebilir ve bunlara benzersiz otomatik ölçeklendirme kuralları geçirebilirsiniz.

  • komutunu kullanarak mevcut düğüm havuzundaki ayarları güncelleştirin az aks nodepool update .

    az aks nodepool update \
      --resource-group myResourceGroup \
      --cluster-name myAKSCluster \
      --name nodepool1 \
      --update-cluster-autoscaler \
      --min-count 1 \
      --max-count 5
    

Düğüm havuzunda küme otomatik ölçeklendiricisini devre dışı bırakma

  • komutunu ve parametresini kullanarak düğüm havuzunda küme otomatik ölçeklendiricisini az aks nodepool update --disable-cluster-autoscaler devre dışı bırakın.

    az aks nodepool update \
      --resource-group myResourceGroup \
      --cluster-name myAKSCluster \
      --name nodepool1 \
      --disable-cluster-autoscaler
    

Düğüm havuzunda küme otomatik ölçeklendiricisini yeniden etkinleştirme

komutunu kullanarak ve , --min-countve --max-count parametrelerini belirterek düğüm havuzunda küme otomatik ölçeklendiricisini az aks nodepool update --enable-cluster-autoscaleryeniden etkinleştirebilirsiniz.

Not

Küme otomatik ölçeklendiricisini birden çok bölgeye yayılan düğüm havuzlarıyla kullanmayı planlıyorsanız ve birim topolojik zamanlaması gibi bölgelerle ilgili zamanlama özelliklerinden yararlanıyorsanız, bölge başına bir düğüm havuzunuz olmasını ve otomatik ölçeklendirici profili aracılığıyla etkinleştirmenizi --balance-similar-node-groups öneririz. Bu, otomatik ölçeklendiricinin ölçeğini başarıyla artırabilmesini ve düğüm havuzlarının boyutlarını dengeli tutmasını sağlar.

Küme otomatik ölçeklendiricisi ayarlarını güncelleştirme

Uygulamanız değiştikçe, verimli bir şekilde ölçeklendirmek için küme otomatik ölçeklendiricisi düğüm sayısını ayarlamanız gerekebilir.

  • komutunu kullanarak az aks update düğüm sayısını değiştirin ve parametresini kullanarak küme otomatik ölçeklendiricisini güncelleştirin --update-cluster-autoscaler ve güncelleştirilmiş düğümünüzü --min-count ve --max-countbelirtin.

    az aks update \
      --resource-group myResourceGroup \
      --name myAKSCluster \
      --update-cluster-autoscaler \
      --min-count 1 \
      --max-count 5
    

Not

Küme otomatik ölçeklendiricisi, spot çıkarma sırasında veya AKS API'sinden en düşük sayı değerini değiştirme gibi dış faktörler nedeniyle gerçek sayının minimum sayının altına düştüğü durumlarda minimum sayıyı zorlar.

Küme otomatik ölçeklendirici profilini kullanma

Küme genelindeki otomatik ölçeklendirici profilindeki varsayılan değerleri değiştirerek küme otomatik ölçeklendiricisinin daha ayrıntılı ayrıntılarını yapılandırabilirsiniz. Örneğin, 10 dakika sonra düğümler yetersiz kullanıldıktan sonra ölçeği azaltma olayı gerçekleşir. 15 dakikada bir çalışan iş yükleriniz varsa, otomatik ölçeklendirici profilini 15 veya 20 dakika sonra yetersiz kullanılan düğümlerin ölçeğini azaltacak şekilde değiştirmek isteyebilirsiniz. Küme otomatik ölçeklendiricisini etkinleştirdiğinizde, farklı ayarlar belirtmediğiniz sürece varsayılan bir profil kullanılır.

Önemli

Küme otomatik ölçeklendiricisi profili, küme otomatik ölçeklendiricisini kullanan tüm düğüm havuzlarını etkiler. Düğüm havuzu başına otomatik ölçeklendirici profili ayarlayamazsınız. Profili ayarladığınızda, küme otomatik ölçeklendiricisi etkinleştirilmiş mevcut düğüm havuzları hemen profili kullanmaya başlar.

Küme otomatik ölçeklendiricisi profil ayarları

Aşağıdaki tabloda, küme otomatik ölçeklendirici profili için kullanılabilir ayarlar listelenir:

Ayar Veri Akışı Açıklaması Default value
scan-interval Kümenin ölçeği artırma veya azaltma için yeniden değerlendirilme sıklıkları. 10 saniye
scale-down-delay-after-add Ölçeği artırdıktan ne kadar süre sonra bu ölçeği azaltma değerlendirmesi sürdürülür. 10 dakika
scale-down-delay-after-delete Ölçeği azaltan düğüm silme işleminden sonra değerlendirmenin sürdürülme süresi. scan-interval
scale-down-delay-after-failure Ölçeği azaltma hatasından ne kadar süre sonra değerlendirme sürdürülür. Üç dakika
scale-down-unneeded-time Bir düğümün ölçeği azaltmaya uygun hale gelmeden önce ne kadar süreyle gereksiz olması gerektiği. 10 dakika
scale-down-unready-time Ölçek azaltmaya uygun hale gelmeden önce okunmamış bir düğümün ne kadar süreyle gereksiz olması gerektiği. 20 dakika
ignore-daemonsets-utilization Ölçek azaltma için kaynak kullanımı hesaplanırken DaemonSet podlarının yoksayılıp yoksayılmayacağı. false
daemonset-eviction-for-empty-nodes DaemonSet podlarının boş düğümlerden düzgün bir şekilde sonlandırılıp sonlandırılmayacağı. false
daemonset-eviction-for-occupied-nodes DaemonSet podlarının boş olmayan düğümlerden düzgün bir şekilde sonlandırılıp sonlandırılmayacağı. true
scale-down-utilization-threshold Bir düğümün ölçeği küçültmek için dikkate alınabileceği, istenen kaynakların kapasiteye bölünmesi sonucu tanımlanan düğüm kullanım düzeyi. 0,5
max-graceful-termination-sec Küme otomatik ölçeklendiricisinin bir düğümün ölçeğini azaltmaya çalışırken pod sonlandırmasını beklediği en fazla saniye sayısı. 600 saniye
balance-similar-node-groups Benzer düğüm havuzlarını algılar ve aralarındaki düğüm sayısını dengeler. false
expander Ölçek artırmada kullanılan düğüm havuzu genişletici türü. Olası değerler , , randomleast-wasteve prioritydeğerlerini içerirmost-pods. random
skip-nodes-with-local-storage küme otomatik ölçeklendiricisi yerel depolamaya sahip podları olan düğümleri silmezse true( örneğin, EmptyDir veya HostPath). false
skip-nodes-with-system-pods ise true, küme otomatik ölçeklendiricisi kube-system'den pod içeren düğümleri silmez (DaemonSet veya yansıtma podları hariç). true
max-empty-bulk-delete Aynı anda silinebilecek en fazla boş düğüm sayısı. 10 düğüm
new-pod-scale-up-delay Kubernetes zamanlayıcısının tüm podları zamanlayabilmesi için CA'nın harekete geçmesini istemediğiniz seri/toplu ölçek gibi senaryolar için CA'ya belirli bir yaşa ulaşmadan önce zamanlanmamış podları yoksaymasını söyleyebilirsiniz. 0 saniye
max-total-unready-percentage Kümedeki okunmamış düğümlerin en yüksek yüzdesi. Bu yüzde aşıldıktan sonra CA işlemleri durdurur. %45
max-node-provision-time Otomatik ölçeklendiricinin bir düğümün sağlanmasını beklediği maksimum süre. 15 dakika
ok-total-unready-count İzin verilen okunmamış düğüm sayısı; en fazla toplam-okunmamış-yüzdeden bağımsız olarak. Üç düğüm

Not

ignore-daemonsets-utilization, daemonset-eviction-for-empty-node ve daemonset-eviction-for-occupied-node parametreleri API sürüm 2024-05-01'den GA'dır. Bu bayrakları güncelleştirmek için CLI kullanıyorsanız lütfen 2.63 veya sonraki bir sürümü kullandığınızdan emin olun.

Yeni bir kümede küme otomatik ölçeklendiricisi profilini ayarlama

  • komutunu kullanarak az aks create bir AKS kümesi oluşturun ve parametresini kullanarak cluster-autoscaler-profile küme otomatik ölçeklendirici profilini ayarlayın.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 1 \
        --enable-cluster-autoscaler \
        --min-count 1 \
        --max-count 3 \
        --cluster-autoscaler-profile scan-interval=30s \
        --generate-ssh-keys
    

Mevcut bir kümede küme otomatik ölçeklendiricisi profilini ayarlama

  • komutunu ve parametresini kullanarak mevcut bir kümede küme otomatik ölçeklendiricisini az aks update cluster-autoscaler-profile ayarlayın. Aşağıdaki örnekte tarama aralığı ayarı 30'lar olarak yapılandırılır:

    az aks update \
      --resource-group myResourceGroup \
      --name myAKSCluster \
      --cluster-autoscaler-profile scan-interval=30s
    

Agresif ölçek azaltma için küme otomatik ölçeklendirici profilini yapılandırma

Not

Bu koşullar altında genişletilmiş düğüm sağlama sürelerine neden olabileceğinden, ölçeği kısa aralıklarla sık sık genişletilen ve ölçeği daraltan kümeler için ölçeğin agresif bir şekilde küçültülmesi önerilmez. Artan bu scale-down-delay-after-add durumlarda düğümün gelen iş yüklerini işlemek için daha uzun süre kalmasını sağlayarak yardımcı olabilir.

 az aks update \
     --resource-group myResourceGroup \
     --name myAKSCluster \
     --cluster-autoscaler-profile scan-interval=30s,scale-down-delay-after-add=0m,scale-down-delay-after-failure=1m,scale-down-unneeded-time=3m,scale-down-unready-time=3m,max-graceful-termination-sec=30,skip-nodes-with-local-storage=false,max-empty-bulk-delete=1000,max-total-unready-percentage=100,ok-total-unready-count=1000,max-node-provision-time=15m

Ani iş yükleri için küme otomatik ölçeklendiricisi profilini yapılandırma

 az aks update \   
     --resource-group "myResourceGroup" \
     --name myAKSCluster \ 
     --cluster-autoscaler-profile scan-interval=20s,scale-down-delay-after-add=10m,scale-down-delay-after-failure=1m,scale-down-unneeded-time=5m,scale-down-unready-time=5m,max-graceful-termination-sec=30,skip-nodes-with-local-storage=false,max-empty-bulk-delete=100,max-total-unready-percentage=100,ok-total-unready-count=1000,max-node-provision-time=15m

Küme otomatik ölçeklendirici profilini varsayılan değerlere sıfırlama

  • komutunu kullanarak küme otomatik ölçeklendirici profilini sıfırlayın az aks update .

    az aks update \
      --resource-group myResourceGroup \
      --name myAKSCluster \
      --cluster-autoscaler-profile ""
    

Küme otomatik ölçeklendiricisi günlüklerini ve durumunu alma

Otomatik ölçeklendirici olaylarını tanılamaya ve hatalarını ayıklamaya yardımcı olmak için küme otomatik ölçeklendiricisinden günlükleri ve durum güncelleştirmelerini alabilirsiniz. AKS, küme otomatik ölçeklendiricisini sizin yerinize yönetir ve yönetilen denetim düzleminde çalıştırır. Küme otomatik ölçeklendiricisinden günlükleri ve işlemleri görmek için denetim düzlemi düğümünü etkinleştirebilirsiniz.

  1. Buradaki yönergeleri kullanarak küme otomatik ölçeklendirici günlüklerini Log Analytics'e göndermek için kaynak günlükleri için bir kural ayarlayın. Günlükler için seçenekleri seçerken kutusunu cluster-autoscaler işaretlediğinizden emin olun.

  2. Kümenizdeki Günlük bölümünü seçin.

  3. Log Analytics'e aşağıdaki örnek sorguyu girin:

    AzureDiagnostics
    | where Category == "cluster-autoscaler"
    
  4. CLI'da tetiklenmeyen olayları küme otomatik ölçeklendiricisi ölçeğini görüntüleyin.

    kubectl get events --field-selector source=cluster-autoscaler,reason=NotTriggerScaleUp
    
  5. CLI'da küme otomatik ölçeklendiricisi uyarı olaylarını görüntüleyin.

    kubectl get events --field-selector source=cluster-autoscaler,type=Warning
    
  6. Küme otomatik ölçeklendiricisi, sistem durumunu adlandırılmış cluster-autoscaler-statusbir configmap öğesine de yazar. Aşağıdaki kubectl komutu kullanarak bu günlükleri alabilirsiniz:

    kubectl get configmap -n kube-system cluster-autoscaler-status -o yaml
    

Daha fazla bilgi için bkz . Kubernetes/autoscaler GitHub projesi hakkında SSS.

Küme Otomatik Ölçeklendiricisi Ölçümleri

Prometheus eklentisi için Azure İzleyici yönetilen hizmetiyle küme otomatik ölçeklendiricisinden günlükleri ve işlemleri görmek için denetim düzlemi ölçümlerini (Önizleme) etkinleştirebilirsiniz

Sonraki adımlar

Bu makalede AKS düğümlerinin sayısını otomatik olarak ölçeklendirme işlemi gösterildi. Uygulamanızı çalıştıran pod sayısını otomatik olarak ayarlamak için yatay pod otomatik ölçeklendiricisini de kullanabilirsiniz. Yatay pod otomatik ölçeklendiricisini kullanma adımları için bkz . AKS'de uygulamaları ölçeklendirme.

Küme kaynak kullanımını iyileştirmeye ve diğer podlar için CPU ve bellek boşaltmaya yardımcı olmak için bkz . Dikey Pod Otomatik Ölçeklendiricisi.