Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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çeklendirme bileşeni, kümenizde kaynak kısıtlamaları nedeniyle zamanlanamayan pod’ları 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, yeterince kullanılmayan düğümleri düzenli olarak kontrol eder ve iş yükleri güvenli bir şekilde yeniden planlanabildiğinde ve ölçek küçültme koşulları karşılandığında bunları kaldırı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.
Kümede küme otomatik ölçeklendiricisini etkinleştirme veya devre dışı bırakma
Önemli
Küme otomatik ölçeklendiricisi bir Kubernetes bileşenidir. AKS kümesi düğümler için Sanal Makine Ölçek Kümeleri kullansa 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
komutunu kullanarak
az group createbir kaynak grubu oluşturun.az group create --name myResourceGroup --location eastusaz aks createkomutunu kullanarak bir AKS kümesi oluşturun ve--enable-cluster-autoscalerparametresini kullanıp düğüm sayısı için en düşük--min-countve en yüksek--max-countdeğerlerini belirterek kümenin düğüm havuzunda küme otomatik ölçeklendiricisini etkinleştirip 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-keysKü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
az aks update komutunu kullanarak mevcut bir kümeyi güncelleştirin ve --enable-cluster-autoscaler parametresini kullanarak düğüm havuzunda küme otomatik ölçeklendiriciyi etkinleştirip yapılandırın ve bir düğüm --min-count ve --max-count belirterek bunu yapın. 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
az aks update komutunu ve --disable-cluster-autoscaler parametresini kullanarak küme otomatik ölçeklendiricisini 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ıyorsanız, küme otomatik ölçeklendiricisi devre dışıyken de çalışmaya devam eder; ancak tüm düğüm kaynakları kullanımdaysa podlar zamanlanamayabilir.
Bir kümede kümenin otomatik ölçeklendiricisini yeniden etkinleştirin
komutunu kullanarak ve , az aks updateve --enable-cluster-autoscaler parametrelerini belirterek mevcut bir kümede küme otomatik ölçeklendiricisini --min-count--max-countyeniden etkinleştirebilirsiniz.
Düğüm havuzlarında küme otomatik ölçeklendiricisini etkinleştirme veya devre dışı bırakma
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
Bir düğüm havuzunda küme otomatik ölçeklendiricisini, az aks nodepool update komutunu ve --disable-cluster-autoscaler parametresini kullanarak 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 , az aks nodepool updateve --enable-cluster-autoscaler parametrelerini belirterek düğüm havuzunda küme otomatik ölçeklendiricisini --min-count--max-countyeniden 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 tahliyesi sırasında veya AKS API’si üzerinden minimum sayı değerinin değiştirilmesi gibi dış etkenler nedeniyle mevcut düğüm sayısının minimum değerin altına düştüğü durumlarda minimum düğüm sayısını uygular.
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. Her düğüm havuzu için 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 | Açıklama | Varsayılan değer |
|---|---|---|
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çek büyütmeden ne kadar süre sonra ölçek küçültme değerlendirmesi yeniden başlar. | 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ğin küçültülmesinin başarısız olmasından ne kadar süre sonra küçültme değerlendirmesi yeniden başlar. | Üç dakika |
scale-down-unneeded-time |
Bir düğümün, ölçeğin küçültülmesi için uygun sayılmadan önce ne kadar süreyle gereksiz durumda kalması gerektiği. | 10 dakika |
scale-down-unready-time |
Hazır olmayan bir düğümün, ölçeğin küçültülmesi için uygun hale gelmeden önce ne kadar süre gereksiz kalması gerektiği. | 20 dakika |
ignore-daemonsets-utilization |
Ölçek küçültme sırasında kaynak kullanımının hesaplanmasında DaemonSet podlarının yok sayılıp sayı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 |
Tüm podların CPU isteklerinin toplamı ile Bellek isteklerinin toplamı arasındaki en büyük değer, düğümün karşılık gelen ayrılabilir kaynağına bölünür. Bu değerin altında bir düğüm için ölçek küçültme düşünülebilir. | 0,5 |
max-graceful-termination-sec |
Küme otomatik ölçeklendiricisinin, bir düğümü küçültmeye çalışırken podun sonlandırılması için 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 , , most-podsrandomve least-wastedeğerlerini içerirpriority. |
random |
skip-nodes-with-local-storage |
true ise, küme otomatik ölçekleyicisi yerel depolamaya sahip pod’lar içeren düğümleri, örneğin EmptyDir veya HostPath kullananları, silmez. |
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 hazır olmayan düğümlerin azami oranı. 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 hazır olmayan düğüm sayısı; max-total-unready-percentage değerinden bağımsız olarak. | Üç düğüm |
Not
ignore-daemonsets-utilization, daemonset-eviction-for-empty-nodes ve daemonset-eviction-for-occupied-nodes parametreleri, 2024-05-01 API sürümünden itibaren genel kullanıma sunulmuştur.
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
Mevcut bir kümede küme otomatik ölçeklendiricisini, az aks update komutunu ve cluster-autoscaler-profile parametresini kullanarak ayarlayın. Aşağıdaki örnek, tarama aralığı ayarını 30s olarak yapılandırı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
Kısa aralıklarla sık sık ölçeği büyütülüp küçültülen kümelerde, bu durum düğüm sağlama sürelerinin uzamasına neden olabileceğinden agresif ölçek küçültme önerilmez.
scale-down-delay-after-add değerini artırmak, bu durumlarda düğümün gelen iş yüklerini işlemek için daha uzun süre etkin kalmasını sağlayarak yardımcı olabilir.
Aşağıdaki komut agresif bir ölçek azaltma profili yapılandırır. Her 30 saniyede bir kümeyi tarar, bir düğüm eklendikten hemen sonra ve hatadan bir dakika sonra ölçeği azaltma değerlendirmesini sürdürür, üç dakika sonra gereksiz ve okunmamış düğümleri ölçeği azaltmaya uygun hale getirir, düzgün sonlandırmayı 30 saniyeyle sınırlar, aynı anda en fazla 1.000 boş düğümün silinmesine izin verir ve okunmamış düğüm sınırlarını yüzde 100 veya 1.000 düğüme yükseltir. Ayrıca yerel depolamaya sahip düğümleri atlamama ve bir düğümün sağlanması için 15 dakikaya kadar bekleme gibi varsayılan davranışı açıkça korur.
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
Aşağıdaki komut, ani artış gösteren iş yükleri için bir profil yapılandırır. Kümeyi her 20 saniyede bir tarar, gelen ani artışlar için kapasiteyi korumak üzere bir düğüm eklendikten sonra ölçeği azaltma değerlendirmesini 10 dakika boyunca duraklatır, hatadan bir dakika sonra değerlendirmeye devam eder, gereksiz ve okunmamış düğümleri beş dakika sonra ölçeği azaltmaya uygun hale getirir, düzgün sonlandırmayı 30 saniyeyle sınırlar, aynı anda en fazla 100 boş düğümün silinmesine izin verir, ve okunmamış düğüm sınırlarını yüzde 100 veya 1.000 düğüme yükseltir. Ayrıca yerel depolamaya sahip düğümleri atlamama ve bir düğümün sağlanması için 15 dakikaya kadar bekleme gibi varsayılan davranışı açıkça korur.
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 ile ProvisioningRequest kullanma
ProvisioningRequest , ilgili podlardan oluşan bir grup için kaynak istemek için kullanabileceğiniz özel bir kaynaktır. Küme otomatik ölçeklendiricisi bu podları tek bir birim olarak ele alır. Belirttiğiniz sağlama sınıfına bağlı olarak, küme otomatik ölçeklendiricisi podlar için mevcut kaynakları ayırabilir veya kümenin ölçeğini artırabilir.
Not
| Tedarik sınıfı | Açıklama |
|---|---|
check-capacity.autoscaling.x-k8s.io |
Kümenin belirtilen podlar için yeterli kaynağa sahip olup olmadığını denetler. Kaynaklar mevcutsa, küme otomatik ölçeklendiricisi, diğer ProvisioningRequest öğelerinin aynı kaynakları talep etmesini önlemek için bunları ProvisioningRequests için 10 dakika süreyle rezerve eder. |
best-effort-atomic-scale-up.autoscaling.x-k8s.io |
Küme otomatik ölçeklendiricisi, istenen kaynakların tamamını tek bir ölçeklendirme işleminde sağlamak için en iyi çabayı gösterir. Tümünü sağlayamazsa, ProvisioningRequest başarısız olur ve küme otomatik ölçeklendiricisi bir bekleme süresinin ardından bunu yeniden dener. |
Küme otomatik ölçeklendiricisi ve ProvisioningRequestile Kueue tümleştirmesini gösteren uçtan uca bir örnek için bkz. AKS'de küme otomatik ölçeklendiricisi ile Kueue'yi yapılandırma.
Küme otomatik ölçeklendiricisinin günlüklerini ve durumunu alın
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. Denetim düzlemi günlüklerini toplamak için Azure portalında AKS kümesi için bir Azure İzleyici tanılama ayarı oluşturun veya az monitor diagnostic-settings create kullanın ve cluster-autoscaler günlük kategorisini etkinleştirin.
Küme otomatik ölçeklendiricisi günlüklerini Log Analytics'e göndermek için, AKS denetim düzlemi için kaynak günlüğü toplamayı yapılandırma yönergelerini kullanarak kaynak günlükleri için bir kural ayarlayın.
cluster-autoscaleriçin seçenekleri seçerken kutusunu işaretlediğinizden emin olun.Kümenizdeki Günlükler bölümünü seçin.
Tanılama ayarlarınız Azure tanılama modunu kullanıyorsa, Log Analytics içine aşağıdaki sorguyu girin:
AzureDiagnostics | where Category == "cluster-autoscaler"Tanılama ayarlarınız kaynağa özgü modu kullanıyorsa bunun yerine aşağıdaki sorguyu girin:
AKSControlPlane | where Category == "cluster-autoscaler"CLI'da küme otomatik ölçeklendiricisinde ölçek büyütmenin tetiklenmediği olayları görüntüleyin.
kubectl get events --field-selector source=cluster-autoscaler,reason=NotTriggerScaleUpCLI'da küme otomatik ölçeklendiricisi uyarı olaylarını görüntüleyin.
kubectl get events --field-selector source=cluster-autoscaler,type=WarningKüme otomatik ölçeklendiricisi, sağlık durumunu
configmapadlı bircluster-autoscaler-statusöğesine de yazar. Aşağıdakikubectlkomutu kullanarak bu durumu alabilirsiniz:kubectl get configmap -n kube-system cluster-autoscaler-status -o yaml
Daha fazla bilgi için Kubernetes/autoscaler GitHub projesinin SSS bölümüne bakın.
Küme otomatik ölçeklendirme metrikleri
Denetim düzlemi ölçümlerini (Önizleme), Prometheus için Azure İzleyici yönetilen hizmeti ile küme otomatik ölçeklendirici ölçümlerini toplamak için kullanabilirsiniz. Kazıma controlplane-cluster-autoscaler hedefi varsayılan olarak devre dışıdır, bu nedenle bu ölçümleri toplamak için etkinleştirmeniz gerekir.
Kullanılabilir ölçümler arasında cluster_autoscaler_unschedulable_pods_count ve cluster_autoscaler_unneeded_nodes_count bulunur; bunlar, zamanlanamayan pod sayısını ve kaldırma adayı olarak işaretlenen düğümleri gösterir. Ayrıca, kümenin otomatik ölçeklendirme için güvenli olup olmadığını cluster_autoscaler_cluster_safe_to_autoscale ile ve ölçeğin küçültülmesinin bir bekleme süresinde olup olmadığını cluster_autoscaler_scale_down_in_cooldown ile izleyebilirsiniz.
İlgili içerik
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 kaynaklarının kullanımını daha da iyileştirmeye ve diğer podlar için CPU ile belleği serbest bırakmaya yardımcı olmak üzere, bkz: Dikey Pod Otomatik Ölçeklendirici.