Kubernetes-värdbaserade klientprogram

Klientanslutningar från flera poddar

När du har flera poddar som ansluter till en Redis-server kontrollerar du att de nya anslutningarna från poddarna har skapats på ett förskjutet sätt. Om flera poddar startar på kort tid utan häpnadsväckande leder det till en plötslig ökning av antalet skapade klientanslutningar. Det stora antalet anslutningar leder till hög belastning på Redis-servern och kan orsaka timeouter.

Undvik samma scenario när du stänger av flera poddar samtidigt. Om avstängningen misslyckas kan det leda till en kraftig minskning av antalet anslutningar som leder till cpu-tryck.

Tillräckligt med poddresurser

Se till att podden som kör klientprogrammet får tillräckligt med PROCESSOR- och minnesresurser. Om klientprogrammet körs nära sina resursgränser kan det resultera i tidsgränser.

Tillräckliga nodresurser

En podd som kör klientprogrammet kan påverkas av andra poddar som körs på samma nod och begränsar Redis-anslutningar eller I/O-åtgärder. Se därför alltid till att den nod som klientprogrampoddarna körs på har tillräckligt med minne, PROCESSOR och nätverksbandbredd. Om du får ont om någon av dessa resurser kan det leda till anslutningsproblem.

Linux-värdbaserade klientprogram och TCP-inställningar

Om ditt Azure Cache for Redis-klientprogram körs på en Linux-baserad container rekommenderar vi att du uppdaterar vissa TCP-inställningar. De här inställningarna beskrivs i TCP-inställningarna för Linux-värdbaserade klientprogram.

Potentiell anslutningskollision med Istio/Envoy

För närvarande använder Azure Cache for Redis portar 15xxx för klustrade cacheminnen för att exponera klusternoder för klientprogram. Som beskrivs här används samma portar också av Istio.io sidovagnsproxy som heter Envoy och kan störa skapandet av anslutningar, särskilt på port 15001 och 15006.

När du använder Istio med ett Azure Cache for Redis-kluster bör du överväga att undanta potentiella kollisionsportar med en istio-anteckning.

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

För att undvika anslutningsinterferens rekommenderar vi:

  • Överväg att använda en icke-grupperad cache eller en cache på Enterprise-nivå i stället
  • Undvik att konfigurera Istio-sidovagnar på poddar som kör Azure Cache for Redis-klientkod