AKS kümelerinde bellek doygunluğu sorunlarını giderme
Bu makalede bellek doygunluğu sorunlarını giderme yöntemleri ele alınmaktadır. Bellek doygunluğu, en az bir uygulama veya işlem bir kapsayıcı konağı tarafından sağlanabilir bellekten daha fazla belleğe ihtiyaç duyuyorsa veya konak kullanılabilir belleği tüketiyorsa oluşur.
Önkoşullar
- Kubernetes kubectl komut satırı aracı. Azure CLI kullanarak kubectl yüklemek için az aks install-cli komutunu çalıştırın.
Belirtiler
Aşağıdaki tabloda, bellek doygunluğunun yaygın belirtileri özetlenmiştir.
Belirti | Açıklama |
---|---|
Zamanlanamayan podlar | Düğüm ayarlanan bellek sınırına yakınsa ek podlar zamanlanamaz. |
Pod çıkarma | Bir düğümün belleği tükeniyorsa kubelet podları çıkarabilir. Denetim düzlemi, kaynakları olan diğer düğümlerde çıkarılan podları yeniden zamanlamaya çalışsa da, diğer düğümlerin bu podları çalıştırmak için yeterli belleğe sahip olduğunu garanti etmemektedir. |
Düğüm hazır değil | Bellek doygunluğu yanıt vermemeye ve kubelet containerd sonuç olarak düğüm hazırlığı sorunlarına neden olabilir. |
Yetersiz bellek (OOM) sonlandırma | Pod çıkarma işlemi bir düğüm sorununu önleyemediğinde bir OOM sorunu oluşur. |
Sorun giderme denetim listesi
Bellek doygunluğunu azaltmak için etkili izleme araçlarını kullanın ve en iyi yöntemleri uygulayın.
1. Adım: Bellek doygunluğu olan düğümleri tanımlama
Bellek doygunluğu olan düğümleri tanımlamak için aşağıdaki yöntemlerden birini kullanın:
Web tarayıcısında, Azure portal AKS'nin Container Insights özelliğini kullanın.
Konsolda Kubernetes komut satırı aracını (kubectl) kullanın.
Container Insights, AKS'de kapsayıcı iş yükü performansını izleyen bir özelliktir. Daha fazla bilgi için bkz. Azure Kubernetes Service (AKS) kümesi için Kapsayıcı içgörülerini etkinleştirme.
Azure portalKubernetes hizmetleri'ni arayın ve seçin.
Kubernetes hizmetleri listesinde kümenizin adını seçin.
Kümenizin gezinti bölmesinde İzleme başlığını bulun ve İçgörüler'i seçin.
Uygun Zaman Aralığı değerini ayarlayın.
Düğümler sekmesini seçin.
Ölçüm listesinde Bellek çalışma kümesi (Allocatable'dan hesaplanır) öğesini seçin.
Yüzdebirlik dilim seçicisinde örneği En Fazla olarak ayarlayın ve ardından En Fazla % sütun etiketini iki kez seçin. Bu eylem, tablo düğümlerini en yüksekten en düşüke kadar kullanılan bellek yüzdesi üst sınırına göre sıralar.
İlk düğüm en yüksek bellek kullanımına sahip olduğundan, düğümde çalışan podların bellek kullanımını araştırmak için bu düğümü seçin.
Not
Podlar için CPU veya bellek kullanımı yüzdesi, kapsayıcı için belirtilen CPU isteğini temel alır. Düğüm için CPU veya bellek kullanımı yüzdesini temsil etmez. Bu nedenle, podlar için CPU veya bellek kullanımı yüzdesi yerine gerçek CPU veya bellek kullanımına bakın.
Artık yüksek bellek kullanan podları tanımladığınıza göre, pod üzerinde çalışan uygulamaları tanımlayabilirsiniz.
2. Adım: Bellek doygunluğunu önlemek için en iyi yöntemleri gözden geçirin
Bellek doygunluğunu önlemeye yönelik en iyi yöntemleri nasıl uygulayacağınızı öğrenmek için aşağıdaki tabloyu gözden geçirin.
En iyi yöntem | Açıklama |
---|---|
Bellek isteklerini ve sınırlarını kullanma | Kubernetes, bir kapsayıcı için en düşük bellek boyutunu (istek) ve en yüksek bellek boyutunu (sınırı) belirtme seçenekleri sağlar. Podlarda sınırları yapılandırarak düğümdeki bellek baskısını önleyebilirsiniz. Çalışan tüm podların toplam sınırlarının düğümün kullanılabilir belleğini aşmadığından emin olun. Bu duruma fazla uygunluk denir. Kubernetes zamanlayıcı, Hizmet Kalitesi (QoS) aracılığıyla kaynakları belirli isteklere ve sınırlara göre ayırır. Uygun sınırlar olmadan zamanlayıcı tek bir düğümde çok fazla pod zamanlayabilir. Bu işlem sonunda düğümü düşürebilir. Ayrıca kubelet podları çıkartırken bellek kullanımının tanımlı isteklerini aştığı podların önceliklerini belirler. Bellek isteğini gerçek kullanıma yakın ayarlamanızı öneririz. |
Yatay pod otomatik ölçeklendiricisini etkinleştirme | Kümeyi ölçeklendirerek, bellek doygunluğunu önlemek için istekleri birçok pod arasında dengeleyebilirsiniz. Bu teknik, belirli bir düğümdeki bellek ayak izini azaltabilir. |
Benzeşim önleme etiketlerini kullanma | Belleğin tasarım gereği ilişkisiz olduğu senaryolar için, iş yükünü belirli düğümlerle yalıtabilen düğüm seçicileri ve benzeşim veya benzeşim karşıtı etiketleri kullanabilirsiniz. Benzeşim karşıtı etiketleri kullanarak, diğer iş yüklerinin bu düğümlerde pod zamanlamasını engelleyebilirsiniz. Bu, bellek doygunluğu sorununu azaltır. |
Daha yüksek SKU VM'leri seçme | Daha fazla rastgele erişim belleğine (RAM) sahip sanal makineler (VM'ler), yüksek bellek kullanımını işlemek için daha uygundur. Bu seçeneği kullanmak için yeni bir düğüm havuzu oluşturmanız, düğümleri kordonlu hale getirmeniz (zamanlanamayan hale getirmeniz) ve mevcut düğüm havuzunu boşaltmanız gerekir. |
Sistem ve kullanıcı iş yüklerini yalıtma | Uygulamalarınızı bir kullanıcı düğümü havuzunda çalıştırmanızı öneririz. Bu yapılandırma, Kubernetes'e özgü podları sistem düğümü havuzuna yalıtmanızı ve küme performansını koruyabilmenizi sağlar. |
Daha fazla bilgi
Azure Kubernetes Service (AKS) en iyi yöntemleri hakkında daha fazla bilgi edinin
Kapsayıcı içgörüleri ile Kubernetes kümenizin performansını izleme
Üçüncü taraf bilgileri hakkında yasal uyarı
Bu makalede adı geçen üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft, bu ürünlerin performansı veya güvenilirliği ile ilgili örtük veya başka türlü hiçbir garanti vermez.
Üçüncü tarafla iletişim sorumluluk reddi
Microsoft, bu konu hakkında ek bilgi bulmanıza yardımcı olmak için üçüncü taraf iletişim bilgileri sağlar. Bu iletişim bilgileri önceden haber verilmeksizin değiştirilebilir. Microsoft, üçüncü taraf iletişim bilgilerinin doğruluğunu garanti etmez.
Yardım için bize ulaşın
Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin