Subir archivos a "/"
This commit is contained in:
109
manual_k8s_node_cleanup.md
Normal file
109
manual_k8s_node_cleanup.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# Manual: Limpieza y re‑adhesión de nodos Kubernetes
|
||||
|
||||
Este documento describe el ciclo completo para **visualizar**, **drenar/eliminar**, **limpiar** y **volver a unir** un nodo _control‑plane_ 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 re‑join 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
|
||||
```
|
||||
Reference in New Issue
Block a user