Supervisar y diagnosticar aplicaciones de IA en AKS
Volver a la ruta AI-200
AI-200Capítulo 8

Preparación para la Certificación Microsoft AI-200

Supervisar y diagnosticar aplicaciones de IA en AKS

Correlaciona registros, métricas de recursos, eventos de Kubernetes, estados de Pods, Services, EndpointSlices, ingreso y conectividad integral para diagnosticar cargas de IA.

Tiempo de estudio sugerido: 85 minutos • Nivel intermedio • Reescritura original completa con versión resumida de cada tema, evaluación comentada y laboratorio guiado

Escudo neón Microsoft Certified AI-200 con símbolos de IA, supervisión, diagnóstico, seguridad y desarrollo en la nube

1. Observar toda la carga de IA antes de modificarla

Una de inferencia y un worker de enriquecimiento pueden parecer sanos mientras los usuarios sufren lentitud, errores del modelo o recomendaciones obsoletas. El origen puede ser el código, una dependencia, la configuración de Kubernetes, el enrutamiento del Service, la presión de recursos o el clúster. La supervisión reduce el espacio de búsqueda antes de introducir otra variable.

ofrece vistas complementarias. Microsoft Azure Portal incluye Cargas de trabajo, Registros en vivo, Insights, Supervisión, Consola y Diagnosticar y resolver problemas. kubectl expone recursos, registros, eventos, métricas y objetos de red. Una investigación fiable avanza de síntoma a evidencia, hipótesis, prueba controlada, corrección duradera y verificación.

  • Identifica la ruta afectada y la ventana temporal.
  • Compara señales de aplicación, Kubernetes e infraestructura.
  • Usa el portal para delimitar visualmente y kubectl para profundizar.
  • Modifica código, configuración o manifiestos, no el contenedor activo.

Resumen del tema

Empieza por el síntoma del usuario y correlaciona evidencias del portal y kubectl antes de elegir una corrección reproducible.

2. Elegir registros y métricas que expliquen el comportamiento de la IA

Latencia, rendimiento, 5xx, , profundidad de cola, duración de lotes, reinicios, códigos de salida, CPU y memoria describen capas distintas. Compara uso con y limits: llegar al límite de CPU causa y latencia; la presión de memoria puede terminar y reiniciar el contenedor.

Mapa de señales.
SeñalPreguntaAcción habitual
Latencia y rendimiento¿El satisface la demanda?Inspeccionar dependencias, escalar u optimizar.
Errores y ¿Qué solicitudes fallan?Correlacionar registros y trazas.
Reinicios y salidas¿El contenedor es estable?Ver registros previos, estado y eventos.
CPU y memoria¿Capacidad o límites restringen?Redimensionar o escalar réplicas.
Cola o lote¿Se acumula trabajo?Ajustar concurrencia y escalado.
Solicitudes de IA producen registros, métricas y eventos de Kubernetes observados con Azure Monitor, Container Insights, Microsoft Azure Portal y kubectl.
Una señal útil vincula el impacto con aplicación, orquestación o capacidad.

Resumen del tema

Supervisa resultado del usuario, aplicación, ciclo del Pod y capacidad juntos; una sola métrica no explica el incidente.

3. Inspeccionar evidencia actual e histórica en Microsoft Azure Portal

En Recursos de Kubernetes, Cargas de trabajo muestra estado, antigüedad, reinicios y detalles de Deployments, Pods, ReplicaSets, StatefulSets, Jobs y CronJobs. Registros en vivo transmite stdout y stderr, permite pausar, buscar y seleccionar el contenedor de un Pod con . Consola abre un terminal interactivo en el navegador.

La pestaña Supervisión resume grupos de nodos y abre gráficos en el explorador de métricas. Insights correlaciona espacios de nombres, controladores, contenedores, registros, eventos, CPU, memoria, red y sistema de archivos. Los datos en directo requieren y acceso a la ; un clúster privado requiere conectividad de red. El historial depende de y Analytics.

Resumen del tema

Usa Cargas de trabajo y datos en directo para el incidente actual y Insights y para historia y análisis entre Pods.

4. Leer registros de contenedor con precisión mediante kubectl

Enumera Pods en el correcto, elige la instancia problemática y sigue registros mientras reproduces la solicitud. -c selecciona el contenedor de la en lugar del . --previous es esencial después de un reinicio porque los registros actuales pueden ocultar el proceso que falló.

kubectl get pods -n ai-workloads
kubectl logs <pod-name> -n ai-workloads
kubectl logs -f <pod-name> -c inference-api -n ai-workloads
kubectl logs <pod-name> --previous -n ai-workloads

Los espacios de nombres separan lógica, acceso y cuotas; las etiquetas seleccionan la aplicación dentro de ese límite. Registra fecha, correlación, modelo y versión, estado y duración de dependencias con campos estructurados. No registres , prompts confidenciales, cadenas de conexión ni credenciales.

Resumen del tema

Selecciona , Pod, contenedor e instancia de ciclo correctos y correlaciona registros con la solicitud que reproduce el error.

5. Comparar consumo con y limits

El portal muestra CPU y memoria por grupo y, en Insights, por nodo, controlador, Pod o contenedor. Métricas en directo añade CPU, memoria, red y sistema de archivos actuales. Con Metrics Server, kubectl top ofrece una instantánea rápida.

kubectl top nodes
kubectl top pods -n ai-workloads
kubectl top pod <pod-name> --containers -n ai-workloads

Una instantánea no es una tendencia. Compara la ventana del error, y limits, réplicas deseadas, capacidad del nodo y evidencia de o falta de memoria. CPU sostenida en el límite exige probar recursos, réplicas, eficiencia del modelo o distribución, no aumentar valores arbitrariamente.

Resumen del tema

Combina el historial del portal y la instantánea de kubectl y compara consumo con , limits, réplicas y objetivos.

6. Crear telemetría de producción útil para investigar

La observabilidad de producción define objetivos de latencia y error, conserva historia útil y alerta antes del impacto general. Registros estructurados e identificadores de correlación conectan , , modelo, caché, cola y worker. La versión de modelo y aplicación relaciona una regresión con el rollout.

  • Usa Prometheus administrado y Grafana para métricas temporales y paneles.
  • Usa Insights y Analytics para salida, inventario e historia consultable.
  • Configura reglas de recopilación, retención y filtros equilibrando evidencia y coste.
  • Alerta sobre síntomas y agotamiento y enlaza un runbook.
  • Protege telemetría con y excluye datos confidenciales.

Resumen del tema

Diseña registros, métricas, alertas, retención y correlación antes del incidente para reconstruir solicitud e implementación.

7. Reconocer estados problemáticos de los Pods

Síntomas comunes.
EstadoCausa probablePrimera evidencia
Imagen, etiqueta, acceso al registro o identidad incorrectosEventos y referencia de imagen.
Proceso termina, comando, configuración o dependencia inválidosEstado, registros previos y eventos.
PendingRecursos, afinidad, volumen, cuota o regla de programaciónEventos de programación y .
Reinicios frecuentesSondeo, memoria, fuga o excepciónConteo, motivo, registros y métricas.
Running sin ReadyReadiness o dependencia fallaCondiciones, eventos y salud local.
Estados del Pod conducen a inspeccionar estado, registros previos, eventos, sondeos, entorno, Secrets, volúmenes y recursos antes de corregir el manifiesto.
El estado es un síntoma; eventos y runtime revelan la causa.

Resumen del tema

Usa , , Pending, reinicios y readiness fallida como puntos de partida, no diagnósticos.

8. Describir Pods y examinar eventos de Kubernetes

kubectl describe pod reúne estado, última terminación, sondeos, fuentes de entorno, montajes, programación y eventos. Los eventos muestran fallos de extracción, restricciones, errores de sondeo y acciones de controladores que el registro de la aplicación no explica.

kubectl get pods -n ai-workloads
kubectl describe pod <pod-name> -n ai-workloads
kubectl get events -n ai-workloads --sort-by=.metadata.creationTimestamp
kubectl exec -it <pod-name> -n ai-workloads -- /bin/sh

Comprueba rutas y puertos de readiness y liveness, variables, ConfigMaps, Secrets, recursos, volúmenes del modelo, service account, imagen y eventos recientes. Los eventos caducan, por lo que conviene capturarlos durante el incidente. Diagnosticar y resolver problemas añade detectores de y acciones recomendadas.

Resumen del tema

Usa describe y eventos para vincular estado con sondeos, configuración, volúmenes, programación, imagen, identidad y controladores.

9. Diagnosticar dentro del contenedor sin crear divergencia

Consola o kubectl exec muestra archivos, configuración montada, variables, y locales. El shell existe solo si la imagen lo incluye; de lo contrario usa un flujo aprobado con contenedor efímero o imagen de diagnóstico.

  • Confirma archivos de modelo y configuración.
  • Comprueba valores no sensibles y solo la presencia de credenciales.
  • Llama a localhost de salud e inferencia.
  • Resuelve y prueba dependencias permitidas.
  • Sal sin instalar herramientas ni modificar archivos.

Los cambios interactivos desaparecen y crean drift. Corrige fuente, imagen, ConfigMap, asignación de Secret, sondeo, recursos o manifiesto; implementa normalmente y vuelve a probar.

Resumen del tema

Inspecciona el runtime con Consola o exec, pero aplica la corrección permanente en código, configuración, imagen o manifiesto versionado.

10. Validar selectores, puertos y EndpointSlices del Service

Un Pod sano no hace accesible la . El Service selecciona Pods por etiqueta y el plano de control registra listos en EndpointSlices. Una lista vacía suele indicar incompatibilidad selector-etiqueta, Pods no listos o espacio incorrecto. Una slice poblada muestra , puertos y condiciones utilizadas para enrutar.

kubectl get service -n ai-workloads
kubectl describe service inference-api -n ai-workloads
kubectl get pods --show-labels -n ai-workloads
kubectl get endpointslices   -l kubernetes.io/service-name=inference-api   -n ai-workloads

Compara selector del Service con etiquetas del Pod, port con targetPort, targetPort con el listener, protocolo, espacio y direcciones. El objeto heredado está en desuso en Kubernetes actual; prefiere EndpointSlices.

Resumen del tema

Demuestra la cadena selector-etiqueta-puerto y confirma direcciones listas en EndpointSlices antes de investigar la exposición.

11. Rastrear , , e ingreso

sirve solo dentro del clúster. asigna un puerto en cada nodo y suele ser una pieza intermedia. LoadBalancer crea una ruta mediante el y una dirección externa. Ingreso añade reglas de host y ruta mediante un controlador y Services de .

En Microsoft Azure Portal, Servicios e ingresos muestra tipo, , external , puertos, selectores, , hosts, rutas y direcciones. Valida cada salto: listener, Pod, EndpointSlice, Service, ingreso o , / cuando corresponda y cliente.

El cliente llega al Balanceador de Carga o ingreso, que dirige al Service, EndpointSlices y Pods listos; cada salto tiene una comprobación.
El éxito integral depende de todos los contratos de enrutamiento.

Resumen del tema

Elige la exposición deliberadamente y prueba puerto del contenedor, Service, EndpointSlice e ingreso o .

12. Probar conectividad interna y externa con seguridad

kubectl port-forward crea un túnel local temporal hacia un Pod seleccionado mediante un Service. Aísla la aplicación y el Service antes del ingreso o la publicación. La sesión termina cuando el Pod elegido finaliza y debe reiniciarse; es diagnóstico, no exposición de producción.

kubectl port-forward service/inference-api 8080:80 -n ai-workloads
curl -i http://localhost:8080/api/inference

kubectl get service inference-api -n ai-workloads
kubectl get ingress -n ai-workloads
  1. Reenvía el puerto y llama a salud o inferencia localmente.
  2. Correlaciona registros, métricas y eventos.
  3. Confirma external del Service o dirección de ingreso.
  4. Prueba desde un cliente representativo con hostname, ruta, y autenticación.
  5. Repite tras corregir y observa error y latencia.

Resumen del tema

Usa port-forward para aislar la ruta interna y después valida externamente el o ingreso real.

13. Laboratorio guiado: diagnosticar una aplicación en

El ejercicio de unos 30 minutos implementa una en contenedor con y y usa kubectl para examinar estado, registros y eventos. El alumno corrige un selector incompatible, una variable de entorno ausente y una ruta de readiness inválida, valida conectividad y elimina recursos.

  1. Descarga el proyecto e identifica recursos intencionadamente defectuosos.
  2. Implementa registro, clúster, imagen y manifiestos.
  3. Reproduce cada síntoma y recopila evidencia antes de editar.
  4. Usa kubectl edit o el manifiesto fuente para corregir selector, configuración y sondeo.
  5. Prueba la , confirma Pods y sanos y limpia recursos facturables.

Requisitos: suscripción de con permisos, , Python 3.12 o posterior, la CLI de actual y kubectl. ACR Tasks puede requerir pago por uso porque los créditos gratuitos quizá no cubran las ejecuciones.

Resumen del tema

El laboratorio practica reparación basada en evidencia de selectores, entorno y readiness manteniendo una implementación reproducible.

14. Evaluación, runbook de producción y referencias

Decisiones de la evaluación.
EscenarioAcción correctaMotivo
500 y latencia al reproducirkubectl -f en el Pod concretoTransmite el fallo actual.
Describir el Pod y ver estado y eventosMuestra terminación y orquestación.
Pods sanos sin Describir el ServiceExpone selector y .
Prueba antes de publicarkubectl port-forward service/...Crea una ruta local al Service.
CPU sostenida en el límiteAjustar recursos o escalar réplicasRestaura capacidad medida.
  • Registra síntoma, alcance, inicio y objetivo.
  • Captura versión, registros, métricas, estado, eventos, Services y EndpointSlices.
  • Prueba la hipótesis mínima y registra el resultado.
  • Aplica cambio versionado con .
  • Verifica tráfico y señales originales después de recuperar.
  1. Monitor Kubernetes Service with
  2. View Kubernetes events and metrics in real time
  3. Diagnose and Solve Problems
  4. Troubleshoot applications on Kubernetes
  5. Debug Kubernetes Services
  6. Kubernetes Services and EndpointSlices
  7. kubectl reference
  8. kubectl port-forward reference

Resumen del tema

El examen favorece el comando que observa directamente la capa que falla; producción añade alcance, historia, control, y verificación.