Freigeben über


Übersicht über MetalLB für Kubernetes-Cluster

Gilt für: Azure Stack HCI, Version 23H2

Wenn Sie Ihren AKS Arc-Cluster einrichten, benötigen Sie eine Möglichkeit, ihre Dienste außerhalb des Clusters zugänglich zu machen. Der LoadBalancer Typ ist ideal für diese Barrierefreiheit, aber die externe IP-Adresse bleibt ausstehend. Die MetalLB Arc-Erweiterung ist ein Tool, mit dem Sie externe IP-Adressen für Ihre Anwendungen und Dienste generieren können. Arc-fähige Kubernetes-Cluster können mithilfe der Arc Networking k8s-Erweiterung in MetalLB integriert werden.

Um Ihre Dienste außerhalb des Clusters zugänglich zu machen, benötigt MetalLB IP-Adressen. MetalLB übernimmt das Zuweisen und Freigeben dieser Adressen nach Bedarf, wenn Sie Dienste erstellen, verteilt jedoch nur IP-Adressen, die sich in den konfigurierten Pools befinden. Wenn MetalLB einem Dienst eine externe IP-Adresse zuweist, wird das Netzwerk außerhalb des Clusters darüber informiert, dass diese IP-Adresse zum Cluster gehört. Diese Kommunikation erfolgt mithilfe von Standardnetzwerkprotokollen wie ARP oder BGP.

  • Layer-2-Modus (ARP): Im Layer-2-Modus übernimmt ein K8s-Knoten im Cluster den Besitz des Diensts und verwendet Standardadressermittlungsprotokolle (ARP für IPv4), um diese IP-Adressen im lokalen Netzwerk erreichbar zu machen. Aus Sicht des LAN verfügt der Ankündigungscomputer einfach über mehrere IP-Adressen.
  • BGP: Im BGP-Modus richten alle Computer im Cluster BGP-Peeringsitzungen mit Routern in der Nähe ein, die Sie steuern, und teilen diesen Routern mit, wie Datenverkehr an die Dienst-IP-Adressen weitergeleitet werden soll. Die Verwendung von BGP ermöglicht einen echten Lastenausgleich über mehrere Knoten und eine differenzierte Datenverkehrssteuerung aufgrund der Richtlinienmechanismen von BGP.

MetalLB hat zwei Komponenten:

  • Controller: Verantwortlich für die Zuweisung der IP-Adresse für jeden Dienst von type=loadbalancer.
  • Sprecher: verantwortlich für die Werbung der IP-Adresse mit ARP dem Protokoll oder BGP . Um die Hochverfügbarkeitsanforderung zu erfüllen, ist die Lautsprecherbereitstellung ein Daemonset.

Hinweis

  • Sprecherpods verwenden das Hostnetzwerk. Das heißt, ihre IP-Adresse ist die Knoten-IP, sodass sie broadcast-Nachrichten direkt über die Hostnetzwerkschnittstelle senden können.
  • Der Controllerpod ist ein normaler Pod, der sich in einem beliebigen Knoten im Cluster befindet.

MetalLB-Architektur

  • Im ARP-Modus wird einer der Sprecherpods als Leader ausgewählt. Anschließend wird die IP-Adresse mithilfe einer ARP-Broadcastnachricht angekündigt und die IP mit der MAC-Adresse des Knotens gebunden, in dem sie sich befindet. Daher trifft der gesamte Datenverkehr zuerst auf einen Knoten, und kube-proxy verteilt ihn gleichmäßig auf alle Back-End-Pods des Diensts.
  • Im BGP-Modus stellen alle Clusterknoten Verbindungen mit allen auf der Registerkarte erstellten BGP-Peers her. In der BGP Peers Regel ist ein BGP-Peer ein TOR-Switch. Um die BGP-Routinginformationen zu übertragen, müssen die BGP-Peers so konfiguriert werden, dass sie die IP- und ASN-Adresse von Clusterknoten erkennen. Wenn Sie BGP mit ECMP (Equal-Cost MultiPath) verwenden, trifft der Datenverkehr gleichmäßig auf alle Knoten und erreicht daher einen echten Lastenausgleich.

Vergleichen von MetalLB L2 (ARP) und BGP-Modi

Die Wahl zwischen L2- und BGP-Modus mit MetalLB hängt von Ihren spezifischen Anforderungen, Netzwerkinfrastruktur und Bereitstellungsszenarien ab:

Aspekt MetalLB im L2-Modus (ARP) MetalLB im BGP-Modus
Überblick Im Layer-2-Modus übernimmt ein K8s-Knoten die Verantwortung für die Ankündigung eines Diensts im lokalen Netzwerk. Aus Netzwerksicht sieht es so aus, als ob dem K8s-Knoten seiner Netzwerkschnittstelle mehrere IP-Adressen zugewiesen sind. Im BGP-Modus richtet jeder K8s-Knoten in Ihrem Cluster eine BGP-Peeringsitzung mit Ihren Netzwerkroutern ein und verwendet diese Peeringsitzung, um die IP-Adressen externer Clusterdienste anzukündigen.
IP-Adresszuweisung MetallLB-IP-Adresspools müssen sich im selben Subnetz wie die K8s-Knoten befinden. MetallLB-IP-Adresspools können sich in einem anderen Netzwerk als die K8s-Knoten befinden.
Konfigurationskomplexität Niedrig. Da Sie IP-Adressen im selben Netzwerk wie Ihre Kubernetes-Knoten bereitstellen, müssen Sie beim Einrichten von MetalLB nur einen IP-CIDR- oder IP-Pool angeben. Hoch. Das Konfigurieren von BGP erfordert Kenntnisse des BGP-Protokolls und ein Verständnis Ihrer Netzwerkinfrastruktur.
Skalierbarkeit Beschränkt auf Layer-2-Netzwerke, geeignet für kleine bis mittelgroße K8s-Bereitstellungen. Geeignet für komplexe Netzwerktopologien und umfangreiche K8s-Bereitstellungen.
Kompatibilität mit dem Infrastrukturnetzwerk Funktioniert mit jedem Netzwerk, kann jedoch zu ARP-Überflutungen in großen K8s-Clustern führen, da eine einzelne IP-Adresse für alle Dienste verwendet wird und die Eingangsbandbreite des Diensts auf die Bandbreite eines einzelnen Knotens beschränkt ist. Erfordert BGP-Unterstützung in der Netzwerkinfrastruktur.
Verkehrstechnik Eingeschränkte Kontrolle über das Datenverkehrsrouting. Differenzierte Steuerung des Datenverkehrsroutings mithilfe von BGP-Attributen.
Externe Konnektivität Erfordert mehr Konfiguration für externe Konnektivität. Bietet nahtlose Konnektivität mit externen Netzwerken mithilfe von BGP-Routing.

Nächste Schritte