Lab 2.3 - Monitoreo de los Componentes del Sistema
Objetivos
Al final de este laboratorio, usted será capaz de:
- Monitorear los componentes del Control Plane
- Supervisar los Worker Nodes
- Analizar las métricas del sistema
- Identificar posibles problemas
Prerrequisitos
- Cluster Kubernetes funcional
- kubectl instalado
- Metrics Server instalado (para kubectl top)
Ejercicio 1: Monitoreo del Control Plane
Paso 1: Estado de los Componentes
# Ver el estado de los componentes (obsoleto pero útil)
kubectl get componentstatuses
# Ver los Pods del Control Plane
kubectl get pods -n kube-system
Paso 2: Logs de los Componentes
# Logs del API Server
kubectl logs -n kube-system -l component=kube-apiserver --tail=100
# Logs del Controller Manager
kubectl logs -n kube-system -l component=kube-controller-manager --tail=100
# Logs del Scheduler
kubectl logs -n kube-system -l component=kube-scheduler --tail=100
Ejercicio 2: Monitoreo de los Nodes
Paso 1: Salud de los Nodes
# Ver el estado de todos los nodes
kubectl get nodes
# Detalles de un node
kubectl describe node <node-name>
# Ver las condiciones de un node
kubectl get node <node-name> -o jsonpath='{.status.conditions}'
Paso 2: Métricas de los Nodes
# Uso de recursos
kubectl top nodes
# Detalles de los recursos
kubectl describe node <node-name> | grep -A 20 "Allocated resources"
Ejercicio 3: Eventos y Alertas
Paso 1: Eventos Recientes
# Todos los eventos
kubectl get events --all-namespaces --sort-by='.lastTimestamp'
# Eventos de error
kubectl get events --all-namespaces --field-selector type=Warning
# Eventos de un namespace
kubectl get events -n kube-system
Paso 2: Eventos de un Componente
# Eventos relacionados con un Pod del sistema
kubectl describe pod <pod-name> -n kube-system | grep Events -A 10
Ejercicio 4: Salud del Cluster
Paso 1: Verificación General
# Información del cluster
kubectl cluster-info
# Versión
kubectl version
# Recursos disponibles
kubectl api-resources
Paso 2: Espacio de Nombres del Sistema
# Todos los recursos en kube-system
kubectl get all -n kube-system
# Secrets del sistema
kubectl get secrets -n kube-system
# ConfigMaps del sistema
kubectl get configmaps -n kube-system
Ejercicio 5: Diagnóstico
Paso 1: Problemas Comunes
# Pods en error
kubectl get pods --all-namespaces --field-selector status.phase!=Running
# Pods que se reinician
kubectl get pods --all-namespaces | grep -E "Error|CrashLoopBackOff"
# Nodes NotReady
kubectl get nodes | grep NotReady
Paso 2: Análisis de Logs
# Logs de un Pod que falla
kubectl logs <pod-name> -n <namespace> --previous
# Logs de todos los contenedores
kubectl logs <pod-name> -n <namespace> --all-containers=true
Preguntas de Reflexión
- ¿Qué componentes son críticos para el funcionamiento del cluster?
- ¿Cómo detecta usted un problema con un componente?
- ¿Qué métricas son las más importantes para monitorear?
- ¿Cómo reaccionaría si un node se vuelve NotReady?
Limpieza
No es necesario realizar limpieza.
Próximos Pasos
Módulo 3: Pods y Despliegues
Quiz Módulo 2: Valide sus conocimientos
Lab creado el: Diciembre 2024