Multus CNI #
Multus ist ein Meta-CNI-Plugin (Container Network Interface), das es Kubernetes-Pods ermöglicht, mehrere Netzwerkschnittstellen gleichzeitig zu verwenden. Es fungiert als Multiplexer zwischen dem primären CNI-Plugin des Clusters und weiteren konfigurierten Netzwerken.
Deployment #
Quelle #
Das Helm-Chart rke2-multus stammt aus dem Rancher RKE2 Charts Repository. Es beinhaltet auch das IPAM-Plugin Whereabouts, das für die Verwaltung statischer IP-Adressen in Multus-Netzwerken verantwortlich ist.
Dokumentation #
Funktion #
Multus ermöglicht die Konfiguration zusätzlicher Netzwerkschnittstellen für Pods über NetworkAttachmentDefinition-Ressourcen. Im Cluster wird dies genutzt, um bestimmten Anwendungen (z.B. Music Assistant, Home Assistant) eine direkte Verbindung ins Heimnetzwerk via MacVLAN zu ermöglichen, sodass sie als eigenständige Geräte mit fester IP-Adresse erscheinen.
Lokale Anpassungen #
Die values.yaml konfiguriert Multus für k3s-spezifische Pfade:
- CNI-Konfigurationsverzeichnis:
/var/lib/rancher/k3s/agent/etc/cni/net.d - CNI-Binary-Verzeichnis:
/var/lib/rancher/k3s/data/cni - Kubeconfig:
/var/lib/rancher/k3s/agent/etc/cni/net.d/multus.d/multus.kubeconfig - Whereabouts: Aktiviert und mit denselben k3s-Pfaden konfiguriert.
Installation #
Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im kube-system-Namespace bereitgestellt:
1kubectl kustomize --enable-helm apps/multus | kubectl apply -f -Abhängigkeiten #
- k3s mit aktiviertem CNI-Support.
- Anwendungen, die Multus nutzen, müssen
NetworkAttachmentDefinition-Ressourcen in ihrem jeweiligen Namespace definieren.