Lab 2.2 - Análisis de los Worker Nodes
Objetivos
Al final de este laboratorio, usted será capaz de:
- Inspeccionar los Worker Nodes
- Comprender el rol de kubelet
- Analizar kube-proxy
- Examinar el Container Runtime
Requisitos previos
- Cluster de Kubernetes funcional
- kubectl instalado y configurado
- Acceso al cluster
Ejercicio 1: Inspeccionar los Nodes
Paso 1: Listar los Nodes
# Ver todos los nodes
kubectl get nodes
# Ver los detalles de un node
kubectl describe node <node-name>
# Ver los nodes con más información
kubectl get nodes -o wide
Pregunta: ¿Cuántos Worker Nodes tiene usted? ¿Cuáles son sus roles?
Paso 2: Información de un Node
# Ver los labels de un node
kubectl get node <node-name> --show-labels
# Ver las anotaciones
kubectl get node <node-name> -o jsonpath='{.metadata.annotations}'
Ejercicio 2: Analizar kubelet
Paso 1: Verificar kubelet
# Ver los Pods del sistema relacionados con kubelet
kubectl get pods -n kube-system | grep kubelet
# Ver los eventos de un node
kubectl get events --field-selector involvedObject.name=<node-name>
Paso 2: Métricas del Node
# Ver el uso de recursos de un node
kubectl top node <node-name>
# Ver los detalles de los recursos
kubectl describe node <node-name> | grep -A 10 "Allocated resources"
Ejercicio 3: Analizar kube-proxy
Paso 1: Verificar kube-proxy
# Ver el Pod kube-proxy
kubectl get pods -n kube-system -l k8s-app=kube-proxy
# Ver los logs de kube-proxy
kubectl logs -n kube-system -l k8s-app=kube-proxy --tail=50
Paso 2: Verificar los Services
# Listar todos los Services
kubectl get services --all-namespaces
# Ver los Endpoints de un Service
kubectl get endpoints <service-name>
Ejercicio 4: Container Runtime
Paso 1: Identificar el Runtime
# Ver la información del node (contiene el runtime)
kubectl describe node <node-name> | grep "Container Runtime"
# Ver las imágenes utilizadas
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.spec.containers[*].image}{"\n"}{end}' | sort -u
Ejercicio 5: Pods en un Node
Paso 1: Pods Asignados
# Ver todos los Pods en un node específico
kubectl get pods --all-namespaces --field-selector spec.nodeName=<node-name>
# Contar los Pods por node
kubectl get pods --all-namespaces -o wide | awk '{print $7}' | sort | uniq -c
Paso 2: Recursos Utilizados
# Ver el uso de recursos por Pod
kubectl top pods --all-namespaces
# Filtrar por node
kubectl top pods --all-namespaces | grep <node-name>
Preguntas de Reflexión
- ¿Cuántos Pods pueden ejecutarse en cada node?
- ¿Cómo gestiona kubelet los recursos?
- ¿Cuál es el rol de kube-proxy en cada node?
- ¿Cómo se utiliza el Container Runtime?
Limpieza
No es necesario realizar limpieza.
Próximos Pasos
Lab 2.3: Monitoreo de los Componentes del Sistema
Módulo 3: Pods y Despliegues
Lab creado el: diciembre 2024