1.8 KiB
1.8 KiB
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
# 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 tieneeth0→ revisa esto.
¡Listo! Ahora puedes usar Multus y NADs en K3s igual que en cualquier Kubernetes enterprise.