Files
kubernetes/comprobaciones.md

3.1 KiB

Comprobaciones y diagnóstico habitual

Estado de nodos, pods y despliegues

kubectl get nodes -o wide                    # Estado y detalles de los nodos
kubectl describe node <nombre-nodo>          # Info detallada, condiciones, taints, eventos

kubectl get pods -A                          # Todos los pods de todos los namespaces
kubectl get pods -n traefik                  # Sólo los pods de Traefik
kubectl get pods -n cert-manager             # Sólo cert-manager
kubectl get deployments -A                   # Todos los deployments

kubectl get events -A | tail -20             # Últimos eventos del clúster (errores recientes)

Todos los pods deben estar en estado Running o Completed. Si alguno está en CrashLoopBackOff o Error, inspecciona con:

kubectl describe pod <nombre-pod> -n <namespace>
kubectl logs <nombre-pod> -n <namespace>
kubectl logs -f <nombre-pod> -n <namespace>  # Logs en streaming (útil en troubleshooting)

Estado de los control-plane y componentes críticos

kubectl get pods -n kube-system -o wide      # Componentes internos: etcd, coredns, apiserver, controller, etc.
kubectl logs -n kube-system <nombre-pod>     # Logs de cualquier pod de kube-system

Servicios, IPs y estado MetalLB

kubectl get svc -A                           # Todos los servicios, revisa columna EXTERNAL-IP
kubectl get svc -n traefik                   # Servicio LoadBalancer de Traefik debe tener IP de MetalLB
kubectl describe svc <nombre-svc> -n <ns>    # Ver detalles de servicio, endpoints, ports, etc.

Certificados, secrets y recursos cert-manager

kubectl get secrets -n traefik               # Verifica el Secret TLS (ej: wildcard-cert)
kubectl describe secret wildcard-cert -n traefik

kubectl get certificate -A                   # (cert-manager) lista los recursos Certificate gestionados
kubectl describe certificate <name> -n <ns>  # Ver detalle y posibles errores

kubectl get clusterissuer,issuer -A          # Ver emisores de cert-manager (staging, prod, etc.)
kubectl describe clusterissuer <name>        # Detalles y eventos del issuer global

Ingress, dominios y rutas

kubectl get ingress -A
kubectl describe ingress <name> -n <ns>

Revisa que los hosts, paths y el campo secretName están correctos.

Comprobar acceso SSL/TLS desde fuera

openssl s_client -connect <IP_MetalLB>:443 -servername app1.miempresa.com

Verifica el certificado servido y el SNI.


g) Comprobaciones útiles entre pasos

  • Tras instalar Traefik y MetalLB: Comprueba que el servicio Traefik tiene una IP del pool y responde en el puerto 80/443.

  • Tras instalar cert-manager y crear issuers: Haz kubectl get pods -n cert-manager y revisa los logs si algún pod falla.

  • Tras crear un Secret TLS: Haz kubectl describe secret <nombre> -n <namespace> y asegúrate de que el tipo es kubernetes.io/tls.

  • Tras crear Ingress: Comprueba con kubectl get ingress -A y revisa que los hosts y secrets estén bien referenciados.

  • Si accedes por navegador y hay error SSL: Usa openssl s_client para ver qué certificado se está presentando realmente.