Acabas de desplegar tu una nueva revisión de tu servicio en CloudRun, le asignas los tags en CloudRun, miras las gráficas para asegurarte de que todo está bien y la aplicación responde eficientemente y, ¡qué sorpresa! Pese a que en el yaml de configuración indicas que deberían de provisionarse entre 2 y 3 pods, ves en la gráfica que hay 4 pods vivos.
Esperas un poco de tiempo, porque piensas que quizá aún la antigua revisión sigue reportando sus métricas pese a que la nueva ya ha sido desplegada. Pero después de varios minutos ves en la gráfica que siguen habiendo 4 pods vivos. ¿Cómo es posible esto si hemos indicado que queremos entre 2 y 3?
En la pestaña dónde podemos ver todas las revisiones, aparecerá un signo de tick verde en todas las revisiones que estén sirviendo tráfico.

En este caso, podemos ver como las dos revisiones están disponibles, entonces si cada una presenta un mínimo de dos pods disponibles, eso significa que podríamos tener desde 4 pods. Esto puede ser un problema ya que Google Cloud nos cobraría por cada pod, y nosotros solo deseamos tener 2 vivos con la última versión de nuestro servicio. Estaríamos pagando por 2 pods que no se van a usar.
Tráfico en CloudRun
A menudo podemos pensar que es por el tráfico configuardo, ya que podemos configurar un balanceo de la carga sobre nuestras diferentes revisiones. Por ejemplo, podemos asignar un 80% del tráfico a la revisión antigua y sólo un 20% a la última subida a producción. Sin embargo, en algunos casos podemos ver cómo el tráfico está configurado al 100% para una revisión y otra sigue apareciendo como disponible. ¿A qué se debe eso?
Tags en CloudRun
Pues bien, cómo buena práctica estás asignando tags a cada una de tus revisiones que vas subiendo para poder identificarlas más tardes por versión (por ejemplo). Sin embargo, no has eliminado los tags de las revisiones que no estabas usando.
Por defecto, Google Cloud mantiene vivas las instancias o pods que tengas en CloudRun con un tag o más asignados. De modo que aunque no reciba tráfico, siempre estará lista para empezar a recibir tráfico si se la configura y conseguir minimizar el tiempo de puesta a punto de un pod.
Si estamos seguros de que no queremos volver a usar una revisión antigua o no nos importa más tiempo de inicio en caso de necesitarla, deberíamos siempre eliminar los tags para asegurarnos de que Google Cloud apaga correctamente ese tag. De ese modo, no seremos facturados por esos recursos que realmente no estamos consumiendo.
¿Alguna vez te has topado con un problema similar? Te leo en los comentarios.
¿Quieres leer más sobre CloudRun? CloudRun