Přehled nástroje MetalLB pro clustery Kubernetes
Platí pro: Azure Local, verze 23H2
Při nastavování clusteru AKS Arc potřebujete způsob, jak zpřístupnit služby mimo cluster. Typ LoadBalancer
je ideální pro tuto přístupnost, ale externí IP adresa zůstává nevyřízená. Rozšíření pro Kubernetes s podporou MetalLB pro Azure Arc je nástroj, který umožňuje generovat externí IP adresy pro vaše aplikace a služby. Clustery Kubernetes s podporou arc se můžou integrovat s MetalLB pomocí rozšíření Pro MetalLB pro Kubernetes s podporou Služby Azure Arc.
Aby vaše služby byly přístupné mimo cluster, potřebuje MetalLB IP adresy. Nástroj MetalLB se postará o přiřazování a vydávání těchto adres podle potřeby při vytváření služeb, ale distribuuje pouze IP adresy, které jsou v nakonfigurovaných fondech. Když nástroj MetalLB přiřadí službě externí IP adresu, informuje síť mimo cluster, že tato IP adresa patří do clusteru. Tato komunikace se provádí pomocí standardních síťových protokolů, jako je ARP nebo BGP.
- Režim vrstvy 2 (ARP): V režimu vrstvy 2 přebírá jeden uzel K8s v clusteru vlastnictví služby a používá standardní protokoly zjišťování adres (ARP pro IPv4), aby tyto IP adresy byly dostupné v místní síti. Z pohledu sítě LAN má ohlašující počítač jednoduše několik IP adres.
- Protokol BGP: V režimu protokolu BGP všechny počítače v clusteru navazují relace partnerského vztahu protokolu BGP s blízkými směrovači, které řídíte, a řeknou těmto směrovačům, jak předávat provoz IP adresám služby. Použití protokolu BGP umožňuje skutečné vyrovnávání zatížení napříč několika uzly a jemně odstupňované řízení provozu kvůli mechanismům zásad protokolu BGP.
Nástroj MetalLB má dvě komponenty:
- Kontroler: zodpovědný za přidělování IP adres pro každou službu
type=loadbalancer
. - Mluvčí: zodpovídá za inzerci IP adresy pomocí
ARP
neboBGP
protokolu. Pro splnění požadavku vysoké dostupnosti (HA) je nasazení mluvčího démonem.
Poznámka:
- Pody mluvčího používají hostitelskou síť; to znamená, že ip adresa je IP adresa uzlu, aby mohli přímo odesílat zprávy všesměrového vysílání přes síťové rozhraní hostitele.
- Pod kontroleru je normální pod, který se nachází v libovolném uzlu v clusteru.
- V režimu protokolu ARP je jako vodicí znak vybrán jeden z podů mluvčího. Potom inzeruje IP adresu pomocí zprávy všesměrového vysílání protokolu ARP a vytvoří vazbu IP adresy s adresou MAC uzlu, ve které se nachází. Proto veškerý provoz nejprve dosáhne jednoho uzlu a pak ho kube-proxy rovnoměrně rozloží na všechny back-endové pody služby.
- V režimu protokolu BGP všechny uzly clusteru navazují připojení se všemi partnerskými uzly protokolu BGP vytvořenými na
BGP Peers
kartě. Obvykle je to přepínač TOR. Aby bylo možné vysílat informace o směrování protokolu BGP, musí být partnerské uzly protokolu BGP nakonfigurované tak, aby rozpoznaly IP adresu a ASN uzlů clusteru. Při použití protokolu BGP s ECMP (Equal-Cost MultiPath), provoz se rovnoměrně dostane do všech uzlů, a proto dosáhne skutečného vyrovnávání zatížení.
Porovnání režimů MetalLB L2 (ARP) a BGP
Volba mezi režimem L2 a BGP pomocí nástroje MetalLB závisí na konkrétních požadavcích, síťové infrastruktuře a scénářích nasazení:
Aspekt | MetalLB v režimu L2 (ARP) | MetalLB v režimu protokolu BGP |
---|---|---|
Přehled | V režimu vrstvy 2 jeden uzel K8s přebírá odpovědnost za inzerci služby do místní sítě. Z hlediska sítě to vypadá, že uzel K8s má přiřazených několik IP adres k jeho síťovému rozhraní. | V režimu protokolu BGP každý uzel K8s ve vašem clusteru vytvoří relaci partnerského vztahu protokolu BGP se síťovými směrovači a pomocí této relace partnerského vztahu inzeruje IP adresy externích služeb clusteru. |
Přiřazení IP adres | Fondy IP adres nástroje MetallLB musí být ve stejné podsíti jako uzly K8s. | Fondy IP adres nástroje MetallLB mohou být v jiné síti než uzly K8s. |
Složitost konfigurace | Nízká. Vzhledem k tomu, že poskytujete IP adresy ve stejné síti jako uzly Kubernetes, stačí při nastavování Nástroje pro vyrovnávání zatížení (MetalLB) zadat jenom IP adresu CIDR nebo fond IP adres. | Vysoká. Konfigurace protokolu BGP vyžaduje znalost protokolu BGP a pochopení síťové infrastruktury. |
Škálovatelnost | Omezeno na sítě vrstvy 2, které jsou vhodné pro malá až středně velká nasazení K8s. | Vhodné pro složitá síťová topologie a nasazení K8s ve velkém měřítku. |
Kompatibilita se sítí infrastruktury | Funguje s libovolnou sítí, ale může způsobit zahlcené sítě ARP ve velkých clusterech K8s, protože jedna IP adresa se používá pro všechny služby a šířka pásma příchozího přenosu dat služby je omezená na šířku pásma jednoho uzlu. | Vyžaduje podporu protokolu BGP v síťové infrastruktuře. |
Dopravní inženýrství | Omezená kontrola směrování provozu. | Jemně odstupňovaná kontrola směrování provozu pomocí atributů protokolu BGP. |
Externí připojení | Vyžaduje další konfiguraci pro externí připojení. | Poskytuje bezproblémové připojení k externím sítím pomocí směrování protokolu BGP. |
Často kladené dotazy
Je možné znovu použít instanci nástroje MetalLB napříč clustery AKS Arc?
Ne, nástroj MetalLB se nedá znovu použít napříč clustery AKS Arc. Nástroj MetalLB se nachází jako pody v clusteru Kubernetes a nástroje pro vyrovnávání zatížení jsou vlastní prostředky (CRS). Rozšíření MetalLB Arc k8s musíte nainstalovat pomocí Azure CLI, webu Azure Portal nebo šablon Azure Resource Manageru a vytvoření nástrojů pro vyrovnávání zatížení pro každý cluster AKS Arc.