Delen via


Overzicht van MetalLB voor Kubernetes-clusters

Van toepassing op: Azure Local, versie 23H2

Wanneer u uw AKS Arc-cluster instelt, hebt u een manier nodig om uw services toegankelijk te maken buiten het cluster. Het LoadBalancer type is ideaal voor deze toegankelijkheid, maar het externe IP-adres blijft in behandeling. De extensie voor MetalLB voor Kubernetes met Azure Arc is een hulpprogramma waarmee u externe IP-adressen voor uw toepassingen en services kunt genereren. Kubernetes-clusters met Arc kunnen worden geïntegreerd met MetalLB met behulp van de extensie voor MetalLB voor Kubernetes met Azure Arc.

MetalLB heeft IP-adressen nodig om uw services buiten het cluster toegankelijk te maken. MetalLB zorgt ervoor dat deze adressen waar nodig worden toegewezen en vrijgegeven wanneer u services maakt, maar distribueert alleen IP-adressen die zich in de geconfigureerde pools bevinden. Wanneer MetalLB een extern IP-adres aan een service toewijst, wordt het netwerk buiten het cluster geïnformeerd dat dit IP-adres deel uitmaakt van het cluster. Deze communicatie wordt uitgevoerd met behulp van standaardnetwerkprotocollen zoals ARP of BGP.

  • Laag 2-modus (ARP): In de laag 2-modus krijgt één K8s-knooppunt in het cluster de eigenaar van de service en maakt gebruik van standaardadresdetectieprotocollen (ARP voor IPv4) om deze IP-adressen bereikbaar te maken op het lokale netwerk. Vanuit het oogpunt van het LAN heeft de aankondigingsmachine gewoon meerdere IP-adressen.
  • BGP: In de BGP-modus stellen alle machines in het cluster BGP-peeringsessies vast met routers in de buurt die u beheert en laat deze routers weten hoe verkeer naar de service-IP-adressen moet worden doorgestuurd. Het gebruik van BGP maakt echte taakverdeling mogelijk op meerdere knooppunten en fijnmazige verkeersbeheer vanwege de beleidsmechanismen van BGP.

MetalLB heeft twee onderdelen:

  • Controller: verantwoordelijk voor het toewijzen van IP voor elke service van type=loadbalancer.
  • Spreker: verantwoordelijk voor het adverteren van het IP-adres met behulp van ARP of BGP protocol. De sprekerimplementatie is een daemonset om te voldoen aan de hoge beschikbaarheidsvereiste.

Notitie

  • Sprekerpods maken gebruik van het hostnetwerk; Hun IP is bijvoorbeeld het IP-adres van het knooppunt, zodat ze rechtstreeks broadcastberichten kunnen verzenden via de netwerkinterface van de host.
  • De controllerpod is een normale pod die zich in een knooppunt in het cluster bevindt.

MetalLB-architectuur

  • In de ARP-modus wordt een van de luidsprekerpods geselecteerd als de leider. Vervolgens wordt het IP-adres geadverteerd met behulp van een ARP-broadcastbericht, waarbij het IP-adres wordt gekoppeld aan het MAC-adres van het knooppunt waarin het zich bevindt. Daarom raakt al het verkeer eerst één knooppunt en wordt deze gelijkmatig verdeeld over alle back-endpods van de service.
  • In de BGP-modus maken alle clusterknooppunten verbindingen met alle BGP-peers die op het BGP Peers tabblad zijn gemaakt. Meestal is een BGP-peer een TOR-switch. Als u de BGP-routeringsgegevens wilt uitzenden, moeten de BGP-peers zodanig worden geconfigureerd dat ze het IP- en ASN-adres van clusterknooppunten herkennen. Wanneer u BGP met ECMP (Equal-Cost MultiPath) gebruikt, raakt het verkeer gelijkmatig over alle knooppunten en bereikt het dus echte taakverdeling.

MetalLB L2 -modi (ARP) en BGP vergelijken

De keuze tussen L2 en BGP met MetalLB is afhankelijk van uw specifieke vereisten, netwerkinfrastructuur en implementatiescenario's:

Aspect MetalLB in de ARP-modus (L2) MetalLB in BGP-modus
Overzicht In de laag 2-modus neemt één K8s-knooppunt de verantwoordelijkheid voor het adverteren van een service naar het lokale netwerk. Vanuit het oogpunt van het netwerk ziet het ernaar uit dat het K8s-knooppunt meerdere IP-adressen heeft toegewezen aan de netwerkinterface. In de BGP-modus brengt elk K8s-knooppunt in uw cluster een BGP-peeringsessie met uw netwerkrouters tot stand en gebruikt deze peeringsessie om de IP-adressen van externe clusterservices te adverteren.
IP-adrestoewijzing Ip-adresgroepen van MetallLB moeten zich in hetzelfde subnet bevinden als de K8s-knooppunten. MetallLB IP-adresgroepen kunnen zich in een ander netwerk bevinden dan de K8s-knooppunten.
Configuratiecomplexiteit Laag. Omdat u IP-adressen opgeeft in hetzelfde netwerk als uw Kubernetes-knooppunten, hoeft u alleen een IP-CIDR of IP-pool op te geven tijdens het instellen van MetalLB. Hoog. Voor het configureren van BGP is kennis van het BGP-protocol en kennis van uw netwerkinfrastructuur vereist.
Schaalbaarheid Beperkt tot Laag 2-netwerken, geschikt voor kleine tot middelgrote K8s-implementaties. Geschikt voor complexe netwerktopologieën en grootschalige K8s-implementaties.
Compatibiliteit met infrastructuurnetwerk Werkt met elk netwerk, maar kan leiden tot ARP-overstromingen in grote K8s-clusters, omdat één IP wordt gebruikt voor alle services en de inkomende bandbreedte van de service beperkt is tot de bandbreedte van één knooppunt. Vereist BGP-ondersteuning in de netwerkinfrastructuur.
Verkeerstechniek Beperkte controle over verkeersroutering. Fijnmazige controle over verkeersroutering met behulp van BGP-kenmerken.
Externe connectiviteit Vereist meer configuratie voor externe connectiviteit. Biedt naadloze connectiviteit met externe netwerken met behulp van BGP-routering.

Veelgestelde vragen

Kan een MetalLB-exemplaar opnieuw worden gebruikt in AKS Arc-clusters?

Nee, MetalLB kan niet opnieuw worden gebruikt in AKS Arc-clusters. MetalLB leeft als pods in een Kubernetes-cluster en load balancers zijn Aangepaste resources (CR's). U moet de MetalLB Arc k8s-extensie installeren met behulp van Azure CLI, Azure Portal of Azure Resource Manager-sjablonen en load balancers maken voor elk AKS Arc-cluster.

Volgende stappen