Operaciones y solución de problemas

Monitoriza, mantén y soluciona problemas en los despliegues del gateway de modelos, incluyendo actualizaciones de configuración de modelos, rotación de credenciales, monitorización del estado, recopilación de logs y resolución de problemas comunes de conectividad y autenticación.

Después del despliegue, la gestión operativa continua del gateway de modelos ayuda a garantizar un acceso fiable a los modelos de IA configurados y minimiza las interrupciones del servicio. Los administradores pueden revisar las configuraciones de modelos activas, actualizar las credenciales del proveedor, rotar secretos, monitorizar el estado del gateway y recopilar información de diagnóstico cuando se producen problemas.

Ver los modelos configurados

Hay dos niveles para ver los modelos: lo que está en la configuración y lo que bob-inference ha cargado realmente en tiempo de ejecución.

  • Nivel de configuración — recupera la configuración actual del gateway de modelos desde el ConfigMap de inferencia:
    oc get cm bob-inference-config -n <bob-namespace> -o yaml | yq '.data."config.yaml"'
  • Nivel de runtime — lo que bob-inference ha registrado y está enrutando activamente: consulta el endpoint /v1/models directamente (consulta Validar la conectividad con los modelos).
Nota:

El endpoint /v1/models de runtime solo lista los modelos donde exposed: true. El archivo de configuración es la única forma de ver el conjunto completo de modelos configurados.

Actualizar las credenciales del proveedor

Las credenciales se montan como variables de entorno desde bob.modelGateway.secrets. Actualizarlas es una operación de dos pasos: actualizar el valor del secreto y luego reiniciar el servicio de inferencia para cargar el nuevo montaje.

Actualizar el secreto

Edita el CR Bob y aplica el nuevo valor:

oc edit bob <instance-name> -n <bob-namespace>
# Actualiza el valor bajo bob.modelGateway.secrets

Reiniciar el servicio de inferencia

Reinicia el servicio de inferencia para que se monte el nuevo secreto:

oc rollout restart deploy/inference-service -n <bob-namespace>
oc rollout status deploy/inference-service -n <bob-namespace>
Advertencia:

El pod del servicio de inferencia debe reiniciarse después de cualquier actualización de secreto. Los cambios en la configuración del modelo (añadir o eliminar modelos, cambiar base_url) y los cambios de secretos se pueden agrupar en una única actualización del CR seguida de un reinicio.

Rotar secretos

La rotación de secretos sigue el mismo patrón que una actualización de credenciales, con cuidado adicional respecto al tiempo para evitar interrupciones.

Secuencia de rotación recomendada sin tiempo de inactividad:

  1. Actualiza bob.modelGateway.secrets con el nuevo valor de credencial.
  2. Reinicia el servicio de inferencia: oc rollout restart deploy/inference-service -n <bob-namespace>.
  3. Confirma que la nueva credencial funciona usando la prueba de inferencia de Verificación post-instalación.
  4. Revoca la credencial antigua en el lado del proveedor solo después de confirmar que el pod está en buen estado.

Notas específicas del proveedor:

  • openai_compatible / claves API — la nueva clave es efectiva inmediatamente al reiniciar. Es seguro revocar la clave antigua una vez que el pod esté en buen estado.
  • bedrock — asegúrate de que la nueva clave de acceso IAM está activa en AWS antes de reiniciar. La propagación de IAM puede tardar unos segundos.
  • vertex — genera y codifica en base64 la nueva clave de cuenta de servicio, actualiza el secreto, reinicia y verifica, luego elimina la clave antigua en GCP.
  • ca_cert_pem — para la renovación del certificado, verifica que el nuevo certificado no ha expirado antes de aplicarlo. Consulta Validación de certificados TLS.

Monitorizar el estado del gateway

Contador de reinicios del pod — un contador de reinicios creciente es una señal temprana de un fallo de inicio recurrente (montaje de secreto incorrecto, error de análisis de configuración):

oc get pods -n <bob-namespace> -l app=bob-inference \
  -o custom-columns='NAME:.metadata.name,RESTARTS:.status.containerStatuses[0].restartCount'

Sondas de liveness y readiness — comprueba la configuración y el estado actual de las sondas:

oc describe deploy/bob-inference -n <bob-namespace> | grep -A 10 "Liveness\|Readiness"

Comprobación de estado periódica — el endpoint /v1/models sirve como una comprobación de liveness simple. Si devuelve una lista de modelos válida, el gateway está activo. Se puede consultar desde una herramienta de monitorización o un cron job dentro del clúster.

Recopilar logs y diagnósticos

Logs para una ventana de tiempo específica (más útil al investigar un incidente reportado):

oc logs -n <bob-namespace> deploy/bob-inference \
  --since-time="2025-01-01T12:00:00Z" > bob-inference.log

Logs de una instancia de pod anterior (si el pod se ha reiniciado y los logs del fallo ya no están disponibles):

oc logs -n <bob-namespace> deploy/bob-inference --previous

Bundle de diagnóstico completo para el soporte:

oc describe pod -n <bob-namespace> -l app=bob-inference >> diagnostics.txt
oc get events -n <bob-namespace> --sort-by='.lastTimestamp' >> diagnostics.txt
oc logs -n <bob-namespace> deploy/bob-inference --since=1h >> diagnostics.txt
Nota:

El bundle de diagnóstico contiene los nombres de las variables de entorno del pod pero no los valores de los secretos (los secretos se montan, no se imprimen en los logs). Revisa los logs en busca de salidas accidentales de credenciales antes de enviarlos al soporte.

Solución de problemas de conectividad y autenticación

El modelo no aparece en /v1/models

  1. Comprueba si exposed: false está establecido — si es así, es el comportamiento esperado.
  2. Comprueba los logs de inicio en busca de un error de registro para ese model_name.
  3. Verifica el bloque del proveedor — base_url, ID del model y credenciales correctos.

401 Unauthorized en solicitudes de inferencia

  1. Confirma que el valor del secreto en bob.modelGateway.secrets es correcto y está actualizado.
  2. Confirma que la referencia env.<VAR> en la configuración del modelo coincide exactamente con el nombre de la clave del secreto (distingue mayúsculas de minúsculas).
  3. Reinicia el servicio de inferencia y vuelve a intentarlo — es posible que el secreto se haya actualizado sin un reinicio.
  4. Prueba la credencial de forma independiente. Consulta Validación de autenticación.

502 Bad Gateway o connection refused

  1. Confirma que el endpoint del modelo está activo y es accesible desde el clúster. Consulta Pruebas de conectividad.
  2. Comprueba los problemas con base_url — barras finales, esquema incorrecto (http vs https), puerto incorrecto.
  3. Comprueba si ha habido cambios en las políticas de red que puedan haber bloqueado el tráfico saliente desde la instalación.

certificate signed by unknown authority

  1. Confirma que ca_cert_pem está establecido y referencia una variable de entorno válida.
  2. Confirma que la variable de entorno está presente en bob.modelGateway.secrets.
  3. Verifica que el certificado no ha expirado: openssl x509 -noout -dates.
  4. Confirma que el certificado cubre el hostname del endpoint comprobando los Subject Alternative Names.

Pod del servicio de inferencia en CrashLoopBackOff

  1. Comprueba los logs de la instancia anterior: oc logs --previous.
  2. Busca errores de análisis de configuración — YAML malformado en la configuración del gateway de modelos.
  3. Busca montajes de secretos faltantes en la sección Events: oc describe pod.
  4. Confirma que el YAML de la configuración del gateway de modelos es válido antes de volver a aplicarlo.
¿Cómo es este tema?