Door Kubernetes gehoste clienttoepassing

Clientverbindingen van meerdere pods

Wanneer u meerdere pods hebt die verbinding maken met een Redis-server, moet u ervoor zorgen dat de nieuwe verbindingen van de pods op een gespreide manier worden gemaakt. Als meerdere pods in korte tijd beginnen zonder te verspringen, veroorzaakt dit een plotselinge piek in het aantal gemaakte clientverbindingen. Het hoge aantal verbindingen leidt tot een hoge belasting op de Redis-server en kan time-outs veroorzaken.

Vermijd hetzelfde scenario wanneer u meerdere pods tegelijk afsluit. Als het niet kan worden afgesloten, kan dit leiden tot een steile dip in het aantal verbindingen dat leidt tot CPU-druk.

Voldoende podbronnen

Zorg ervoor dat de pod waarop uw clienttoepassing wordt uitgevoerd voldoende CPU- en geheugenbronnen krijgt. Als de clienttoepassing dicht bij de resourcelimieten wordt uitgevoerd, kan dit leiden tot time-outs.

Voldoende knooppuntbronnen

Een pod waarop de clienttoepassing wordt uitgevoerd, kan worden beïnvloed door andere pods die op hetzelfde knooppunt worden uitgevoerd en Redis-verbindingen of IO-bewerkingen beperken. Zorg er dus altijd voor dat het knooppunt waarop uw clienttoepassingspods worden uitgevoerd voldoende geheugen, CPU en netwerkbandbreedte hebben. Als een van deze resources laag wordt uitgevoerd, kan dit leiden tot verbindingsproblemen.

Door Linux gehoste clienttoepassingen en TCP-instellingen

Als uw Azure Cache voor Redis-clienttoepassing wordt uitgevoerd op een Linux-container, raden we u aan om bepaalde TCP-instellingen bij te werken. Deze instellingen worden beschreven in TCP-instellingen voor door Linux gehoste clienttoepassingen.

Mogelijke verbindingsconflict met Istio/Envoy

Op dit moment gebruikt Azure Cache voor Redis poorten 15xxx voor geclusterde caches om clusterknooppunten beschikbaar te maken voor clienttoepassingen. Zoals hier beschreven, worden dezelfde poorten ook gebruikt door Istio.io sidecar-proxy met de naam Envoy en kunnen deze problemen veroorzaken met het maken van verbindingen, met name op poort 15001 en 15006.

Wanneer u Istio gebruikt met een Azure Cache voor Redis-cluster, kunt u overwegen de mogelijke aantekeningspoorten met een istio-aantekening uit te sluiten.

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

Om verbindingsinterferentie te voorkomen, raden we het volgende aan:

  • Overweeg in plaats daarvan een niet-geclusterde cache of een Enterprise-laagcache te gebruiken
  • Vermijd het configureren van Istio-sidecars op pods waarop Azure Cache voor Redis clientcode wordt uitgevoerd