So verwenden Sie Kubernetes Load Balancer?

So verwenden Sie Kubernetes Load Balancer?
Lastausgleich ist von entscheidender Bedeutung, um groß angelegte Kubernetes-Cluster funktionieren und sicher zu sein. Während viele Lastbalancer äußerst erfolgreich sind, um viele dieser Bedenken für Sie zu kontrollieren, ist es wichtig, Ihre Kubernetes -Umgebung korrekt zu konfigurieren, um das Beste aus den Diensten herauszuholen, die diese Ladungsbalancer bieten. Dieser Artikel befasst sich tief in das Thema.

Was ist Kubernetes Load Balancer?

Lastbalancer verteilen eingehenden Verkehr über eine Gruppe von Hosts, um optimale Arbeitsbelastungen und hohe Verfügbarkeit zu gewährleisten. Aufgrund seines zugrunde liegenden Designs beruht die verteilte Architektur eines Kubernetes -Clusters auf mehreren Diensteninstanzen, was die Herausforderungen ohne angemessene Lastzuweisung darstellt.

Ein Lastausgleich ist ein Verkehrscontroller, der Client -Anfragen an die Knoten weiterleitet, die sie umgehend und effizient bedienen können. Der Lastbalancer verteilt die Arbeitsbelastung über die verbleibenden Knoten, wenn einer der Hosts fehlschlägt. Wenn ein neuer Knoten in einen Cluster eintritt.

Ein Last -Balancer -Service in einem Kubernetes -Cluster führt Folgendes aus:

  • Verteilende Netzwerkbelastungen und Serviceanfragen in zahlreichen Fällen auf kostengünstige Weise in zahlreichen Fällen
  • Ermöglichung der Autoscaling als Reaktion auf Nachfrageschwankungen.

So fügen Sie einem Kubernetes -Cluster einen Lastausgleicher hinzu?

Ein Lastausgleich kann zu einem Kubernetes -Cluster auf zwei Arten hinzugefügt werden:

Mithilfe einer Konfigurationsdatei:
Der Ladeausgleich wird aktiviert, indem LoadBalancer im Feld Typ der Dienstkonfigurationsdatei angegeben wird. Der Cloud-Dienstanbieter verwaltet und führt diesen Lastausgleich, der den Verkehr an Back-End-Pods sendet. Die Dienstkonfigurationsdatei sollte Folgendes ähneln:

apiversion: v1
Art: Service
Metadaten:
Name: New-ServiceOne
Spezifikation:
Wähler:
App: Newapp
Häfen:
- Port: 5678
Targetport: 8456
Typ: LoadBalancer

Benutzer können dem Lastausgleich möglicherweise je nach Cloud -Anbieter eine IP -Adresse zuweisen. Mit dem benutzerdefinierten LoadBalancerip-Tag kann es verwendet werden, um dies einzurichten. Wenn der Benutzer keine IP -Adresse angibt, wird dem Lastausgleich eine kurzlebige IP -Adresse zugewiesen. Wenn der Benutzer eine IP -Adresse angibt, die der Cloud -Anbieter nicht unterstützt, wird sie nicht berücksichtigt.

Der.Status.Die LoadBalancer -Eigenschaft sollte verwendet werden, wenn der Benutzer dem Last -Balancer -Dienst weitere Informationen hinzufügen möchte. Sehen Sie sich das Bild unten an, um die IP -Adresse einzulegen.

Status:
Lastenausgleicher:
Eindringen:
- IP: 192.154.0.1

Durch Verwendung von Kubectl:
Der -Typ = LoadBalancer: Parameter kann auch verwendet werden, um einen Lastausgleich mit dem Befehl kubectl expose.

$ kubectl expose po new-port = 5678--target-port = 8456 \
--Name = New-ServiceOne-Typ = LoadBalancer

Der obige Befehl erstellt den neuen Dienst und verbindet den neuen Pod mit einem bestimmten Port.

Was ist Müllsammeln Lastausgleiche??

Wenn ein Lastbalker -Dienst zerstört wird, sollte die zugehörigen Last -Balancer -Ressourcen im Cloud -Anbieter so schnell wie möglich weggeräumt werden. Es ist jedoch bekannt, dass Cloud -Ressourcen verwaist werden können, wenn der damit verbundene Service in verschiedenen Situationen entfernt wird. Um zu verhindern, dass dies auftritt.

Wenn ein Dienst vom Typ LoadBalancer ist, fügt der Service Controller einen Finalizer namens Service hinzu.Kubernetes.IO/Load-Balancer-Cleanup dazu. Der Finalizer wird gelöscht, nachdem die Last -Balancer -Ressource bereits aufgeräumt wurde. Auch in extremen Fällen, beispielsweise wenn der Service -Controller abstürzt, verhindert dies, dass die Ressourcen für Baumeln von Last aus Balancer sind.

Verschiedene Möglichkeiten zur Konfiguration von Load Balancer in Kubernetes

Für den Umgang mit externen Verkehr zu Pods sind Kubernetes -Last -Balancer -Methoden und Algorithmen verfügbar.

Runde Robin
Ein Rund -Robin -Ansatz verteilt neue Verbindungen an qualifizierte Server in sequentieller Reihenfolge. Diese Technik ist statisch, was bedeutet, dass sie spezifische Servergeschwindigkeiten oder Leistungsbedenken nicht berücksichtigt. Infolgedessen ist das Robin -Lastausgleich nicht immer die beste Wahl für den Produktionsverkehr und eignet sich besser für einfache Lasttests.

Kube-Proxy L4 Round Robin
Die Kube-Proxy sammelt und leitet alle Anfragen an, die an den Kubernetes-Service geliefert werden.

Da es sich um einen Prozess und kein Proxy handelt, verwendet es eine virtuelle IP für den Dienst. Anschließend fügt es sowohl Architektur als auch Komplexität zum Routing hinzu. Jede Anfrage erhöht die Latenz, und das Problem wird mit zunehmender Anzahl von Diensten schlechter.

L7 Round Robin
Manchmal vermeidet es den Kube-Proxy, den Verkehr direkt an Pods zu leiten. Dies kann mit einem Kubernetes -API -Gateway erreicht werden, das einen L7 -Proxy verwendet, um Anfragen zwischen verfügbaren Kubernetes -Pods zu bearbeiten.

Konsequentes Hashing/Ring -Hash
Der Kubernetes Load Balancer verwendet einen Hash, der auf einem definierten Schlüssel basiert, um neue Verbindungen auf den Servern mit konsistenten Hashing -Techniken zu verteilen. Diese Strategie eignet sich am besten zum Umgang mit großen Cache -Servern mit dynamischem Inhalt.

Da die vollständige Hash -Tabelle nicht jedes Mal neu berechnet werden muss, wenn ein Server hinzugefügt oder zurückgezogen wird, ist dieser Ansatz konsistent.

Kleinste Server
Anstatt alle Anfragen zwischen allen Servern zuzuweisen, klassifiziert die Technik eines Weniger Server die kleinste Menge an Servern, die zur Erfüllung der aktuellen Clientlast obligatorisch sind. Übermäßige Server können vorerst abgelehnt oder abgelehnt werden.

Diese Technik arbeitet durch Verfolgung von Variationen in der Antwortlatenz, wenn die Last je nach Serverkapazität variiert.

Geringste Verbindungen
Dieser Lastausgleichsalgorithmus in Kubernetes gibt Client -Anforderungen an den Anwendungsserver mit den wenigsten aktiven Verbindungen zum Zeitpunkt der Anfrage an den Anwendungsserver weiter. Diese Methode verwendet eine aktive Verbindungslast zum Konto, da ein Anwendungsserver aufgrund längerer Verbindungen möglicherweise überlastet ist.

Abschluss

Dieser Artikel zielte darauf ab, den Lesern ein umfassendes Verständnis des Kubernetes -Lastausgleichs, der Abdeckung seiner Architektur und zahlreichen Bereitstellungsmethoden für einen Kubernetes -Cluster zu vermitteln. Lastausgleich ist ein wichtiger Bestandteil eines effektiven Kubernetes -Cluster und einer der Hauptaufgaben eines Kubernetes -Administrators. Aufgaben können über Cluster -Pods und Knoten unter Verwendung eines optimal gelieferten Lastausgleichs effizient geplant werden, wodurch eine hohe Verfügbarkeit, die schnelle Wiederherstellung und eine geringe Latenz für Containeranwendungen ermöglicht werden, die auf Kubernetes betrieben werden.