Dela via


Översikt över MetalLB för Kubernetes-kluster

Gäller för: Azure Stack HCI, version 23H2

När du konfigurerar AKS Arc-klustret behöver du ett sätt att göra dina tjänster tillgängliga utanför klustret. Typen LoadBalancer är perfekt för den här tillgängligheten, men den externa IP-adressen är fortfarande väntande. MetalLB Arc-tillägget är ett verktyg som gör att du kan generera externa IP-adresser för dina program och tjänster. Arc-aktiverade Kubernetes-kluster kan integreras med MetalLB med hjälp av Arc Networking k8s-tillägget.

För att göra dina tjänster tillgängliga utanför klustret behöver MetalLB IP-adresser. MetalLB tar hand om att tilldela och frigöra dessa adresser efter behov när du skapar tjänster, men distribuerar bara IP-adresser som finns i dess konfigurerade pooler. När MetalLB tilldelar en extern IP-adress till en tjänst informerar den nätverket utanför klustret om att den här IP-adressen tillhör klustret. Den här kommunikationen sker med hjälp av standardnätverksprotokoll som ARP eller BGP.

  • Layer 2-läge (ARP): I layer 2-läge tar en K8-nod i klustret ägarskapet för tjänsten och använder standardprotokoll för adressidentifiering (ARP för IPv4) för att göra dessa IP-adresser nåbara i det lokala nätverket. Ur LAN:s synvinkel har den tillkännagivande datorn helt enkelt flera IP-adresser.
  • BGP: I BGP-läge upprättar alla datorer i klustret BGP-peeringsessioner med närliggande routrar som du styr och talar om för dessa routrar hur trafik ska vidarebefordras till tjänst-IP-adresserna. Med BGP kan du använda verklig belastningsutjämning över flera noder och detaljerad trafikkontroll på grund av BGP:s principmekanismer.

MetalLB har två komponenter:

  • Kontrollant: ansvarig för allokering av IP-adresser för varje tjänst i type=loadbalancer.
  • Talare: ansvarig för att annonsera IP-användning ARP eller BGP protokoll. För att uppfylla kravet på hög tillgänglighet (HA) är talardistributionen en daemonset.

Anteckning

  • Talarpoddar använder värdnätverket. Dvs. deras IP-adress är nod-IP,så att de kan skicka sändningsmeddelanden direkt via värdnätverksgränssnittet.
  • Kontrollantpodden är en normal podd som finns i alla noder i klustret.

MetalLB-arkitektur

  • I ARP-läge väljs en av talarpoddarna som ledare. Den annonserar sedan IP-adressen med ett ARP-sändningsmeddelande som binder IP-adressen till MAC-adressen för den nod som den bor i. Därför når all trafik först en nod och sedan sprider kube-proxy den jämnt till alla serverdelspoddar i tjänsten.
  • I BGP-läge upprättar alla klusternoder anslutningar med alla BGP-peer-datorer som skapats på BGP Peers fliken. Vanligtvis är en BGP-peer en TOR-växel. För att kunna sända BGP-routningsinformationen måste BGP-peer-datorerna konfigureras så att de känner igen IP-adressen och ASN för klusternoder. När du använder BGP med ECMP (Equal-Cost MultiPath) når trafiken jämnt över alla noder och uppnår därför verklig belastningsutjämning.

Jämför MetalLB L2 -lägen (ARP) och BGP-lägen

Valet mellan L2- och BGP-läge med MetalLB beror på dina specifika krav, nätverksinfrastruktur och distributionsscenarier:

Aspekt MetalLB i L2-läge (ARP) MetalLB i BGP-läge
Översikt I layer 2-läge ansvarar en K8-nod för att annonsera en tjänst till det lokala nätverket. Ur nätverksperspektivet ser det ut som om K8s-noden har flera IP-adresser tilldelade till nätverksgränssnittet. I BGP-läge upprättar varje K8-nod i klustret en BGP-peeringsession med dina nätverksroutrar och använder den peeringsessionen för att annonsera IP-adresser för externa klustertjänster.
TILLDELNING av IP-adress MetallLB IP-adresspooler måste finnas i samma undernät som K8-noderna. MetallLB IP-adresspooler kan finnas i ett annat nätverk än K8-noderna.
Konfigurationskomplexitet Låg. Eftersom du tillhandahåller IP-adresser i samma nätverk som dina Kubernetes-noder behöver du bara ange en IP CIDR eller IP-pool när du konfigurerar MetalLB. Hög. För att konfigurera BGP krävs kunskap om BGP-protokollet och en förståelse för din nätverksinfrastruktur.
Skalbarhet Begränsad till Layer 2-nätverk, lämplig för små till medelstora K8-distributioner. Passar för komplexa nätverkstopologier och storskaliga K8-distributioner.
Kompatibilitet med infrastrukturnätverk Fungerar med alla nätverk, men kan orsaka ARP-översvämningar i stora K8-kluster, eftersom en enda IP-adress används för alla tjänster, och tjänstens inkommande bandbredd är begränsad till bandbredden för en enskild nod. Kräver BGP-stöd i nätverksinfrastrukturen.
Trafikteknik Begränsad kontroll över trafikroutning. Detaljerad kontroll över trafikroutning med hjälp av BGP-attribut.
Extern anslutning Kräver mer konfiguration för extern anslutning. Ger sömlös anslutning till externa nätverk med BGP-routning.

Nästa steg