47 lines
1.8 KiB
Markdown
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.
|