Så här fungerar Azure Load Balancer
Azure Load Balancer körs på transportskiktet i OSI-modellen. Den här Layer 4-funktionen tillåter trafikhantering baserat på specifika egenskaper för trafiken. Egenskaper som käll- och måladress, TCP- eller UDP-protokolltyp och portnummer.
Load Balancer har flera element som fungerar tillsammans för att säkerställa ett programs höga tillgänglighet och prestanda:
- Klientdels-IP
- Regler för lastbalanserare
- Serverdelspool
- Hälsotillståndsavsökningar
- Ingående NAT-regler
- Portar med hög tillgänglighet
- Regler för utgående trafik
Klientdels-IP
Klientdelens IP-adress är den adress som klienter använder för att ansluta till ditt webbprogram. En klientdels-IP-adress kan vara antingen en offentlig eller en privat IP-adress. Azure-lastbalanserare kan ha flera ip-adresser på klientsidan. Valet av en offentlig eller en privat IP-adress avgör vilken typ av lastbalanserare som ska skapas:
Offentlig IP-adress: En offentlig lastbalanserare: En offentlig lastbalanserare mappar den offentliga IP-adressen och porten för inkommande trafik till den virtuella datorns privata IP-adress och port. Du kan distribuera specifika typer av trafik över flera virtuella datorer eller tjänster genom att tillämpa belastningsutjämningsregler. Du kan till exempel sprida belastningen av trafik för webbegäranden på flera webbservrar. Lastbalanseraren mappar svarstrafiken från den privata IP-adressen och porten för den virtuella datorn till den offentliga IP-adressen och porten för lastbalanseraren. Sedan skickar den tillbaka svaret till den begärande klienten.
Privat IP-adress: En intern lastbalanserare: En intern lastbalanserare distribuerar trafik till resurser som finns i ett virtuellt nätverk. Azure begränsar åtkomsten till klientdelens IP-adresser för ett virtuellt nätverk som är lastbalanserat. Klientdelens IP-adresser och virtuella nätverk exponeras aldrig direkt för en Internetslutpunkt. Interna verksamhetsspecifika program körs i Azure och nås från Azure eller från lokala resurser via en VPN- eller ExpressRoute-anslutning.
Load Balancer-regler
En lastbalanseringsregel definierar hur trafik distribueras till serverdelspoolen. Regeln mappar en given ip- och portkombination för klientdelen till en uppsättning backend-IP-adresser och portkombinationer.
Trafiken hanteras med hjälp av en hash med fem tuppler som skapats av följande element:
- Käll-IP: IP-adressen för den begärande klienten.
- Källport: Porten för den begärande klienten.
- Mål-IP: Mål-IP-adressen för begäran.
- Målport: Målporten för begäran.
- Protokolltyp: Den angivna protokolltypen, TCP eller UDP.
- Sessionstillhörighet: Säkerställer att samma poolnod alltid hanterar trafik för en klient.
Med Load Balancer kan du lastbalansera tjänster på flera portar, flera IP-adresser eller båda. Du kan konfigurera olika belastningsutjämningsregler för varje klientdels-IP. Flera klientdelskonfigurationer stöds endast med virtuella IaaS-datorer.
Load Balancer kan inte tillämpa olika regler baserat på internt trafikinnehåll eftersom det fungerar på Layer 4 (transportlager) i OSI-modellen. Om du behöver hantera trafik baserat på dess layer 7-egenskaper (programskikt) måste du distribuera en lösning som Azure Application Gateway.
Serverdelspool
Serverdelspoolen är en grupp med virtuella datorer eller instanser i en vm-skalningsuppsättning som svarar på den inkommande begäran. För att skala kostnadseffektivt för att möta stora volymer inkommande trafik rekommenderar riktlinjerna för databehandling vanligtvis att du lägger till fler instanser i serverdelspoolen.
Load Balancer implementerar automatisk omkonfiguration för att omdistribuera belastningen över det ändrade antalet instanser när du skalar instanser uppåt eller nedåt. Om du till exempel har lagt till ytterligare två virtuella datorinstanser i serverdelspoolen konfigurerar Load Balancer om sig själv för att börja balansera trafik till dessa instanser baserat på de redan konfigurerade belastningsutjämningsreglerna.
Hälsotillståndsavsökningar
En hälsoavsökning används för att fastställa hälsostatusen för instanserna i serverdelspoolen. Den här hälsoavsökningen avgör om en instans är felfri och kan ta emot trafik. Du kan definiera tröskelvärdet för feltillstånd för dina hälsoavsökningar. När en avsökning inte svarar slutar lastbalanseraren att skicka nya anslutningar till de felaktiga instanserna. Ett avsökningsfel påverkar inte befintliga anslutningar. Anslutningen fortsätter tills:
- Programmet avslutar flödet.
- Tidsgränsen för inaktivitet inträffar.
- Den virtuella datorn stängs av.
Med Load Balancer kan du konfigurera olika typer av hälsoavsökningar för slutpunkter: TCP, HTTP och HTTPS.
- Anpassad TCP-avsökning: Den här avsökningen förlitar sig på att upprätta en lyckad TCP-session till en definierad avsökningsport. Om den angivna lyssnaren på den virtuella datorn finns lyckas avsökningen. Om anslutningen nekas misslyckas avsökningen. Du kan ange tröskelvärdet Port, Intervall och Ej felfri.
- ANPASSAD HTTP- eller HTTPS-avsökning: Lastbalanseraren avsöker regelbundet slutpunkten (var 15:e sekund som standard). Instansen är felfri om den svarar med en HTTP 200 inom tidsgränsen (standardvärdet är 31 sekunder). Alla andra statusar än HTTP 200 gör att avsökningen misslyckas. Du kan ange porten (port), URI:n för att begära hälsostatus från serverdelen (URI), hur lång tid det tar mellan avsökningsförsök (intervall) och antalet fel som måste inträffa för att instansen ska betraktas som felaktig (tröskelvärde för ej felfri).
Sessionspersistens
Som standard distribuerar Load Balancer nätverkstrafik lika mellan flera VM-instanser. Det ger endast fästhet inom en transportsession. Sessionspersistence anger hur trafik från en klient ska hanteras. Standardbeteendet (Ingen) är att alla felfria virtuella datorer kan hantera efterföljande begäranden från en klient.
Sessionspersistence kallas även sessionstillhörighet, käll-IP-tillhörighet eller klientens IP-tillhörighet. Det här distributionsläget använder en hash med två tupplar (käll-IP och mål-IP) eller tre tupplar (käll-IP, mål-IP och protokolltyp) för att dirigera till serverdelsinstanser. När du använder sessionspersistence går anslutningar från samma klient till samma serverdelsinstans i serverdelspoolen. Du kan konfigurera något av följande alternativ för sessionspersistence:
- Ingen (standard): Anger att en felfri virtuell dator kan hantera begäran.
- Klient-IP (2-tupplar): Anger att samma serverdelsinstans kan hantera efterföljande begäranden från samma klient-IP-adress.
- Klient-IP och protokoll (3-tupplar): Anger att samma serverdelsinstans kan hantera efterföljande begäranden från samma klient-IP-adress och protokollkombination.
Du kan ändra det här beteendet genom att konfigurera något av de alternativ som beskrivs i följande avsnitt.
Portar med hög tillgänglighet
En lastbalanseringsregel som konfigurerats med protocol - all and port - 0
kallas för en portregel för hög tillgänglighet (HA). Den här regeln gör det möjligt för en enskild regel att belastningsutjämna alla TCP- och UDP-flöden som tas emot på alla portar i en intern standardlastbalanserare.
Belastningsutjämningsbeslutet fattas per flöde. Den här åtgärden baseras på följande fem tupppelanslutning:
- Källans IP-adress
- Källport
- Mål-IP-adress
- Målport
- Protokoll
Regler för lastbalansering av HA-portar hjälper dig med kritiska scenarier, till exempel hög tillgänglighet och skalning för virtuella nätverksinstallationer (NVA) i virtuella nätverk. Funktionen kan vara till hjälp när ett stort antal portar måste lastbalanseras.
Ingående NAT-regler
Du kan använda belastningsutjämningsregler i kombination med NAT-regler (Network Address Translation). Du kan till exempel använda NAT från lastbalanserarens offentliga adress till TCP 3389 på en specifik virtuell dator. Den här regelkombinationen tillåter fjärrskrivbordsåtkomst utanför Azure.
Regler för utgående trafik
En regel för utgående trafik konfigurerar SNAT (Source Network Address Translation) för alla virtuella datorer eller instanser som identifieras av serverdelspoolen. Den här regeln gör det möjligt för instanser i serverdelen att kommunicera (utgående) till Internet eller andra offentliga slutpunkter.