Subir archivos a "/"

This commit is contained in:
petroche
2025-07-30 10:12:20 +02:00
parent 7496f19df2
commit bdca4bc794

109
manual_k8s_node_cleanup.md Normal file
View File

@@ -0,0 +1,109 @@
# Manual: Limpieza y readhesión de nodos Kubernetes
Este documento describe el ciclo completo para **visualizar**, **drenar/eliminar**, **limpiar** y **volver a unir** un nodo _controlplane_ gestionado con **kubeadm**.
> Todos los comandos necesitan privilegios `root` (`sudo`) y
> reemplaza **<NODO>** por el nombre real del nodo (p. ej. `srvfkvm4`).
---
## 1 · Comprobar los nodos del clúster
```bash
kubectl get nodes -o wide
```
---
## 2 · Drenar y eliminar el nodo
```bash
kubectl drain <NODO> --ignore-daemonsets --delete-emptydir-data
kubectl delete node <NODO>
```
### 2 bis · (Si el nodo queda en bucle _NotReady_)
Eliminar el miembro antiguo en **etcd**
1. **Obtener el ID del miembro**:
```bash
kubectl -n kube-system exec etcd-srvfkvm01 -- etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key --write-out=table member list
```
Busca la línea con el nodo detenido y copia su **ID**.
2. **Eliminar el miembro**:
```bash
kubectl -n kube-system exec etcd-srvfkvm01 -- etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key member remove <ID>
```
3. **Limpiar el nodo afectado**:
```bash
sudo systemctl stop kubelet containerd
sudo kubeadm reset -f
sudo rm -rf /etc/kubernetes/{manifests,pki} /var/lib/etcd
sudo systemctl start containerd
echo "192.168.4.4 srvfkvm4" | sudo tee -a /etc/hosts
```
---
## 3 · Limpiar completamente la máquina
```bash
sudo systemctl stop kubelet
sudo systemctl stop containerd
sudo rm -rf /var/lib/kubelet/
sudo rm -rf /etc/kubernetes
sudo rm -rf /etc/cni/
sudo rm -rf /var/lib/etcd
sudo reboot
```
---
## 4 · Tras el reinicio  parar kubelet y unir de nuevo
```bash
sudo systemctl stop kubelet
sudo systemctl status kubelet
```
```bash
sudo kubeadm join 192.168.0.20:6443 --token rvz86n.c8rdb9ygtikrwnub --discovery-token-ca-cert-hash sha256:f925653dfb3d2b4697395a272e0b07cf4eb16b7ae5a2cc3b33aeab1f36fe7d13 --control-plane --certificate-key eeab98651b2f07f6ce53649b2cca1bf3c449d4fe6270ec0645219cd8c6795ca7 --apiserver-advertise-address=192.168.4.4
```
---
## 5 · Verificar que el nodo volvió a **Ready**
```bash
kubectl get nodes -o wide
kubectl -n kube-system get pods -o wide | grep etcd
```
---
### Estructura recomendada del repositorio Git
```
k8s-node-cleanup-manual/
├── manual_k8s_node_cleanup.md # ← este archivo
└── .gitignore # opcional para descartar tmp
```
Instrucciones rápidas para publicar:
```bash
git init
git add manual_k8s_node_cleanup.md
git commit -m "Manual de limpieza y rejoin de nodos Kubernetes"
git remote add origin https://github.com/<usuario>/k8s-node-cleanup-manual.git
git branch -M main
git push -u origin main
```