Aracılığıyla paylaş


Azure Kubernetes Service'te (AKS) küme otomatik ölçeklendirmeye genel bakış

Azure Kubernetes Service'teki (AKS) 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 zamanlanmamış podlar algıladığında, uygulama talebini karşılamak için düğüm havuzundaki düğüm sayısını artırır. Ayrıca zamanlanmış podları olmayan düğümleri düzenli olarak denetler ve gerektiğinde düğüm sayısını küçültür.

Bu makale, küme otomatik ölçeklendiricisinin AKS'de nasıl çalıştığını anlamanıza yardımcı olur. Ayrıca AKS iş yükleriniz için küme otomatik ölçeklendiricisini yapılandırırken rehberlik, en iyi yöntemler ve dikkat edilmesi gerekenler sağlar. AKS iş yükleriniz için küme otomatik ölçeklendiricisini etkinleştirmek, devre dışı bırakmak veya güncelleştirmek istiyorsanız bkz . AKS'de küme otomatik ölçeklendiricisini kullanma.

Küme otomatik ölçeklendiricisi hakkında

Kümelerin genellikle iş günleri ve akşamlar ya da hafta sonları gibi değişen uygulama taleplerine uyum sağlamak için otomatik olarak ölçeklendirmek için bir yönteme ihtiyacı vardır. AKS kümeleri aşağıdaki yollarla ölçeklendirilebilir:

  • Küme otomatik ölçeklendiricisi , kaynak kısıtlamaları nedeniyle düğümlerde zamanlamayan podları düzenli aralıklarla denetler. Küme daha sonra düğüm sayısını otomatik olarak artırır. Küme otomatik ölçeklendiricisini kullandığınızda el ile ölçeklendirme devre dışı bırakılır. Daha fazla bilgi için bkz . Ölçeği artırma nasıl çalışır?.
  • Yatay Pod Otomatik Ölçeklendiricisi, podların kaynak talebini izlemek için Kubernetes kümesindeki Ölçüm Sunucusu'nu kullanır. Bir uygulamanın daha fazla kaynağa ihtiyacı varsa, talebi karşılamak için pod sayısı otomatik olarak artırılır.
  • Dikey Pod Otomatik Ölçeklendiricisi, podların gerekli CPU ve bellek kaynaklarına sahip düğümlere zamanlandığından emin olmak için geçmiş kullanıma göre iş yükü başına kapsayıcılara yönelik kaynak isteklerini ve sınırlarını otomatik olarak ayarlar.

Küme otomatik ölçeklendiricisi ve yatay pod otomatik ölçeklendiricisinin gerekli uygulama taleplerini desteklemek için genellikle birlikte nasıl çalıştığını gösteren ekran görüntüsü.

Düğümler için küme otomatik ölçeklendiricisini ve podlar için Dikey Pod Otomatik Ölçeklendiricisi'ni veya Yatay Pod Otomatik Ölçeklendiricisini etkinleştirmek yaygın bir uygulamadır. Küme otomatik ölçeklendiricisini etkinleştirdiğinizde, düğüm havuzu boyutu en yüksek düğüm sayısına kadar en düşük düğüm sayısının altında olduğunda belirtilen ölçeklendirme kurallarını uygular. Küme otomatik ölçeklendiricisi, düğüm havuzunda yeni bir düğüm gerekinceye kadar veya bir düğüm geçerli düğüm havuzundan güvenli bir şekilde silinene kadar geçerlilik kazanır. Daha fazla bilgi için bkz. Ölçeği azaltma nasıl çalışır?

En iyi yöntemler ve dikkat edilmesi gerekenler

  • Kullanılabilirlik alanlarını küme otomatik ölçeklendiricisi ile uygularken, her bölge için tek düğümlü bir havuz kullanmanızı öneririz. Ölçek artırma işlemleri sırasında iş yükleriniz için bölgeler arasında düğümlerin dengeli dağıtımını korumak için parametresini True olarak ayarlayabilirsiniz--balance-similar-node-groups. Bu yaklaşım uygulanmadığında, ölçeği azaltma işlemleri bölgeler arasında düğümlerin dengelerini bozabilir.
  • 400'den fazla düğüme sahip kümeler için Azure CNI veya Azure CNI Katman'ı kullanmanızı öneririz.
  • İş yüklerini hem Spot hem de Sabit düğüm havuzlarında eşzamanlı olarak çalıştırmak için öncelik genişleticileri kullanmayı göz önünde bulundurun. Bu yaklaşım, düğüm havuzunun önceliğine göre pod zamanlamanıza olanak tanır.
  • Podlara CPU/Bellek istekleri atarken dikkatli olun. Küme otomatik ölçeklendiricisi, düğümlerdeki CPU/Bellek baskısı yerine bekleyen podlara göre ölçeklendirilir.
  • Hem web uygulamaları gibi uzun süre çalışan iş yüklerini hem de kısa/hızlı iş iş yüklerini eşzamanlı olarak barındıran kümeler için, gereksiz düğüm boşaltma veya ölçeği azaltma işlemlerini önlemeye yardımcı olmak için bunları Benşim Kuralları/genişleticileri olan ayrı düğüm havuzlarına ayırmanızı veya PodDisruptionBudget kullanmanızı öneririz. Ek açıklamanın belirtilmesi cluster-autoscaler.kubernetes.io/safe-to-evict: Pod belirtiminde "false" , podların çıkarılmasını da engeller. Küme Otomatik Ölçeklendiricisi bu ek açıklamayı içeren çalışan bir Pod ile düğüm boşaltılırken sorunlarla karşılaşmasına neden olabileceğinden bu ek açıklamayı dikkatli kullanın.
  • Otomatik ölçeklendirici özellikli bir düğüm havuzunda, düğüm sayısını el ile azaltmak yerine iş yüklerini kaldırarak düğümlerin ölçeğini küçültün. Düğüm havuzu zaten maksimum kapasitedeyse veya düğümlerde çalışan etkin iş yükleri varsa, bu durum küme otomatik ölçeklendiricisi tarafından beklenmeyen davranışlara neden olabilir.
  • Podların PriorityClass değeri -10'un altındaysa düğümlerin ölçeği artırılamaz. Öncelik -10, fazla sağlama podları için ayrılmıştır. Daha fazla bilgi için bkz . Pod Önceliği ve Ön Kullanım ile küme otomatik ölçeklendiricisini kullanma.
  • Sanal Makine Ölçek Kümesi otomatik ölçekleyicileri gibi diğer düğüm otomatik ölçeklendirme mekanizmalarını küme otomatik ölçeklendiricisi ile birleştirmeyin.
  • Aşağıdaki durumlarda olduğu gibi podlar taşınamıyorsa küme otomatik ölçeklendiricisi ölçeği azaltamayabilir:

Önemli

Otomatik olarak ölçeklendirilen düğüm havuzları içindeki tek tek düğümlerde değişiklik yapmayın. Aynı düğüm grubundaki tüm düğümler üzerinde tekdüzen kapasiteye, etiketlere, renk tonlarına ve sistem podlarına sahip olmalıdır.

  • Küme otomatik ölçeklendiricisi, pod zamanlama konusunda dikkat edilmesi gerekenlerden bağımsız olarak bir küme düğümü havuzunda "en yüksek düğüm sayısı" zorlamaktan sorumlu değildir. Küme olmayan bir otomatik ölçeklendirici aktörü düğüm havuzu sayısını küme otomatik ölçeklendiricisinin yapılandırılan en yüksek sınırının ötesinde bir sayıya ayarlarsa, küme otomatik ölçeklendiricisi düğümleri otomatik olarak kaldırmaz. Küme otomatik ölçeklendiricisi ölçeği azaltma davranışları, yalnızca zamanlanmış podları olmayan düğümleri kaldıracak şekilde kapsam dahilinde kalır. Küme otomatik ölçeklendiricisinin maksimum düğüm sayısı yapılandırmasının tek amacı, ölçek artırma işlemleri için üst sınırı zorlamaktır. Ölçeği azaltma konusunda dikkat edilmesi gerekenler üzerinde herhangi bir etkisi yoktur.

Küme otomatik ölçeklendirici profili

Küme otomatik ölçeklendiricisi profili , küme otomatik ölçeklendiricisinin davranışını denetleen bir parametre kümesidir. Küme oluştururken veya mevcut bir kümeyi güncelleştirirken küme otomatik ölçeklendirici profilini yapılandırabilirsiniz.

Küme otomatik ölçeklendirici profilini iyileştirme

Performans ve maliyet arasındaki dengeleri göz önünde bulundurarak küme otomatik ölçeklendiricisi profil ayarlarını belirli iş yükü senaryolarınıza göre ayarlamanız gerekir. Bu bölümde, bu dengeleri gösteren örnekler sağlanır.

Küme otomatik ölçeklendiricisi profil ayarlarının küme genelinde olduğunu ve otomatik ölçeklendirme özellikli tüm düğüm havuzlarına uygulandığını unutmayın. Bir düğüm havuzunda gerçekleştirilen ölçeklendirme eylemleri diğer düğüm havuzlarının otomatik ölçeklendirme davranışını etkileyebilir ve bu da beklenmeyen sonuçlara yol açabilir. İstediğiniz sonuçları aldığınızdan emin olmak için tüm ilgili düğüm havuzlarına tutarlı ve eşitlenmiş profil yapılandırmaları uyguladığınızdan emin olun.

Örnek 1: Performansı iyileştirme

Önemli ve hızlı iş yüklerini işleyen ve birincil olarak performansa odaklanan kümeler için değerini artırmanızı scan-interval ve azaltmanızı scale-down-utilization-thresholdöneririz. Bu ayarlar, ölçeklendirme süresini ve işlem okuma/yazma kotalarının kullanımını iyileştirerek birden çok ölçeklendirme işlemini tek bir çağrıda toplu işleme yardımcı olur. Ayrıca az kullanılan düğümlerde hızlı ölçek azaltma işlemlerinin riskini azaltmaya ve pod zamanlama verimliliğini artırmaya yardımcı olur. Ayrıca ve max-total-unready-percentage'i de artırınok-total-unready-count.

Daemonset podlu kümeler için, daemonset podları tarafından düğüm kullanımını etkili bir şekilde yoksayan ve gereksiz ölçeği azaltma işlemlerini en aza indiren olarak ayarlanmasını ignore-daemonsets-utilization trueöneririz. Seri iş yükleri için profile bakın

Örnek 2: Maliyeti iyileştirme

Maliyet açısından iyileştirilmiş bir profil istiyorsanız aşağıdaki parametre yapılandırmalarını ayarlamanızı öneririz:

  • Azaltma scale-down-unneeded-time, bir düğümün ölçeği azaltmaya uygun hale gelmeden önce gereksiz olması gereken süredir.
  • Azaltma scale-down-delay-after-add, bir düğüm eklendikten sonra ölçeği azaltmayı göz önünde bulundurmadan önce beklenmesi gereken süredir.
  • Düğümleri kaldırmak için kullanım eşiği olan değerini artırın scale-down-utilization-threshold.
  • Tek bir çağrıda silinebilecek en fazla düğüm sayısı olan öğesini artırın max-empty-bulk-delete.
  • false olarak ayarlayın skip-nodes-with-local-storage .
  • ve max-total-unready-percentageöğesini artırınok-total-unready-count.

Yaygın sorunlar ve azaltma önerileri

CLI veya Portal aracılığıyla ölçeklendirme hatalarını ve tetiklenmeyen ölçek artırma olaylarını görüntüleyin.

Ölçeği artırma işlemlerini tetiklememe

Yaygın nedenler Azaltma önerileri
Küme otomatik ölçeklendiricisini birden çok kullanılabilirlik alanıyla kullanırken veya bir pod veya kalıcı birimin bölgesi düğümün bölgesinden farklı olduğunda ortaya çıkabilecek PersistentVolume düğüm bencesi çakışmaları. Kullanılabilirlik alanı başına bir düğüm havuzu kullanın ve 'yi etkinleştirin --balance-similar-node-groups. Birimi kullanan bir pod oluşturulana kadar birimin düğüme bağlanmasını önlemek için pod belirtiminde alanını olarak da ayarlayabilirsinizvolumeBindingMode.WaitForFirstConsumer
Renk Tonları ve Toleranslar/Düğüm bencesi çakışmaları Düğümlerinize atanan tonları değerlendirin ve podlarınızda tanımlanan toleransları gözden geçirin. Gerekirse, podlarınızın düğümlerinizde verimli bir şekilde zamanlanmasını sağlamak için renk tonlarında ve toleranslarda ayarlamalar yapın.

Ölçeği artırma işlemi hataları

Yaygın nedenler Azaltma önerileri
Alt ağda IP adresi tükenmesi Aynı sanal ağa başka bir alt ağ ekleyin ve yeni alt ağa başka bir düğüm havuzu ekleyin.
Çekirdek kota tükenmesi Onaylanan çekirdek kotası tükendi. Kota artışı isteyin. Küme otomatik ölçeklendiricisi, birden çok başarısız ölçeklendirme denemesi yaşadığında belirli düğüm grubu içinde üstel geri alma durumuna girer.
En büyük düğüm havuzu boyutu Düğüm havuzundaki maksimum düğüm sayısını artırın veya yeni bir düğüm havuzu oluşturun.
İstekler/Çağrılar hız sınırını aşıyor Bkz . 429 Çok Fazla İstek hatası.

Ölçeği azaltma işlemi hataları

Yaygın nedenler Azaltma önerileri
Düğüm boşaltmasını engelleyen pod/Pod çıkarılamıyor • Ne tür podların ölçeği azaltmayı önleyebileceğini görüntüleyin.
• hostPath ve emptyDir gibi yerel depolamayı kullanan podlar için küme otomatik ölçeklendiricisi profil bayrağını skip-nodes-with-local-storage olarak falseayarlayın.
• Pod belirtiminde ek açıklamayı cluster-autoscaler.kubernetes.io/safe-to-evict olarak trueayarlayın.
• Kısıtlayıcı olabileceği için PDB'nizi kontrol edin.
Düğüm havuzunun en küçük boyutu Düğüm havuzunun en düşük boyutunu küçültün.
İstekler/Çağrılar hız sınırını aşıyor Bkz . 429 Çok Fazla İstek hatası.
Yazma işlemleri kilitlendi Tam olarak yönetilen AKS kaynak grubunda değişiklik yapmayın (bkz. AKS destek ilkeleri). Daha önce kaynak grubuna uyguladığınız kaynak kilitlerini kaldırın veya sıfırlayın.

Diğer sorunlar

Yaygın nedenler Azaltma önerileri
PriorityConfigMapNotMatchedGroup Otomatik ölçeklendirme gerektiren tüm düğüm gruplarını genişletici yapılandırma dosyasına eklediğinizden emin olun.

Geri almada düğüm havuzu

Geri almadaki düğüm havuzu 0.6.2 sürümünde kullanıma sunulmuştur ve küme otomatik ölçeklendiricisinin bir hatadan sonra düğüm havuzunu ölçeklendirmekten geri çekilmesine neden olur.

Ölçeklendirme işlemlerinin ne kadar süredir hatalarla karşılaştığına bağlı olarak, başka bir deneme yapılması 30 dakika kadar sürebilir. Otomatik ölçeklendirmeyi devre dışı bırakarak ve yeniden etkinleştirerek düğüm havuzunun geri alma durumunu sıfırlayabilirsiniz.