Azure Kubernetes Service (AKS) ile bir kümeyi uygulama taleplerini karşılayacak şekilde otomatik olarak ölçeklendirme

Azure Kubernetes Service 'te (AKS) uygulama taleplerine devam etmek için, iş yüklerinizi çalıştıran düğümlerin sayısını ayarlamanız gerekebilir. Küme otomatik Scaler bileşeni, kümenizde kaynak kısıtlamaları nedeniyle zamanlanabilecek Pod 'leri izleyebilir. Sorunlar algılandığında, bir düğüm havuzundaki düğümlerin sayısı uygulama talebini karşılayacak şekilde artmıştır. Düğümler, düğüm sayısıyla daha sonra gerektiği şekilde azaldıkça, bir yük eksikliği olmaması için düzenli olarak kontrol edilir. AKS kümenizdeki düğüm sayısını otomatik olarak ölçeklendirme veya azaltma yeteneği, verimli ve ekonomik bir küme çalıştırmanızı sağlar.

Bu makalede, bir AKS kümesinde Küme otomatik olarak nasıl etkinleştirileceği ve yönetileceği gösterilmektedir.

Başlamadan önce

Bu makalede, Azure CLı sürüm 2.0.76 veya üstünü çalıştırıyor olmanız gerekir. 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üme otomatik yüklemesi hakkında

Workday ve akşam ya da bir hafta sonu arasındaki uygulama taleplerini değiştirmek üzere ayarlamak için kümeler genellikle otomatik olarak ölçeklendirilmesi için bir yönteme ihtiyaç duyar. AKS kümeleri, iki şekilde ölçeklendirebilir:

  • Küme otomatik yüklemesi , kaynak kısıtlamaları nedeniyle düğümlerde zamanlanabilecek düğüm sayısını izler. Küme daha sonra düğümlerin sayısını otomatik olarak arttırır.
  • Yatay Pod otomatik Scaler , Kubernetes kümesinde ölçüm sunucusunu kullanarak pods 'nin kaynak talebini izler. Bir uygulamanın daha fazla kaynağa ihtiyacı varsa, yığınların sayısı talebi karşılamak üzere otomatik olarak artar.

Küme otomatik olarak ve yatay Pod otomatik Scaler, gerekli uygulama taleplerini desteklemek için genellikle birlikte çalışır

Hem yatay Pod otomatik Scaler hem de Cluster otomatik Scaler, gereken düğüm sayısını ve düğümleri de azaltabilir. Küme otomatik yüklemesi, bir süre için kullanılmayan kapasiteden fazla düğüm sayısını düşürür. Küme otomatik olarak kaldırılacak bir düğümdeki düğüm, kümede başka bir yerde güvenle zamanlanır. Küme otomatik olarak, aşağıdaki durumlarda olduğu gibi, Pod taşınmadığı takdirde ölçeği ölçeklendiremeyebilir:

  • Pod, doğrudan oluşturulur ve dağıtım veya çoğaltma kümesi gibi bir denetleyici nesnesi tarafından yedeklenmez.
  • Pod kesinti bütçesi (pdb) çok kısıtlayıcıdır ve pod sayısının belirli bir eşiğin altına düşmeye izin vermez.
  • Pod, farklı bir düğümde zamanlanırsa, düğüm seçicileri veya benzeşim önleme kullanır.

Küme otomatik olarak ölçeklendirilmesine nasıl ölçeklenebileceğinize ilişkin daha fazla bilgi için bkz . küme otomatik Scaler 'ın bir düğümü kaldırmasını engelleyebilir

Küme otomatik yüklemesi, ölçek olayları ve kaynak eşikleri arasındaki zaman aralıkları gibi şeyler için başlangıç parametrelerini kullanır. Küme otomatik tarafından kullanılan parametreler hakkında daha fazla bilgi için bkz. Otomatik Scaler profilini kullanma.

Küme ve yatay Pod otomatik scalers birlikte çalışabilir ve genellikle bir kümede dağıtılır. Birleştirildiğinde, yatay Pod otomatik Scaler, uygulama talebini karşılamak için gereken sayıda Pod çalıştırmaya odaklanılmıştır. Küme otomatik yüklemesi, zamanlanmış pods 'yi desteklemek için gereken düğüm sayısını çalıştırmaya odaklanır.

Not

Küme otomatik ölçeklendirme kullandığınızda el ile ölçekleme devre dışıdır. Küme otomatik olarak gerekli düğüm sayısını belirlemesine izin verin. Kümenizi el ile ölçeklendirmek isterseniz, küme otomatik Scaler ' ı devre dışı bırakın.

AKS kümesi oluşturma ve küme otomatik Scaler 'ı etkinleştirme

AKS kümesi oluşturmanız gerekiyorsa, az aks Create komutunu kullanın. Küme için düğüm havuzunda küme otomatik Scaler özelliğini etkinleştirmek ve yapılandırmak için --enable-cluster-autoscaler parametresini kullanın ve bir düğüm --min-count ve belirtin --max-count .

Önemli

Küme otomatik yüklemesi, bir Kubernetes bileşenidir. AKS kümesi düğümler için bir sanal makine ölçek kümesi kullansa da, Azure portal ölçek kümesi otomatik ölçek ayarlarını el ile etkinleştirmeyin veya Azure CLı kullanarak ayarları düzenleyin. Kubernetes kümesi otomatik olarak 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?

Aşağıdaki örnek, bir sanal makine ölçek kümesi tarafından desteklenen tek düğümlü havuz içeren bir AKS kümesi oluşturur. Ayrıca küme için düğüm havuzunda küme otomatik Scaler 'ı ve en az 1 ve en fazla 3 düğüm ayarlar:

# First create a resource group
az group create --name myResourceGroup --location eastus

# Now create the AKS cluster and enable the cluster autoscaler
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

Kümeyi oluşturmak ve küme otomatik Scaler ayarlarını yapılandırmak birkaç dakika sürer.

Küme otomatik algılama özelliğini etkinleştirmek için mevcut bir AKS kümesini güncelleştirme

Mevcut küme için düğüm havuzunda küme otomatik Scaler 'sini etkinleştirmek ve yapılandırmak için az aks Update komutunu kullanın. Parametresini kullanın --enable-cluster-autoscaler ve bir düğüm --min-count ve belirtin --max-count .

Önemli

Küme otomatik yüklemesi, bir Kubernetes bileşenidir. AKS kümesi düğümler için bir sanal makine ölçek kümesi kullansa da, Azure portal ölçek kümesi otomatik ölçek ayarlarını el ile etkinleştirmeyin veya Azure CLı kullanarak ayarları düzenleyin. Kubernetes kümesi otomatik olarak 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?

Aşağıdaki örnek, küme için düğüm havuzunda küme otomatik yapılandırmasını etkinleştirmek üzere mevcut bir AKS kümesini güncelleştirir ve en az 1 ve en fazla 3 düğüm ayarlar:

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

Kümeyi güncellemek ve küme otomatik Scaler ayarlarını yapılandırmak birkaç dakika sürer.

Küme otomatik Scaler ayarlarını değiştirme

Önemli

AKS kümenizde birden fazla düğüm havuzunuz varsa, birden çok aracı havuzu ile otomatik ölçeklendirmeyiatlayın. Birden çok aracı havuzu içeren kümeler, az aks nodepool yerine düğüm havuzuna özgü özellikleri değiştirmek için komut kümesini kullanmayı gerektirir az aks .

Önceki adımda, bir AKS kümesi oluşturmak veya var olan bir düğüm havuzunu güncelleştirmek için, küme otomatik algılama en düşük düğüm sayısı 1 olarak ayarlanmıştır ve en fazla düğüm sayısı 3 olarak ayarlanmıştır. Uygulamanız değiştikçe değişiklik yaparken, küme otomatik Scaler düğüm sayısını ayarlamanız gerekebilir.

Düğüm sayısını değiştirmek için az aks Update komutunu kullanın.

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

Yukarıdaki örnek, Myakscluster içindeki tek düğümlü havuzda küme otomatik Scaler ' nı en az 1 ve en fazla 5 düğüm olarak güncelleştirir.

Not

Küme otomatik algılama, her düğüm havuzunda ayarlanan en düşük ve en yüksek sayımlar temelinde ölçekleme kararları verir, ancak en az veya en fazla sayımlar güncelleştirildikten sonra bunları zorlamaz. Örneğin, geçerli düğüm sayısı 3 olduğunda en az 5 sayısını ayarlamak, havuzu hemen 5 ' e kadar ölçeklendirmeyecektir. Düğüm havuzundaki minimum sayı, geçerli düğüm sayısından daha yüksek bir değere sahipse, yeni Min veya Max ayarları, 2 yeni ek düğüm gerektirecek ve bir otomatik Scaler olayı tetikleyen yeterli sayıda unschedulable Pod olduğunda dikkate alınır. Ölçek olayından sonra, yeni sayı limitleri dikkate alınır.

Uygulamalarınızın ve hizmetlerinizin performansını izleyin ve küme otomatik Scaler düğüm sayılarını gerekli performansla eşleşecek şekilde ayarlayın.

Otomatik Scaler profilini kullanma

Küme genelindeki otomatik Scaler profilindeki varsayılan değerleri değiştirerek küme otomatik Scaler ' inin daha ayrıntılı ayrıntılarını da yapılandırabilirsiniz. Örneğin, düğümler 10 dakika sonra kullanıldıktan sonra bir ölçek azaltma olayı oluşur. 15 dakikada bir çalışan iş yükleriniz varsa, otomatik Scaler profilini, kullanılan düğümler altında 15 veya 20 dakika sonra ölçeklendirmek üzere değiştirmek isteyebilirsiniz. Küme otomatik ayarlarını etkinleştirdiğinizde, farklı ayarlar belirtmediğiniz takdirde varsayılan bir profil kullanılır. Küme otomatik Scaler profili, güncelleştirebilmeniz için aşağıdaki ayarlara sahiptir:

Ayar Açıklama Varsayılan değer
tarama-Aralık Kümenin ölçeği artırma veya azaltma için ne sıklıkta yeniden değerlendirildiğinde 10 saniye
ölçeği azaltma-sonrası-ekleme Ölçek azaltma sonrasında ölçeği izleyen ölçeği artırma sonrasında ne kadar süre sonra 10 dakika
ölçeği azaltma-sonrası-silme Düğüm silme işleminin ne kadar süre sonra değerlendirmeyi azaltımını sürdürür tarama-Aralık
ölçek azaltma-başarısız-sonra gecikme Değerlendirme özgeçmişinin ölçeklendirilmesi için ölçek azaltma hatası ne kadar süre sonra 3 dakika
ölçeği azaltma-gereksiz-saat Düğüm ölçek azaltma için uygun hale gelmeden önce ne kadar süreyle gereksiz olması gerekir 10 dakika
ölçeği daraltma-önceden hazırlanma-zaman Uygun olmayan bir düğümün ölçek azaltma için uygun olmadan önce ne kadar süreyle gereksiz olması gerekir 20 dakika
ölçeği azaltma-kullanım eşiği Düğüm kullanım düzeyi, bir düğümün ölçek azaltma için kabul edileceği, kapasiteye göre bölünen istenen kaynakların toplamı olarak tanımlanır 0,5
en yüksek-düzgün kapanma-sn Küme otomatik olarak bir düğümü ölçeklendirmeye çalışırken en fazla kaç saniye daha pod sonlandırmasını beklediği 600 saniye
balance-similar-node-groups Benzer düğüm havuzlarını algılar ve aralarındaki düğüm sayısını dengeler yanlış
Expander Ölçek büyütmede kullanılacak düğüm havuzu genişleticisi türü. Olası değerler: most-pods , random , least-waste , priority rastgele
yerel depolama ile düğümleri atla True cluster autoscaler hiçbir zaman yerel depolama alanına sahip podlara sahip düğümleri (örneğin, EmptyDir veya HostPath) silemez true
skip-nodes-with-system-pods True cluster autoscaler hiçbir zaman kube-system'den podlara sahip düğümleri silemezse (DaemonSet veya yansıtma podları hariç) true
max-empty-bulk-delete Aynı anda silinebilir en fazla boş düğüm sayısı 10 düğüm
new-pod-scale-up-delay Kubernetes zamanlayıcının tüm podları zamanlaması için CA'nın işlem yapmak istemeyebilirsiniz seri/toplu ölçeklendirme gibi senaryolar için CA'ya zamanlanmamış podları belirli bir yaş öncesinde yoksaymasını söylemelisiniz. 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 durdurar %45
max-node-provision-time Otomatik vericinin bir düğümün sağlanmasını bekleyeceği en uzun süre 15 dakika
ok-total-unready-count İzin verilen okunmamış düğümlerin sayısı, maksimum toplam-okunmamış-yüzdeden bağımsız olarak 3 düğüm

Önemli

Küme otomatik yalıtma profili, küme otomatiktireci kullanan tüm düğüm havuzlarını etkiler. Düğüm havuzu başına otomatik bir havuz profili ayarlayamabilirsiniz.

Küme otomatik model profili için Azure CLI'nın 2.11.1 veya daha yeni bir sürümü gerekir. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

Var olan bir AKS kümesinde küme otomatik olarak yalıtma profilini ayarlama

Az aks update komutunu cluster-autoscaler-profile parametresiyle birlikte kullanarak kümeniz üzerinde küme otomatikcaler profilini ayarlayın. Aşağıdaki örnek, tarama aralığı ayarını profilde 30 olarak yapılandırıyor.

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

Kümedeki düğüm havuzlarında küme otomatiktirci'yi etkinleştirecek olurken, bu kümeler de küme otomatiktiren profilini kullanır. Örnek:

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

Önemli

Küme otomatik verisi etkinleştirilmiş tüm mevcut düğüm havuzları, küme otomatikcalar profilini ayarlamaya hemen başlar.

AKS kümesi oluştururken küme otomatik olarak yalıtma profilini ayarlama

Kümenizi oluşturmada cluster-autoscaler-profile parametresini de kullanabilirsiniz. Örnek:

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

Yukarıdaki komut bir AKS kümesi oluşturur ve tarama aralığını küme genelindeki otomatik taray aracı profili için 30 saniye olarak tanımlar. Komut ayrıca ilk düğüm havuzunda küme otomatiktirciyi sağlar, minimum düğüm sayısını 1, maksimum düğüm sayısını ise 3 olarak ayarlar.

Küme otomatik verici profilini varsayılan değerlere sıfırlama

Az aks update komutunu kullanarak kümenizin otomatik olarak güncelleştirilen küme profilini sıfırlayın.

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

Küme otomatik yayısını devre dışı bırakma

Küme otomatik zaman ayarlarını kullanmak artık kullanmak isterseniz az aks update komutunu kullanarak parametresini belirterek devre dışı --disable-cluster-autoscaler abilirsiniz. Küme otomatik işleyicisi devre dışı bırakıldığı zaman düğümler kaldırılamaz.

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

az aks scale komutunu kullanarak küme otomatik ölçeklendireci'ni devre dışı bırakarak kümenizi el ile ölçeklendirebilirsiniz. Yatay pod otomatik zaman dengelerini kullanırsanız, bu özellik küme otomatik dengeci devre dışı bırakılmıştır ancak tüm düğüm kaynakları kullanımda ise podlar zamanlamayabilirsiniz.

Devre dışı bırakılmış bir küme otomatik göreciyi yeniden etkinleştirme

Mevcut bir kümede küme otomatik olarak yeniden etkinleştirmek isterseniz, az aks update komutunu kullanarak , ve parametrelerini belirterek --enable-cluster-autoscaler kümeyi yeniden --min-count --max-count etkinleştirebilirsiniz.

Küme otomatik verici günlüklerini ve durumunu alma

Otomatik verici olaylarını tanılamak ve hata ayıklamak için günlükler ve durum, otomatik olarak yalıtıcı eklentiden alınamıyor.

AKS, küme otomatik vericilerini sizin adınıza yönetir ve yönetilen denetim düzlemi içinde çalıştırır. CA'dan günlükleri ve işlemleri görmek için denetim düzlemi düğümünü etkinleştirebilirsiniz.

Küme otomatik olarak yapılandırılan günlüklerin Log Analytics'e geri alınarak yapılandırılması için aşağıdaki adımları izleyin.

  1. Kaynak günlükleri için, küme otomatik zaman havuzu günlüklerini Log Analytics'e itecek bir kural ayarlayın. Yönergeler burada ayrıntılı olarakaçık ve "Günlükler" seçeneklerini cluster-autoscaler işaretleyebilirsiniz.
  2. Kümenizin "Günlükler" bölümünü seçerek Azure portal.
  3. Log Analytics'e aşağıdaki örnek sorguyu girdi:
AzureDiagnostics
| where Category == "cluster-autoscaler"

Alınan günlükler olduğu sürece aşağıdaki örnekteki gibi günlükler görüyor gerekir.

Log Analytics günlükleri

Küme otomatik olarak sıralandıran da adlandırılmış bir durumuna configmap cluster-autoscaler-status yazar. Bu günlükleri almak için aşağıdaki komutu kubectl yürütün. Küme otomatik olarak yapılandırılan her düğüm havuzu için bir durum durumu raporlanacak.

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

Otomatik olarak kaydedilenler hakkında daha fazla bilgi edinmek için kubernetes/autoscalerve projesinde yer alan SSS GitHub okuyun.

Birden çok düğüm havuzu etkinleştirilmiş şekilde küme otomatik olarak yalıtma özelliğini kullanma

Küme otomatik verisi, etkin birden çok düğüm havuzuyla birlikte kullanılabilir. Birden çok düğüm havuzu etkinleştirmeyi ve mevcut bir kümeye ek düğüm havuzları eklemeyi öğrenmek için bu belgeyi izleyin. Her iki özelliği birlikte kullanırken, kümedeki her düğüm havuzunda küme otomatik ölçeklendirmeyi etkinleştirirsiniz ve her bir düğüme benzersiz otomatik ölçeklendirme kuralları iletirsiniz.

Aşağıdaki komut, bu belgenin önceki adımlarında yer alan ilk yönergeleri takip ettiği ve var olan bir düğüm havuzunun maksimum sayısını 3'den 5'e güncelleştirmek istediğiniz varsayar. Mevcut düğüm havuzunun ayarlarını güncelleştirmek için az aks nodepool update komutunu kullanın.

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

Az aks nodepool update ile küme otomatik zamanlayıcı devre dışı bırakılabilir ve parametresi --disable-cluster-autoscaler aktarılabilir.

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

Mevcut bir kümede küme otomatik zamanlayıcısını yeniden etkinleştirmek isterseniz, az aks nodepool update komutunu kullanarak , ve parametrelerini belirterek --enable-cluster-autoscaler kümeyi yeniden --min-count --max-count etkinleştirebilirsiniz.

Not

Küme otomatik zamanlayıcısını birden çok bölgeye yayılan düğüm havuzları ile kullanmayı planlıyorsanız ve birim topolojik zamanlama gibi bölgelerle ilgili zamanlama özelliklerinden yararlanıyorsanız, bölge başına bir düğüm havuzu bulunarak otomatik olarak bu profili etkinleştirmeniz önerisinde --balance-similar-node-groups bulunabilirsiniz. Bu, otomatik ölçeklendiricinin başarılı bir şekilde ölçeğini ölçeklendirerek düğüm havuzlarının boyutlarını dengeli tutmaya çalışmalarını sağlar.

Sonraki adımlar

Bu makalede AKS düğümlerinin sayısını otomatik olarak nasıl ölçeklendirin? Yatay pod otomatik numaralandırını kullanarak da, uygulamanızı çalıştıracak pod sayısını otomatik olarak ayarlayabilirsiniz. Yatay pod otomatik ölçeklendireci kullanma adımları için bkz. AKS'de uygulamaları ölçeklendirme.