From db733e78128957d9a3039eb5b6173def78806aa9 Mon Sep 17 00:00:00 2001 From: xguefer Date: Thu, 31 Jul 2025 02:20:19 +0200 Subject: [PATCH] =?UTF-8?q?a=C3=B1adido=20doc=20script=20limpieza?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 1 + script_limpieza.md | 123 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 script_limpieza.md diff --git a/readme.md b/readme.md index 12259c2..f6a57e7 100644 --- a/readme.md +++ b/readme.md @@ -15,6 +15,7 @@ Este repositorio contiene los **manifiestos, scripts y documentación** para des | `cephrook.md` | Instalación e integración de Ceph/Rook | [Ver](./cephrook.md) | | `kubevirt.md` | Despliegue de KubeVirt y gestión de VMs | [Ver](./kubevirt.md) | | `comprobaciones.md` | Checklist y pruebas tras cada paso crítico | [Ver](./comprobaciones.md) | +| `script_limpieza.md` | Como hacer un script para eliminar la configuracion de un nodo | [Ver](scrip_limpieza.md) | | `coredns\readme.md` | Ejemplo de Multus: CoreDNS | [Ver](./coredns/readme.md) | | `storage\readme.md` | Ejemplo de recurso “class”: storage | [Ver](./storage/readme.md) | diff --git a/script_limpieza.md b/script_limpieza.md new file mode 100644 index 0000000..733a4b9 --- /dev/null +++ b/script_limpieza.md @@ -0,0 +1,123 @@ +Manual: Reinicio completo (modo nuclear) de un nodo Kubernetes + +Este script permite realizar un reseteo completo de un nodo Kubernetes, eliminando su configuración, interfaces de red sobrantes, y preparándolo para un kubeadm join limpio. Es útil cuando el nodo ha quedado en estado inconsistente o se desea reutilizar desde cero. + + +--- + +Contenido del script reset_nodo.sh + +#!/bin/bash + +echo "==============================" +echo " K8s HARD RESET (modo nuclear)" +echo "==============================" + +# Obtener nombre del nodo +NODENAME=$(hostname) +echo "Nodo detectado: $NODENAME" + +# Eliminar nodo del clúster +echo "1. Eliminando el nodo del clúster..." +kubectl delete node "$NODENAME" || echo "⚠️ No se pudo eliminar el nodo. ¿Está desconectado del clúster?" + +# Guardar kubeconfig local si no existe +if [ ! -f "$HOME/.kube/config" ]; then + echo "2. Guardando credenciales kubeconfig en ~/.kube/config..." + mkdir -p "$HOME/.kube" + sudo cp /etc/kubernetes/admin.conf "$HOME/.kube/config" 2>/dev/null || echo "⚠️ No se pudo copiar kubeconfig (¿es un nodo worker?)" + sudo chown "$(id -u):$(id -g)" "$HOME/.kube/config" +fi + +# Reset kubeadm +echo "3. Ejecutando kubeadm reset..." +sudo kubeadm reset -f + +# Parar servicios +echo "4. Parando servicios kubelet y containerd..." +sudo systemctl stop kubelet +sudo systemctl stop containerd + +# Limpiar configuraciones +echo "5. Borrando configuraciones CNI, kubelet, pods y logs..." +sudo rm -rf /etc/cni/net.d/* +sudo rm -rf /var/lib/cni/ +sudo rm -rf /run/flannel/* +sudo rm -rf /run/docker/netns/* +sudo rm -rf /var/lib/kubelet/* +sudo rm -rf /etc/kubernetes/* +sudo rm -rf /var/log/pods/* +sudo rm -rf /var/log/containers/* + +# Borrar interfaces sobrantes +echo "6. Eliminando interfaces virtuales (ignora errores si no existen)..." +sudo ip link delete flannel.1 2>/dev/null +sudo ip link delete cni0 2>/dev/null +sudo ip link delete docker0 2>/dev/null + +# Reiniciar servicios +echo "7. Reiniciando containerd y kubelet..." +sudo systemctl restart containerd +sudo systemctl restart kubelet + +# Preguntar si desea reiniciar +echo "======================================" +read -p "¿Deseas reiniciar el nodo ahora? [s/N]: " confirm +if [[ "$confirm" =~ ^[Ss]$ ]]; then + echo "Reiniciando..." + sudo reboot +else + echo "No se reiniciará. Ejecútalo manualmente cuando estés listo." + echo " sudo reboot" +fi +echo "======================================" +echo " RESET COMPLETADO " +echo "======================================" + + +--- + +Cómo usar el script + +1. Guardar el archivo: + +Guarda el contenido anterior en un archivo llamado reset_nodo.sh + +nano reset_nodo.sh + + +2. Dar permisos de ejecución: + +chmod +x reset_nodo.sh + + +3. Ejecutar el script: + +./reset_nodo.sh + +> Asegúrate de tener permisos sudo, ya que muchos comandos requieren privilegios de root. + + + + +4. Reinicio (opcional): + +El script preguntará al final si deseas reiniciar el nodo. Se recomienda decir que sí (s) para garantizar una limpieza total. + + + + +--- + +Advertencia + +Este script elimina todos los datos y configuraciones de Kubernetes y CNI del nodo. Asegúrate de: + +Eliminar el nodo primero del clúster (kubectl delete node) o dejar que el script lo haga. + +Tener backup de cualquier dato o log importante. + + +Ideal para casos de limpieza completa o reinstalación. No recomendado si solo necesitas reintegrar un nodo sano. En ese caso, usa kubeadm reset y kubeadm join directamente. + +