## 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 -- 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.