Kubernetes tarafından barındırılan istemci uygulama

Birden çok poddan istemci bağlantıları

Redis sunucusuna bağlanan birden çok pod varsa, podlardan gelen yeni bağlantıların aşamalı olarak oluşturulduğundan emin olun. Birden çok pod kısa sürede kademeleme olmadan başlarsa, oluşturulan istemci bağlantısı sayısında ani bir artışa neden olur. Bağlantı sayısının yüksek olması Redis sunucusunda yüksek yüke yol açar ve zaman aşımlarına neden olabilir.

Aynı anda birden çok pod kapatılırken aynı senaryodan kaçının. Kapatma işleminin aşamalı olarak başarısız olması, CPU baskısına yol açan bağlantı sayısında dik bir düşüşe neden olabilir.

Yeterli pod kaynağı

İstemci uygulamanızı çalıştıran poda yeterli CPU ve bellek kaynağı verildiğinden emin olun. İstemci uygulaması kaynak sınırlarına yakın çalışıyorsa zaman aşımlarına neden olabilir.

Yeterli düğüm kaynağı

İstemci uygulamasını çalıştıran pod aynı düğümde çalıştırılan diğer podlardan etkilenebilir ve Redis bağlantılarını veya GÇ işlemlerini kısıtlayabilir. Bu nedenle her zaman istemci uygulama podlarınızın çalıştığı düğümün yeterli bellek, CPU ve ağ bant genişliğine sahip olduğundan emin olun. Bu kaynaklardan herhangi birinde yetersizlik, bağlantı sorunlarına neden olabilir.

Linux tarafından barındırılan istemci uygulamaları ve TCP ayarları

Redis için Azure Cache istemci uygulamanız Linux tabanlı bir kapsayıcıda çalışıyorsa bazı TCP ayarlarını güncelleştirmenizi öneririz. Bu ayarlar, Linux tarafından barındırılan istemci uygulamaları için TCP ayarlarında ayrıntılı olarak yer alır.

Istio/Envoy ile olası bağlantı çakışması

şu anda Redis için Azure Cache, küme düğümlerini istemci uygulamalarına göstermek için kümelenmiş önbellekler için 15xxx numaralı bağlantı noktalarını kullanır. Burada da belirtildiği gibi, aynı bağlantı noktaları Envoy adlı Istio.io sepet ara sunucusu tarafından da kullanılır ve özellikle 15001 ve 15006 numaralı bağlantı noktalarında bağlantı oluşturulmasını engelleyebilir.

istio'yu bir Redis için Azure Cache kümesiyle kullanırken olası çakışma bağlantı noktalarını bir istio ek açıklamasıyla hariç tutmalısınız.

annotations:
  traffic.sidecar.istio.io/excludeOutboundPorts: "15000,15001,15004,15006,15008,15009,15020"

Bağlantı girişimini önlemek için şunları öneririz:

  • Bunun yerine bir kümelenmemiş önbellek veya Kurumsal katman önbelleği kullanmayı göz önünde bulundurun
  • İstemci kodu Redis için Azure Cache çalıştıran podlarda Istio sepetlerini yapılandırmaktan kaçının