Lastbalanserare
En lastbalanserare distribuerar inkommande trafik över en pool av backend-instanser. Frostmoln erbjuder två typer; du väljer en vid skapande — den kan inte ändras på plats (för att byta, ta bort och återskapa).
Välja en typ
l7 (standard) | l4 | |
|---|---|---|
| Lager | L4 och L7 (HTTP/HTTPS) | Endast L4 (TCP/UDP/SCTP) |
| TLS-terminering | Ja (via plattformens nyckelhanterare) | Nej |
| PROXY-protokoll / headerinjektion | Ja | Nej |
| Käll-IP till backends | X-Forwarded-For (L7) eller PROXY-protokoll (L4) | Bevaras nativt (L4) |
| Overhead | Kör en lastbalanserarinstans | Ingen instans (inbyggd i nätverksväven) |
| Bäst för | Webbappar, TLS, HTTP-routning | L4 med hög genomströmning, käll-IP-känsliga arbetslaster |
fm load-balancer create --name web-lb --vpc my-vpc --subnet my-subnet # l7 (standard)
fm load-balancer create --name l4-lb --vpc my-vpc --subnet my-subnet --type l4 # l4fm lb är ett alias för fm load-balancer. I Terraform är resursen frostmoln_load_balancer och attributet heter type (typ och storlek är oföränderliga / force-new).
Intern kontra publik
En lastbalanserare är intern som standard (en privat VIP nåbar inom VPC:n). För en publik allokerar du först en publik IP och skickar med den:
fm load-balancer create --name web-lb --vpc my-vpc --subnet my-subnet \
--scheme public --public-ip <public-ip-id>Lyssnare — och obligatoriska tillåtna CIDR:er
En lyssnare tar emot trafik på ett protokoll/port (t.ex. HTTPS:443). Lyssnare nekar som standard: du måste ange de klient-CIDR:er som tillåts nå dem — detta är obligatoriskt, inte valfritt. Använd 0.0.0.0/0 för att ta emot från var som helst.
fm load-balancer listener create --lb web-lb --name https \
--protocol https --port 443 --allowed-cidr 0.0.0.0/0Pooler, medlemmar och hälsoövervakare
- En pool är uppsättningen backend-medlemmar, med en lastbalanseringsalgoritm:
round_robin(standard),least_connectionsellersource_ip. (Pooler på enl4-lastbalanserare måste användasource_ip_port.) - Medlemmar är backend-instanser (adress + port, valfri vikt, valfri backup). Medlemmar utanför lastbalanserarens subnät behöver flaggan för korssubnät.
- En hälsoövervakare sonderar medlemmar (
tcp/http/https, med fördröjning, timeout, omförsök och för HTTP en sökväg + förväntade koder) och tar bort ohälsosamma från rotationen.
fm load-balancer pool create --lb web-lb --name web-pool --protocol http --algorithm round_robin
fm load-balancer member create --pool web-pool --address 10.0.1.10 --port 8080
fm load-balancer health-monitor create --pool web-pool --type http --url-path /healthzTLS, PROXY-protokoll och käll-IP (l7)
- TLS-terminering — skapa en
terminated_https-lyssnare som refererar till ett TLS-certifikat; lastbalanseraren terminerar TLS och vidarebefordrar till poolen. (Endastl7.) - PROXY-protokoll (v1/v2) — bevarar den verkliga klient-IP:n till L4-backends; dina medlemmar måste konfigureras att acceptera PROXY-headern. (Endast
l7.) - Käll-IP: på en
l4-lastbalanserare bevaras klient-IP:n alltid. På enl7beror det på lyssnaren: en L7-lyssnare terminerar anslutningen, så läs klient-IP:n frånX-Forwarded-For; en L4-lyssnare bevarar den, eller använd PROXY-protokoll för att skicka den explicit.
Status och statistik
En lastbalanserare är active när den är frisk, eller degraded när den är tillhandahållen och redigerbar men dess backend-medlemmar för närvarande är ohälsosamma (inte ett fel — åtgärda medlemmarna eller hälsokontrollen). En l7-lastbalanserare rapporterar trafikräknare (anslutningar, byte, fel) plus hälsa per medlem; en l4 rapporterar endast medlemshälsa (inga räknare).
Koppla en publik IP för publik räckvidd och tillåt lyssnarportarna i den relevanta säkerhetsgruppen.