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
komutunu kullanarak
az group create
bir kaynak grubu oluşturun.az group create --name myResourceGroup --location eastus
komutunu kullanarak
az aks create
bir AKS kümesi oluşturun ve parametresini kullanarak ve ile bir düğüm--min-count
--max-count
belirterek 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-count
belirtin. 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-count
ve --max-count
parametrelerini belirterek mevcut bir kümede küme otomatik ölçeklendiricisini az aks update
--enable-cluster-autoscaler
yeniden 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-count
ve --max-count
parametrelerini belirterek düğüm havuzunda küme otomatik ölçeklendiricisini az aks nodepool update
--enable-cluster-autoscaler
yeniden 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-count
belirtin.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 , , random least-waste ve priority değ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 kullanarakcluster-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.
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.Kümenizdeki Günlük bölümünü seçin.
Log Analytics'e aşağıdaki örnek sorguyu girin:
AzureDiagnostics | where Category == "cluster-autoscaler"
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
CLI'da küme otomatik ölçeklendiricisi uyarı olaylarını görüntüleyin.
kubectl get events --field-selector source=cluster-autoscaler,type=Warning
Küme otomatik ölçeklendiricisi, sistem durumunu adlandırılmış
cluster-autoscaler-status
birconfigmap
öğesine de yazar. Aşağıdakikubectl
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.
Azure Kubernetes Service