How to Use Caching in Kubernetes Ingress Controllers

Caching in Kubernetes Ingress Caching is a key strategy to reduce backend load and improve response times for clients. In Kubernetes, caching is usually implemented through the Ingress controller — particularly with NGINX. Why Use Caching? Reduce load on backend services Improve speed for repeated requests Minimize cost and bandwidth Smooth handling of traffic spikes Common Caching Setup: NGINX Ingress The NGINX Ingress Controller supports proxy caching via annotations. Step 1: Enable caching in your Ingress resource apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-app-ingress annotations: nginx.ingress.kubernetes.io/proxy-cache: "my-cache-zone" nginx.ingress.kubernetes.io/proxy-cache-key: "$scheme$request_method$host$request_uri" nginx.ingress.kubernetes.io/proxy-cache-use-stale: "error timeout updating http_500 http_502 http_503 http_504" spec: rules: - host: myapp.example.com http: paths: - path: / pathType: Prefix backend: service: name: my-app port: number: 80 Step 2: Define the cache zone in the NGINX ConfigMap apiVersion: v1 kind: ConfigMap metadata: name: nginx-configuration namespace: ingress-nginx data: proxy-cache-paths: | my-cache-zone keys_zone=my-cache-zone:10m max_size=100m inactive=60m use_temp_path=off; ⚠️ Requires restarting the Ingress controller or reloading its config. ...

June 16, 2025 · 2 min · 230 words · John Cena