Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

Multus CNI

Inhaltsverzeichnis

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
#

Argo 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.
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin