Files
kubernetes/multusk3s.md
2025-08-08 16:37:30 +02:00

47 lines
1.8 KiB
Markdown

## Multus en K3s: "El truco de los binarios y la configuración"
**Problema clásico:**
Multus funciona en K8s pero no en K3s; los pods solo tienen eth0 aunque los NAD estén bien.
**Motivo:**
K3s busca los binarios CNI en `/var/lib/rancher/k3s/data/cni/` (¡NO en `/opt/cni/bin/` ni `/usr/lib/cni/`!), y la configuración CNI la busca en `/var/lib/rancher/k3s/agent/etc/cni/net.d/`.
---
### 🛠️ **Pasos completos para Multus en K3s**
```bash
# 1. Instala Multus normalmente (DaemonSet, NAD, etc.)
# 2. Copia el binario multus al path real de K3s:
sudo cp /opt/cni/bin/multus /var/lib/rancher/k3s/data/cni/
sudo chmod +x /var/lib/rancher/k3s/data/cni/multus
# 3. Copia el archivo de configuración 00-multus.conflist a la ruta de K3s:
sudo cp /etc/cni/net.d/00-multus.conflist /var/lib/rancher/k3s/agent/etc/cni/net.d/00-multus.conflist
# 4. (Opcional pero recomendable) Mueve/renombra el 10-flannel.conflist:
sudo mv /var/lib/rancher/k3s/agent/etc/cni/net.d/10-flannel.conflist /var/lib/rancher/k3s/agent/etc/cni/net.d/10-flannel.conflist.bak
# 5. Reinicia K3s en cada nodo:
sudo systemctl restart k3s
# 6. Lanza tus pods de prueba y revisa:
kubectl exec -it <pod> -- ip a
# Debes ver dos interfaces (eth0 y net1)
```
> **TIP:** Si actualizas Multus, repite el paso de copiar el binario.
---
### Notas sobre rutas y diferencias con K8s clásico
* **K3s** usa rutas propias para binarios (`/var/lib/rancher/k3s/data/cni/`) y configuración (`/var/lib/rancher/k3s/agent/etc/cni/net.d/`).
* **K8s clásico** suele usar `/opt/cni/bin/` para binarios y `/etc/cni/net.d/` para configuración.
* Si ves errores tipo `failed to find plugin "multus" in path [/var/lib/rancher/k3s/data/cni]` o el pod sólo tiene `eth0` → revisa esto.
---
¡Listo! Ahora puedes usar Multus y NADs en K3s igual que en cualquier Kubernetes enterprise.