Alerta en Kubernetes - Readiness Probe Warning: Probe terminated redirects

Recientemente, me encontré con este problema en Kubernetes, al revisar los eventos que ocurren en mi cluster:

$ kubectl get events
2m30s       Warning   ProbeWarning             pod/web-6899f548bc-rffxw              Readiness probe warning: Probe terminated redirects, Response body:

Como podemos leer, nos marca una alerta relacionada con una redirección, y un readiness probe, el cual es una petición que se hace al pod para saber que está listo para empezar a trabajar.

Sabiendo esto, me puse a revisar que petición se hace para validar su disponibilidad:

$ kubectl describe pod-899f548bc-rffxw | grep Readiness:
http://:3000/robots.txt

Encontré que hacemos una petición a localhost, nada fuera de lo normal. Lo extraño fue al realizar esta misma petición con curl:

$ kubectl exec -it pod-899f548bc-rffxw -- curl -i http://localhost:3000/robots.txt -L
HTTP/1.1 301 Moved Permanently  
Content-Type: text/html  
Location: https://localhost:3000/robots.txt  
Transfer-Encoding: chunked
error:1408F10B:SSL routines:ssl3_get_record:wrong version number

Tenemos dos problemas aquí:

  • Se está mandando un código HTTP diferente al esperado 2xx. Esto no genera la alerta, pero es inesperado.
  • Se está haciendo una redirección a HTTPS, cuando es local. Esto genera la alerta.

Sobre la redirección, leyendo los issues de Github, resulta que si se siguen redirecciones a pesar de que la documentación no lo dice. Así que lo mejor que podemos hacer, es quitar esa redirección.

Corrigiendo el problema

Para corregirlo, dependerá del framework que se utilice, pero en este caso, la redirección a HTTPS estaba activa para toda la aplicación.

En Ruby on Rails, esto se puede mitigar, evitando que la URL en cuestión no se force a utilizar HTTPS, como marca la documentación:

/config/enviroments/production.rb
config.ssl_options = { redirect: { exclude: -> request { request.path =~ /robots.txt/ } } }

Y listo! Con esto nos evitamos esta alerta que lanza Kubernetes.

Notes mentioning this note Menciones

There are no notes linking to this note.


Related posts