Tenemos un clúster de GKE con Ingress (kubernetes.io/ingress.class: "gce") donde un backend presta servicio a nuestro sitio de producción.
El clúster es regional con 3 zonas habilitadas (autoescalado habilitado).
El sitio de producción de servicio backend es un servidor Varnish que se ejecuta como Implementación: réplica única. Detrás de Varnish hay varios pods de Nginx/PHP ejecutándose bajo HorizontalPodAutoscaler.
El rendimiento del sitio es lento. Hemos notado al usar la consola GCP que todo el tráfico se enruta solo a un backend y solo hay 1/1 punto final saludable en una zona.
Obtenemos un signo de exclamación junto al backend de servicio con el mensaje "Uso al máximo de su capacidad, máx. = 1" y "Utilización del backend: 0%". ¿El otro backend en la segunda zona no tiene un punto final configurado? ¿Y no hay un tercero respaldado en tercera zona?
Inicialmente, obtuvimos muchas respuestas 5xx del backend a una velocidad de alrededor de 80RPS, por lo que activamos CDN a través de BackendConfig.
Esto ha reducido las respuestas 5xx, incluido el RPS en el backend, a alrededor de 9RPS y alrededor del 83 % del RPS se atiende desde CDN.
Estamos tratando de averiguar si es posible mejorar nuestra utilización de back-end, ya que claramente debería ser posible servir 80RPS desde un servidor Varnish que tiene muchos pods detrás. No podemos encontrar ningún POD de bajo rendimiento (barniz mismo o nginx/php) en este escenario.
¿GKE/GCP limita el backend/punto final para admitir solo 1RPS?
¿Hay alguna forma de aumentar el RPS por punto final y aumentar la cantidad de puntos finales, al menos uno por zona?
¿Hay alguna documentación disponible que explique cómo escalar dicha arquitectura en GKE/GCP?