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

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 tiene eth0 → revisa esto.

¡Listo! Ahora puedes usar Multus y NADs en K3s igual que en cualquier Kubernetes enterprise.