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.
Artan sayıda dağıtıma uyum sağlamak veya daha büyük bir iş yükü çalıştırmak için sanal makinelerinizin (VM) boyutunu değiştirmek isteyebilirsiniz. AKS örneklerini doğrudan yeniden boyutlandırma, AKS'de Sanal Makine Ölçek Kümeleri kullanılırken , AKS için destek ilkelerinde açıklandığı gibi desteklenmez:
AKS aracı düğümleri Azure portalında normal Azure IaaS kaynakları olarak görünür. Ancak bu sanal makineler özel bir Azure kaynak grubuna dağıtılır (genellikle MC_* ile ön eklenmiştir). IaaS API'lerini veya kaynaklarını kullanarak bu düğümlerde doğrudan özelleştirme yapamazsınız. AKS API'si aracılığıyla yapılmayacak özel değişiklikler yükseltme, ölçeklendirme, güncelleştirme veya yeniden başlatma yoluyla kalıcı olmaz.
Bu makalede, istenen SKU boyutuna sahip yeni bir düğüm havuzu oluşturarak, mevcut düğümleri bağlayıp boşaltarak ve ardından mevcut düğüm havuzunu kaldırarak düğüm havuzunu yeniden boyutlandırmak için önerilen yöntemi öğreneceksiniz.
Önemli
Bu yöntem Sanal Makine Ölçek Kümeleri tabanlı AKS kümelerine özgüdür. Sanal Makineler tabanlı düğüm havuzlarını kullanırken, tek bir Azure CLI komutu kullanarak mevcut bir düğüm havuzundaki VM boyutlarını kolayca güncelleştirebilir ve aynı düğüm havuzunda birden çok VM boyutuna sahip olabilirsiniz. Daha fazla bilgi için Sanal Makineler düğüm havuzları belgelerine bakın.
VMSS düğüm havuzunu yerinde yeniden boyutlandırma (önizleme)
Önemli
AKS önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "mevcut olduğu şekilde" sağlanmakta olup, hizmet seviyesi anlaşmalarına ve sınırlı garantilere dahil edilmemektedir. AKS önizlemeleri, müşteri desteği ekibi tarafından maksimum çaba gösterilerek kısmen ele alınmaktadır. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:
Artık az aks nodepool update --node-vm-size <new-size> kullanarak mevcut VMSS tabanlı düğüm havuzunun VM boyutunu (SKU) tek bir komutla yeniden boyutlandırabilirsiniz. Bu güncelleştirmeyi tetiklediğinizde AKS kaynak sağlayıcısı şu şekilde sıralı yükseltme gerçekleştirir:
- Hedef VM boyutunda yeni düğümler ekleniyor.
- Eski düğümlerin kordon altına alınması ve tahliye edilmesi.
- Eski düğümler siliniyor.
Bu işlem, makalenin geri kalanında açıklanan manuel create/cordon/drain/delete iş akışını gerekli kılmaz.
Yeniden boyutlandırma özelliğinin kullanıma sunulması nasıl çalışır?
Yeniden boyutlandırma dağıtımı, düğüm görüntüsü yükseltmesi ve Kubernetes sürüm yükseltmesi ile aynı sıralı yükseltme altyapısını kullandığından, düğüm havuzunda önceden yapılandırılmış olan yükseltmeyle ilgili aşağıdaki ayarlara uyar. Özellikle, yeniden boyutlandırma şunlara uyar:
-
Maksimum dalgalanma (
--max-surge): Dağıtım sırasında hedef VM boyutuna sahip ek düğüm sayısını denetler. Daha yüksek bir değer havuzu daha hızlı yeniden boyutlandırır ancak daha fazla işlem ve IP kotası tüketir; daha düşük bir değer daha yavaştır ancak daha az kesintiye neden olur. AKS varsayılanıdır1ve33%üretim düğümü havuzları için önerilir. -
Düğüm boşaltma zaman aşımı (
--drain-timeout): AKS'nin eski düğümlerin her birinde podun düğümden çıkarılması için, düğümü zorla silmeden önce ne kadar süre beklediği. Varsayılan değer 30 dakikadır. Bunu, iş yüklerinin güvenli bir şekilde tahliye edilebilmesini sağlamak için uygun PodDisruptionBudgets ile birleştirin. -
Düğüm bekletme süresi (
--node-soak-duration): Yeni bir düğüm Hazır duruma geldikten sonra AKS’nin bir sonraki gruba geçmeden önce ne kadar bekleyeceği. Dağıtıma devam etmeden önce iş yüklerinin yeni VM boyutu üzerinde dengelenmesine izin vermek için kullanışlıdır.
Yükseltme işlem hattını yeniden yeniden boyutlandırdığından, aynı önkoşullar geçerlidir: Aboneliğinizin aşırı gerilim düğümleri için yeterli hedef VM boyutu değiştirme kapasitesine ve kullanılabilir alt ağ IP'lerine sahip olduğundan ve PodDisruptionBudgets'inizin aynı anda en az bir çoğaltmanın çıkarılmasına izin ettiğinden emin olun; aksi takdirde boşaltma sırasında yeniden boyutlandırma engellenebilir. Uçtan uca öneriler için bkz. AKS düğüm havuzu yükseltmeleri için en iyi yöntemler.
Prerequisites
- AKS API sürümü
2026-01-02-previewveya üstü. - aks-preview Azure CLI uzantısının en son sürümü.
Düğüm havuzunu yeniden boyutlandırın
Mevcut VMSS tabanlı bir düğüm havuzunun VM boyutunu değiştirmek için --node-vm-size parametresiyle az aks nodepool update komutunu kullanın:
az aks nodepool update \
--resource-group MyResourceGroup \
--cluster-name MyManagedCluster \
--name nodepool1 \
--node-vm-size Standard_D4s_v3
Doğrulama ve desteklenmeyen birleşimler
AKS kaynak sağlayıcısı yeniden boyutlandırma isteğini doğrular ve uyumsuz VM boyutu değişikliklerini engeller. Yerinde VMSS yeniden boyutlandırma işleminin bir parçası olarak aşağıdaki değişiklikler desteklenmez :
- Disk denetleyicisi türünü değiştirme (örneğin, SCSI'yi NVMe olarak).
- CPU mimarisini değiştirme (örneğin, x64 ile ARM64).
- Gizli bilgi işlem desteğini değiştirme (örneğin, SNP'yi etkinleştirme veya devre dışı bırakma).
- Hipervizör neslini değiştirmek (örneğin, V1’den V2’ye).
- Yeniden boyutlandırmayı Kubernetes sürüm yükseltmesi veya aynı işlemdeki düğüm sayısı değişikliğiyle birleştirme.
Hedef VM boyutunuz yukarıdaki değişikliklerden herhangi birini gerektiriyorsa, bunun yerine aşağıdaki bölümlerde açıklanan el ile cordon-and-drain iş akışını kullanın.
Not
Yerinde yeniden boyutlandırma, eski düğümler boşaltılmadan önce hedef VM boyutuna sahip yeni düğümleri temin etmek için ek kapasite gerektirir. Düğüm havuzu --max-surge 0 ile yapılandırılmışsa (yani --max-unavailable etkinse), yeniden boyutlandırma isteği 400 Bad Request hatasıyla reddedilir. Devam etmek için, yeniden boyutlandırma sırasında --max-surge değerini en az 1 olarak ayarlayın.
az aks nodepool update \
--resource-group MyResourceGroup \
--cluster-name MyManagedCluster \
--name nodepool1 \
--node-vm-size Standard_D4s_v3 \
--max-surge 33%
ve isteğe bağlı olarak yeniden boyutlandırma tamamlandıktan sonra özgün --max-surge ve --max-unavailable değerlerinizi geri yükleyin.
İstenen SKU ile yeni bir düğüm havuzu oluşturma
Not
Her AKS kümesinde, en az bir düğüme sahip en az bir sistem düğüm havuzu bulunmalıdır. Bu örnekte, yeniden boyutlandırmak istediğimiz sistem düğümü havuzunu değiştirmek için bir sistem düğümü havuzu eklemek amacıyla --mode ve System kullanırız. Düğüm havuzunun modunu istediğiniz zaman güncelleyebilirsiniz. Ayrıca, --mode'yi User olarak ayarlayarak bir kullanıcı düğümü havuzu ekleyebilirsiniz.
Yeniden boyutlandırırken kullanılabilirlik alanları gibi tüm iş yükü gereksinimlerini dikkate aldığınızdan ve VMSS düğüm havuzunuzu uygun şekilde yapılandırdığınızdan emin olun. Aşağıdaki komutu gereksinimlerinize en uygun şekilde değiştirmeniz gerekebilir. Yapılandırma seçeneklerinin tam listesi için başvuru sayfasına bakın az aks nodepool add .
komutunu kullanarak
az aks nodepool addyeni bir düğüm havuzu oluşturun. Bu örnekte, vm SKU'su olanmynodepoolmevcut düğüm havuzununStandard_DS3_v2yerine üç düğüm venodepool1VM SKU'su içeren yeni bir düğüm havuzuStandard_DS2_v2oluşturacağız.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name mynodepool \ --node-count 3 \ --node-vm-size Standard_DS3_v2 \ --mode System \ --no-waitYeni düğüm havuzunun oluşturulması birkaç dakika sürer.
komutunu kullanarak yeni düğüm havuzunun
kubectl get nodesdurumunu alın.kubectl get nodesÇıkışınız, hem yeni düğüm havuzunu hem de mevcut düğüm
mynodepoolhavuzununodepool1gösteren aşağıdaki örnek çıkışa benzemelidir:NAME STATUS ROLES AGE VERSION aks-mynodepool-98765432-vmss000000 Ready agent 23m v1.21.9 aks-mynodepool-98765432-vmss000001 Ready agent 23m v1.21.9 aks-mynodepool-98765432-vmss000002 Ready agent 23m v1.21.9 aks-nodepool1-12345678-vmss000000 Ready agent 10d v1.21.9 aks-nodepool1-12345678-vmss000001 Ready agent 10d v1.21.9 aks-nodepool1-12345678-vmss000002 Ready agent 10d v1.21.9
Mevcut düğümleri kordon altına alın
Kordonlama, belirtilen düğümleri zamanlama dışı olarak işaretler ve bu düğümlere daha fazla pod eklenmesini önler.
komutunu kullanarak
kubectl get nodeskablolamak istediğiniz düğümlerin adlarını alın.kubectl get nodesÇıkışınız, var olan düğüm havuzunda
nodepool1bulunan ve kablolamak istediğiniz düğümleri gösteren aşağıdaki örnek çıkışa benzemelidir:NAME STATUS ROLES AGE VERSION aks-nodepool1-12345678-vmss000000 Ready agent 7d21h v1.21.9 aks-nodepool1-12345678-vmss000001 Ready agent 7d21h v1.21.9 aks-nodepool1-12345678-vmss000002 Ready agent 7d21h v1.21.9Komutunu kullanarak
kubectl cordonvar olan düğümleri bağlayarak boşlukla ayrılmış bir listede istenen düğümleri belirtin. Örneğin:kubectl cordon aks-nodepool1-12345678-vmss000000 aks-nodepool1-12345678-vmss000001 aks-nodepool1-12345678-vmss000002Çıkışınız, düğümlerin kordonlu olduğunu gösteren aşağıdaki örnek çıkışa benzemelidir:
node/aks-nodepool1-12345678-vmss000000 cordoned node/aks-nodepool1-12345678-vmss000001 cordoned node/aks-nodepool1-12345678-vmss000002 cordoned
Mevcut düğümleri boşaltma
Önemli
Düğümleri başarıyla boşaltmak ve çalışan pod’ları tahliye etmek için, tüm PodDisruptionBudget’ların (PDB’lerin) aynı anda en az bir pod kopyasının taşınabilmesine izin verdiğinden emin olun. Aksi takdirde, boşaltma/çıkarma işlemi başarısız olur. Bu kontrolü gerçekleştirmek için kubectl get pdb -A komutunu çalıştırabilir ve ALLOWED DISRUPTIONS'in en az 1 veya daha yüksek olduğunu doğrulayabilirsiniz.
Düğümleri boşalttığınızda, üzerinde çalışan podlar tahliye edilir ve diğer planlanabilir düğümlerde yeniden oluşturulur.
Mevcut düğümleri,
kubectl drainkomutunu--ignore-daemonsetsve--delete-emptydir-databayraklarıyla kullanarak boşaltın; istenen düğümleri boşlukla ayrılmış bir listede belirtin. Örneğin:Önemli
AKS tarafından oluşturulan
corednsvemetrics-serverpodlarını tahliye etmek için--delete-emptydir-datakullanılması gerekir. Bu bayrağı kullanmıyorsanız bir hata alırsınız. Daha fazla bilgi için emptydir belgelerine bakın.kubectl drain aks-nodepool1-12345678-vmss000000 aks-nodepool1-12345678-vmss000001 aks-nodepool1-12345678-vmss000002 --ignore-daemonsets --delete-emptydir-dataBoşaltma işlemi tamamlandıktan sonra tüm podlar (daemon kümeleri tarafından denetlenen podlar hariç) yeni düğüm havuzunda çalıştırılmalıdır. Komutunu kullanarak
kubectl get podsbunu doğrulayabilirsiniz.kubectl get pods -o wide -A
Pod çıkarma sorunlarını giderme
Düğümleri boşaltırken aşağıdaki hatayla karşılaşabilirsiniz:
Error when evicting pods/[podname] -n [namespace] (will retry after 5s): Cannot evict pod as it would violate the pod's disruption budget.
Varsayılan olarak, kümenizde AKS tarafından yönetilen pod aksama bütçeleri (bütçeleri bulunur gibi coredns-pdb veya konnectivity-agent) vardır ve MinAvailable1'dir. Örneğin, çalışan iki coredns pod varsa, aynı anda yalnızca bir pod kesintiye uğrayabilir. Bunlardan biri yeniden oluşturulurken ve kullanılamaz durumdayken, pod kesintisi bütçesi nedeniyle diğer coredns pod'un çıkarılması mümkün değildir. Bu sorun, ilk coredns pod zamanlanıp çalıştırıldıktan sonra kendiliğinden çözülür, böylece ikinci podun düzgün bir şekilde çıkarılıp yeniden oluşturulması sağlanır.
İpucu
Daha akıcı bir süreç ve darboğazı önlemek için düğümleri birer birer boşaltmayı düşünün. Daha fazla bilgi için bkz.
Mevcut düğüm havuzunu kaldırma
Önemli
Düğüm havuzunu sildiğinizde AKS, kordon ve boşaltma gerçekleştirmez. Silmeyi planladığınız düğüm havuzunda şu anda çalışan podların yeniden zamanlanmalarından kaynaklanan kesintileri en aza indirmek için, silme işleminden önce düğüm havuzundaki tüm düğümlerde kordon ve boşaltma işlemleri gerçekleştirin.
komutunu kullanarak
az aks nodepool deleteözgün düğüm havuzunu silin.az aks nodepool delete \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name nodepool1AKS kümenizin yalnızca yeni düğüm havuzuna sahip olduğunu ve uygulamaların ile podların düzgün çalıştığını
kubectl get nodeskomutunu kullanarak doğrulayın.kubectl get nodesÇıkışınız, yalnızca yeni düğüm havuzunu
mynodepoolgösteren aşağıdaki örnek çıkışa benzemelidir:NAME STATUS ROLES AGE VERSION aks-mynodepool-98765432-vmss000000 Ready agent 63m v1.21.9 aks-mynodepool-98765432-vmss000001 Ready agent 63m v1.21.9 aks-mynodepool-98765432-vmss000002 Ready agent 63m v1.21.9
Sonraki adımlar
Bir düğüm havuzunu kordon oluşturup boşaltarak yeniden boyutlandırdıktan sonra birden çok düğüm havuzu kullanma hakkında daha fazla bilgi edinin.