Azure Kubernetes Service'te (AKS) düğüm kaynak rezervasyonları

Bu makalede, Azure Kubernetes Service'teki (AKS) düğüm kaynak rezervasyonları hakkında bilgi edinirsiniz.

Kaynak rezervasyonları

AKS, düğümlerin kümenin bir parçası olarak çalışmasına yardımcı olmak için düğüm kaynaklarını kullanır. Bu kullanım, düğümün toplam kaynakları ile AKS'deki atanabilir kaynaklar arasında bir uyuşmazlığa neden olabilir.

AKS, düğüm performansını ve işlevselliğini korumak için her düğümde CPU ve bellek olmak üzere iki tür kaynak ayırır. Bir düğüm kaynaklar açısından büyüdükçe, kullanıcı tarafından dağıtılan podların yönetimine duyulan ihtiyacın artması nedeniyle kaynak rezervasyonları da artar. Bir düğümdeki kaynak rezervasyonlarını değiştiremeyeceğinizi unutmayın.

CPU rezervasyonları

Ayrılmış CPU, düğüm türüne ve küme yapılandırmasına bağlıdır; bu da ek özelliklerin çalıştırılması nedeniyle ayrılabilir CPU’nun daha az olmasına yol açabilir. Aşağıdaki tabloda CPU rezervasyonları milicore cinsinden gösterilmektedir:

Ana makinedeki CPU çekirdekleri 1 çekirdek 2 çekirdek 4 çekirdek 8 Çekirdek 16 çekirdek 32 çekirdek 64 çekirdek
Kube için ayrılmış CPU (millicore) 60 100 140 180 260 420 740

Bellek ayırma işlemleri

AKS'de ayrılmış bellek iki değerin toplamından oluşur:

AKS 1.29 ve üzeri

  • kubelet daemon varsayılan olarak memory.available < 100 Mi tahliye kuralını kullanır. Bu kural, bir düğümün her zaman en az 100 Mi tahsis edilebilir kaynağa sahip olmasını sağlar. Bir konakta kullanılabilir bellek miktarı bu eşiğin altına düştüğünde, kubelet çalışan pod'lardan birinin sonlandırılmasını tetikler ve konak makinede belleği serbest bırakır.

  • Daha düşük değere göre ayarlanan bellek ayırma oranı: 20 MB * Düğümde desteklenen Maksimum Pod sayısı + toplam sistem bellek kaynaklarının %25'i veya 50 MB.

    Örnekler:

    • Sanal makine (VM) 8 GB bellek sunuyorsa ve düğüm en fazla 30 pod destekliyorsa AKS, kube-reserved için 20 MB * 30 en fazla pod + 50 MB = 650 MB ayırır. Allocatable space = 8 GB - 0.65 GB (kube-reserved) - 0.1 GB (eviction threshold) = 7.25 GB or 90.625% allocatable.
    • VM 4 GB bellek sağlıyorsa ve düğüm en fazla 70 pod destekliyorsa, bu değer 20 MB * 70 Max Pods + 50 MB = 1450 MB değerinden düşük olduğundan AKS, kube-reserved için %25 * 4 GB = 1000 MB ayırır.

    Daha fazla bilgi için bkz. AKS kümesinde düğüm başına en fazla pod sayısını yapılandırma.

Not

kubeReserved CPU ve bellek değerlerini özelleştirmek veya Linux düğüm havuzlarında hardEvictionThreshold için önizleme özel düğüm yapılandırması ayarlarını kullanın ve AKSNodeCustomizationPreview özellik bayrağını kaydedin. Daha fazla bilgi için bkz. Azure Kubernetes Service (AKS) düğüm havuzları için düğüm yapılandırmasını özelleştirme.

1.29 öncesi AKS sürümleri

  • kubeletdaemon varsayılan olarak memory.available < 750 Mi çıkarma kuralına sahiptir. Bu kural, bir düğümde her zaman en az 750 Mi ayrılabilir bellek bulunmasını sağlar. Bir konak kullanılabilir bellek eşiğinin altına düştüğünde, kubelet çalışan podlardan birinin sonlandırılmasını tetikler ve konak makinede belleğin boşalmasını sağlar.
  • Kubelet daemon'un düzgün çalışması (kube-reserved) için gerilemeli bellek ayırma oranı.
    • İlk 4 GB belleğin %25'i
    • Sonraki 4 GB belleğin %20'sini (8 GB'a kadar)
    • Sonraki 8 GB belleğin %10'unu (16 GB'a kadar)
    • Sonraki 112 GB belleğin %6'sı (128 GB'a kadar)
    • 128 GB'tan fazla belleğin %2'sini

Not

AKS, hesaplanan belleğin parçası olmayan Windows düğümlerindeki sistem işlemleri için fazladan 2 GB ayırır.

Bellek ve CPU ayırma kuralları şunlar için tasarlanmıştır:

  • Küme sağlığı için kritik olan bazı sistem podlarını barındıranlar da dahil olmak üzere ajan düğümlerini sağlıklı tutun.
  • Düğümün, bir Kubernetes kümesinin parçası olmasaydı bildireceğinden daha az ayrılabilir bellek ve CPU bildirmesine neden olur.

Örneğin, bir düğüm 7 GB sağlıyorsa, 750 Mi katı tahliye eşiği dahil olmak üzere belleğin %34'ünün ayrılabilir olmadığını bildirir.

0.75 + (0.25*4) + (0.20*3) = 0.75 GB + 1 GB + 0.6 GB = 2.35 GB / 7 GB = 33.57% reserved

Kubernetes'in kendi rezervasyonlarına ek olarak, temel düğüm işletim sistemi de işletim sistemi işlevlerini korumak için bir miktar CPU ve bellek kaynağı ayırır.

İlgili en iyi uygulamalar için bkz. AKS'teki temel zamanlayıcı özelliklerine yönelik en iyi uygulamalar.

Sonraki adımlar