429 Çok Fazla İstek hatası
Bu makalede, Microsoft Azure Kubernetes Service (AKS) kümelerinizde (veya Azure'da başka bir Kubernetes uygulaması kullanan kümelerde) "429 Çok Fazla İstek" hatasının neden olduğu hataların nasıl giderılacağı açıklanır.
Belirtiler
Aşağıdaki metne benzer hatalar alırsınız:
Hizmet bir hata döndürdü.
Durum=429
Code="OperationNotAllowed"
Message="Bu abonelik için çok fazla istek alındığından sunucu isteği reddetti."
Details=[{
"code":"TooManyRequests",
"message":"{
\"operationGroup\":\"HighCostGetVMScaleSet30Min\",
\"startTime\":\"2020-09-20T07:13:55.2177346+00:00\",
\"endTime\":\"2020-09-20T07:28:55.2177346+00:00\",
\"allowedRequestCount\":1800,
\"measuredRequestCount\":2208
}",
"target":"HighCostGetVMScaleSet30Min"
}]InnerError={"internalErrorCode":"TooManyRequestsReceived"}"}
Neden: Aşırı çağrı birimleri Azure'ın aboneliğinizi kısıtlamasına neden oluyor
Azure'da sık sık ölçeğini artırıp azaltan veya küme otomatik ölçeklendiricisini kullanan bir Kubernetes kümesi (AKS ile veya AKS olmadan) büyük miktarda HTTP çağrısına neden olabilir. Bu çağrı birimi, Azure aboneliğiniz için atanan kotayı aştığından hataya neden olabilir.
Bu hatalar hakkında daha fazla bilgi için bkz. Azure Resource Manager isteklerini azaltma ve API azaltma hatalarını giderme. Bu hataların nedenini analiz etme ve tanımlama hakkında bilgi edinmek ve bunları çözmek için öneriler almak için bkz. AKS Tanılama ve Çözme Sorunlarını Kullanarak Hataları Çözümleme ve Tanımlama.
Çözüm 1: Kubernetes'in sonraki bir sürümüne yükseltme
Kubernetes 1.18'i çalıştırın. x veya üzeri. Bu sürümler AKS azaltma/429 hataları ve Azaltma olmadan büyük kümeleri destekleme bölümünde açıklanan birçok geliştirme içerir. Ancak yine de azaltma görüyorsanız (abonelikteki gerçek yük veya istemci sayısı nedeniyle) aşağıdaki çözümleri deneyebilirsiniz.
Çözüm 2: Otomatik ölçeklendirici tarama aralığını artırma
Küme otomatik ölçeklendiricisinin neden olduğu "Küme Otomatik Ölçekleyici Azaltma algılandı" tanılama raporları azaltmasını bulursanız, küme otomatik ölçeklendiricisinden sanal makine ölçek kümelerine (VMSS) yapılan çağrı sayısını azaltmak için otomatik ölçeklendirici tarama aralığını artırmayı deneyebilirsiniz.
Çözüm 3: Üçüncü taraf uygulamaları daha az çağrı yapacak şekilde yeniden yapılandırma
"İstek hızını ve azaltma ayrıntılarını görüntüle" tanılamasında kullanıcı aracılarına göre filtrelediğinizde, aşırı sayıda GET isteğinde bulunan üçüncü taraf uygulamalar (izleme uygulamaları gibi) bulursanız, GET çağrılarının sıklığını azaltmak için bu uygulamaların ayarlarını değiştirin. Ayrıca, uygulama istemcilerinin Azure API'lerini çağırırken üstel geri alma kullandığından emin olun.
Çözüm 4: Kümelerinizi farklı aboneliklere veya bölgelere bölme
Sanal makine ölçek kümeleri kullanan çok sayıda küme ve düğüm havuzu varsa, kümeleri farklı aboneliklere veya bölgelere (aynı abonelik içinde) bölmeyi deneyin. Azure API sınırlarının çoğu abonelik bölgesi düzeyinde paylaşılan sınırlardır. Örneğin, alt bir ve Doğu ABD bölgesindeki tüm kümeler ve istemciler, sanal makine ölçek kümeleri GET API'sinin sınırını paylaşır. Bu nedenle, yeni bir bölgedeki yeni AKS kümelerini taşıyabilir veya ölçeklendirin ve Azure API azaltmasında engeli kaldırabilirsiniz. Bu teknik, kümelerin yüksek etkinliğe sahip olmasını bekliyorsanız (örneğin, etkin bir küme otomatik ölçeklendiriciniz varsa) yardımcı olur. Ayrıca çok sayıda müşteriniz varsa (Rancher, Terraform vb.) yardımcı olur. Tüm kümelerin esnekliği ve Azure API'lerini yoklayan istemci sayısı farklı olduğundan, abonelik-bölge düzeyine göre çalıştırabileceğiniz küme sayısına ilişkin genel yönergeler yoktur. Belirli yönergeler için bir destek bileti oluşturabilirsiniz.
AKS Sorunlarını Tanılama ve Çözme'yi kullanarak hataları analiz etme ve tanımlama
AKS kümesinde AKS Tanılama ve Çözme Sorunlarını kullanarak bu hataların nedenini analiz edebilir ve tanımlayabilir ve bunları çözmek için öneriler alabilirsiniz. Azure portal kümenize gidin ve sol gezinti bölmesinde Sorunları tanılama ve çözme'yi seçerek AKS Sorunlarını Tanılama ve Çözme'yi açın. Azure Kaynak İsteği Azaltma'yı Arama ve açın; burada bir dizi tanılamayla rapor alabilirsiniz. Bu tanılamalar, kümenin Azure Resource Manager (ARM) veya Kaynak Sağlayıcısı (RP) için herhangi bir istek hızı azaltma (429 yanıtı) yaşanıp yaşamadığını ve azaltmanın nereden geldiğini gösterebilir. Örneğin:
Kümeniz için İstek Hızı Azaltma algılandı: Bu tanılama, geçerli AKS kümesinde azaltma algılandıysa bazı genel öneriler sağlar.
Küme Otomatik Ölçekleyici Azaltması algılandı: Azaltma algılandıysa ve küme otomatik ölçeklendiricisinden kaynaklandıysa bu tanılama gösterilir.
Küme otomatik ölçeklendiricisinden gelen istek hacmini azaltmak için aşağıdaki yöntemleri kullanın:
- Küme otomatik ölçeklendiricisinden sanal makine ölçek kümelerine yapılan çağrı sayısını azaltmak için otomatik ölçeklendirici tarama aralığını artırın. Küme otomatik ölçeklendiricisi yeni bir sanal makine için Azure İşlem Kaynak Sağlayıcısı'nı (CRP) çağırmadan önce daha uzun süre beklediğinden bu yöntemin ölçeği artırma süresi üzerinde olumsuz gecikme süresi etkisi olabilir.
- Kümenin en az 1.18 Kubernetes sürümünde olduğundan emin olun. Kubernetes sürüm 1.18 ve üzeri sürümler, 429 azaltma yanıtı alındığında istek hızını geri alma oranını daha iyi işler. Güvenlik düzeltme eklerini almak için desteklenen Kubernetes sürümlerinde kalmanızı kesinlikle öneririz.
Azaltma - Azure Resource Manager: Bu tanılama, AKS kümesinde belirtilen zaman aralığındaki kısıtlanmış isteklerin sayısını gösterir.
İstek Hızı - Azure Resource Manager: Bu tanılama, AKS kümesinde belirtilen zaman aralığındaki isteklerin toplam sayısını gösterir.
İstek hızını ve azaltma ayrıntılarını görüntüleme: Bu tanılamada azaltılan istekler ve toplam istekler de dahil olmak üzere azaltma ayrıntılarını belirlemek için birden çok diyagram bulunur. Aşağıdaki boyutları kullanarak sonuçları da filtreleyebilirsiniz:
- Konak: HTTP durumu 429 yanıtlarının algılandığı konak. Azure Resource Manager azaltmaları kaynaklanır
management.azure.com
; diğer her şey alt katman kaynak sağlayıcısıdır. - Kullanıcı aracısı: Kısıtlanmış belirli bir kullanıcı aracısı ile istekler.
- İşlem: HTTP durum 429 yanıtlarının algılandığı işlemler.
- İstemci IP'si: Kısıtlanmış istekleri gönderen istemci IP adresi.
- Konak: HTTP durumu 429 yanıtlarının algılandığı konak. Azure Resource Manager azaltmaları kaynaklanır
İstek azaltma, yalnızca bu kümenin istek hızını değil, bu abonelikteki herhangi bir kümenin birleşiminden kaynaklanabilir.
Örnek 1: Küme Otomatik Ölçekleyici azaltma
Bu örnek, küme otomatik ölçeklendiricisinin neden olduğu azaltmayı analiz etme hakkındadır.
AKS Tanılama ve Çözme Sorunları>Bilinen Sorunlar, Kullanılabilirlik ve Performans>Azure Kaynak İsteği Azaltma bölümünde Küme Otomatik Ölçekleyici Azaltması tanılamasının algılandığını fark ederseniz, küme otomatik ölçeklendiricisi tarafından verilen isteklerin kısıtlandığını gösterir.
Kısıtlanan isteklerin sayısını ve isteklerin ne zaman azaltıldığını Azaltma - Azure Resource Manager tanılamasında bulabilirsiniz.
Aynı zaman aralığındaki tüm ARM isteklerinin sayısını bulabilirsiniz.
Azaltma ayrıntılarını bulmak için İstek hızını görüntüleme ve azaltma ayrıntıları tanılamasını de inceleyebilirsiniz. Filtre seç açılan listesinden Kullanıcı Aracısı tarafından 429'ları seçtiğinizde otomatik ölçeklendirici isteklerinin 15:00 ile 16:00 arasında kısıtlandığını görebilirsiniz.
Küme otomatik ölçeklendiricisi ve diğer kullanıcı aracıları için kısıtlanmış isteklerin toplam sayısını da bulabilirsiniz.
Azaltmaları işlemlere göre de filtreleyebilirsiniz. VMSS VM silme işlemi bu durumda kısıtlanır.
Kısıtlanmış isteklerin sayısını ve işlemlere göre gruplandırılmış tüm istekleri bulabilirsiniz.
Ardından, azaltmaları azaltmak için Önerilen Eylem'deki önerileri izleyebilirsiniz.
Örnek 2: Bulut Sağlayıcısı azaltma
Bu örnek, Bulut Sağlayıcısı'nın neden olduğu kısıtlamalarla ilgilidir. Genellikle büyük kümelerdeki kaynakları çalıştırırken, örneğin 500'den fazla düğümü olan bir kümede Azure Load Balancer sağlarken gerçekleşir.
Kümenizde azaltma bulursanız, azaltma ayrıntılarını İstek hızını görüntüleme ve azaltma ayrıntıları tanılamasında görebilirsiniz. Filtre seçin açılan listesinden Kullanıcı Aracısı tarafından 429 sn seçeneğini belirlediğinizde bulut sağlayıcısı isteklerinin 03:00 ile 06:00 arasında kısıtlandığını görebilirsiniz.
Azaltılan işlemin "Network/loadBalancers/read" olduğunu öğrenmek için işlemlere göre de filtreleyebilirsiniz.
Bu azaltmayı azaltmak için AKS önizleme özelliğini Düğüm IP tabanlı Load Balancer kullanabilirsiniz.
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.