Soorten load balances
Er zijn twee soorten load balancing-platforms: HAProxy en Linux Virtual Server, ook bekend als LVS, en Seesaw v2 is een load balancing-platform op basis van een virtuele Linux-server.
Seesaw is een zeer flexibele tool die kan worden gebruikt als een standaard load balancer voor kleine tot middelgrote websites tot een geavanceerde load balancer voor netwerken op bedrijfsniveau waar een tiental servers met elkaar zijn verbonden. Het ondersteunt een aantal geavanceerde Ipv6-functies zoals anycast, multicast, unicast en direct server return, meerdere VLAN's.
Het robuuste ontwerp maakt het geschikt voor eenvoudig onderhoud en betrouwbaarheid. Het is in 2012 ontworpen om te voldoen aan de unieke behoeften van Google, waaraan de bestaande opties niet voldeden. Het is ontwikkeld in Go, een statisch getypeerde taal en is afgeleid van C taal. Het bevat veel taalfuncties op hoog niveau, zoals afvalverzameling om het geheugen op te schonen, typeveiligheid, arrays met variabele lengte, dynamische typmogelijkheden en sleutelwaardekaarten, en een grote standaardbibliotheek. Golang is een gecompileerde taal ontwikkeld door Google. Veel moderne applicaties zoals Docker, Kubernetes, InfluxDB, Gogs (Go Git Service) en Caddy zijn geschreven in Go.
Voorwaarde
- De link om de nieuwste versie van GoLang voor Linux te downloaden is beschikbaar op https://golang.org/dl/ in de vorm van een archiefbestand.
- De integriteit van de tarball kan worden gecontroleerd door de hash-waarde die is gegenereerd met het shassum-commando te vergelijken met de hash-waarde op de website. Als er een verschil is in hash-waarden, moet men altijd een nieuwe tarball van het archief downloaden. Als de controle succesvol is, ga dan verder met de tutorial.
In deze opdracht wordt -a gebruikt om het algoritme te specificeren om hash-waarde te genereren en deze opdracht als geheel voert de SHA256-controlesom uit van de archiefbestanden.
- De volgende stap is het uitpakken van de tar-archiefbestanden, als de integriteitscontrole succesvol is, in de /usr/local directory met behulp van de onderstaande opdracht: $sudo tar -C /user/local -xvzf go1.11.5.linux-amd64.teer.gz
In deze opdracht specificeert -C de doelmap waar de uitgepakte bestanden naartoe worden gestuurd.
- Go-omgeving configureren in de Ubuntu-configuratie Go-werkruimte door een map ~/go_project_directory te maken die de hoofdmap van de werkruimte is. De werkruimte bevat drie belangrijke mappen
• bin - bevat binaire bestanden van de golang.
• src- waarin alle bronbestanden worden opgeslagen.
• pkg- waarin pakketobjecten worden opgeslagen.
Een mappenboom kan als volgt worden aangemaakt: $mkdir -p ~/go_projects/bin,src,pkg
$cd go_projects/
$ls - Om Go uit te voeren, volg je als de rest van Linux-programma's zonder het absolute pad op te geven. De map waarin golang is geïnstalleerd, moet worden gebruikt als een van de waarden van de omgevingsvariabele $PATH.
- Toevoegen /usr/local/go/bin naar de PATH-omgevingsvariabele moet de volgende opdracht worden uitgevoerd:
Of kan het in de terminal openen met behulp van de opdracht
$vi .profielDan /usr/local/go/bin moet aan het pad worden toegevoegd. Vervolgens moeten alle wijzigingen worden opgeslagen en moet de gebruiker zich afmelden bij het profiel en opnieuw inloggen voor verdere procedures.
- Alle paden worden in het profiel ingesteld door de waarden van GOPATH en GOBIN . in te stellen.
export GOBIN=”$GOPATH/bin”- Als GoLang is geïnstalleerd in een andere aangepaste map dan de standaard (/usr/local), is er de vereiste om die map op te geven als de GOROOT-variabele. Het is gedaan in dit .profiel door
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin - De GoLang-omgeving kan na succesvolle installatie in de terminal worden gecontroleerd door het volgende commando uit te voeren: $go
$ga env
Wip installeren
- Het was een vereiste om Go te installeren aangezien Seesaw v2 ermee is ontwikkeld en afhankelijk is van verschillende Go-pakketten zoals:
>github.com/golang/glog
> github.com/dlintw/goconf
>github.com/golang/protobuf/proto
>github.com/miekg/dns
- Als men de protobuf-code opnieuw wil genereren, is ook de protobuf-comiler en de Go protobuf-compilergenerator nodig: $apt-get install protobuf-compiler
$ga halen -u github.com/golamg/protobuf/proto,proto-gen-go- Er moet altijd voor worden gezorgd dat $GOPATH/bin in de $PATH en in de wipmap staat.
- De volgende stap is om het make-commando uit te voeren, aangezien dit leidt tot toevoeging van verschillende binaire bestanden in de $GOPATH/bin met een wip_-voorvoegsel. Deze binaire bestanden moeten op de juiste locaties worden geïnstalleerd.
$make-test
$make install
$maak protoNa het uitvoeren van de bovenstaande drie opdrachten worden de binaire bestanden van de wip op de juiste locaties ingesteld. het kan gedaan worden door seesaw_install in $GOPATH/bin aan te maken en het onderstaande script uit te voeren.
SEESAW_BIN="/usr/local/wip"
SEESAW_ETC="/etc/wip
SEESAW_LOG="/var/log/wip"
INIT='ps -p 1 -o comm='
install -d "$SEESAW_BIN" "$SEESAW_ETC" "$SEESAW_LOG"
installeer "$GOPATH/bin/seesaw_cli" /usr/bin/seesaw
voor component in ecu,engine,ha,healthcheck,ncc,watchdog; Doen
installeer "$GOPATH/bin/seesaw_$component" "$SEESAW_BIN"
gedaan
if [ $INIT = "init" ]; dan
installeer "etc/init/seesaw_watchdog".conf" "/etc/init"
elif [ $INIT = "systemd"]; dan
installeer "etc/systemd/system/seesaw_watchdog".service" "/etc/systemd/system"
systemctl --systeemdaemon-opnieuw laden
fi
installeer "etc/wip/watchdog".cfg" "$SEESAW_ETC"
# Schakel CAP_NET_RAW in voor binaire wipbestanden waarvoor onbewerkte sockets nodig zijn.
/sbin/setcap cap_net_raw+ep "$SEESAW_BIN/seesaw_ha"
/sbin/setcap cap_net_raw+ep "$SEESAW_BIN/seesaw_healthcheck"
Wip configureren
- Elke knoop heeft een wip nodig.cfg-bestand, bekend als het configuratiebestand, waarin informatie over het knooppunt en de bijbehorende peer wordt opgeslagen. Protobuf is het clusterconfiguratiebestand voor elk cluster, en is het in platte tekstformaat. Hierdoor kan het worden geopend met elke Linux-teksteditor zoals nano, vi. Men kan de wip veranderen.cfg met behulp van de volgende opdracht:
Een voorbeeld van de wip.cfg-bestand
[TROS]anycast_enabled = false
naam = au-syd
node_ipv4 = 192.168.
node_ipv6 = 2015:café::2
peer_ipv4 = 192.168.10.3
peer_ipv6 = 2015:café::3
vip_ipv4 = 192.168.10.1
vip_ipv6 = 2015:café::1
[config_server]
primair = wip-config1.voorbeeld.com
secundair = wip-config2.voorbeeld.com
tertiair = wip-config3.voorbeeld.com
[koppel]
knoop = eth0
lb = eth1
De beschrijving van de bovengenoemde cript wordt hieronder gegeven:
- anycast_enabled - Anycast kan worden ingeschakeld door deze waarde in te stellen.
- naam - De korte naam die aan dit cluster wordt gegeven.
- node_ipv4 - IPv4-adres van het huidige Seesaw-knooppunt.
- peer_ipv4 - IPv4-adres van onze peer Seesaw-node.
- vip_ipv4 - Het IPv4-adres voor het huidige virtuele cluster-IP.
Conclusie
Vanwege de enorme voordelen van de functie voor taakverdeling, wordt deze vaak gebruikt in veel bedrijfsnetwerken. Er zijn in het algemeen drie soorten leveringsmodi in IPv4-standaard, Unicast, Multicast en Broadcast. Anycast wordt geaccepteerd in IPv6. Anycast is zelden aanwezig in IPv4. Anycast gebruikt om een interface te identificeren uit een groep interfaces die verbinding maken met dezelfde service. VIP's zijn virtuele IP-adressen die niet tot een fysieke netwerkinterface behoren. Een load balancer moet betrouwbaar zijn en beschikt over de belangrijkste features in clouddiensten.
Veel van de load balancers op de markt hebben geen backend-serverbewaking en vele andere specifieke functies. Er zijn verschillende methoden voor taakverdeling op Open Systems Interconnection Layer 2/3/4. Deze lagen zijn Data Link Layer, Network Layer en Transport Layer. Seesaw gebruikt laag 4-techniek met NAT EN DSR (Direct Server Return). DSR wijzigt de verkeersstroom of de belasting door de server direct op de client te laten reageren. Al met al is The Seesaw load balancer door deze aspecten robuust en betrouwbaar.