Internetverkehr mit AWS Load Balancer Controller weiterleiten - Amazon EKS

Hilf mit, diese Seite zu verbessern

Möchten Sie zu diesem Benutzerhandbuch beitragen? Scrollen Sie zum Ende dieser Seite und wählen Sie Diese Seite bearbeiten am aus GitHub. Ihre Beiträge werden dazu beitragen, unser Benutzerhandbuch für alle zu verbessern.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Internetverkehr mit AWS Load Balancer Controller weiterleiten

Das Tool AWS Load Balancer Controller verwaltet AWS Elastic Load Balancers für ein Kubernetes Cluster. Sie können den Controller verwenden, um Ihre Cluster-Apps dem Internet zugänglich zu machen. Der Controller stellt AWS Load Balancer bereit, die auf Clusterdienst- oder Ingress-Ressourcen verweisen. Mit anderen Worten, der Controller erstellt eine einzelne IP-Adresse oder einen DNS Namen, der auf mehrere Pods in Ihrem Cluster verweist.

Architekturdiagramm. Abbildung des Datenverkehrs, der von Internetnutzern zu Amazon Load Balancer kommt. Amazon Load Balancer verteilt den Datenverkehr auf die Pods im Cluster.

Der Controller achtet auf Kubernetes Ingress or Service Ressourcen schätzen. Als Reaktion darauf erstellt es die entsprechenden AWS Elastic Load Balancing Balancing-Ressourcen. Sie können das spezifische Verhalten der Load Balancer konfigurieren, indem Sie Anmerkungen auf die Kubernetes Ressourcen schätzen. Beispielsweise können Sie mithilfe von Anmerkungen AWS Sicherheitsgruppen an Load Balancer anhängen.

Der Controller stellt die folgenden Ressourcen bereit:

Kubernetes Ingress

Der LBC erstellt einen AWS Application Load Balancer (ALB), wenn Sie einen erstellen Kubernetes Ingress. Prüfen Sie die Anmerkungen, die Sie auf eine Ingress-Ressource anwenden können.

Kubernetes Dienst des Typs LoadBalancer

Der LBC erstellt einen AWS Network Load Balancer (NLB), wenn Sie einen erstellen Kubernetes Dienst des TypsLoadBalancer. Prüfen Sie die Anmerkungen, die Sie auf eine Serviceressource anwenden können.

In der Vergangenheit Kubernetes Der Network Load Balancer wurde für Instanzziele verwendet, der LBC wurde jedoch für IP-Ziele verwendet. Mit dem AWS Load Balancer Controller Version 2.3.0 oder höher können Sie NLBs mit einem der beiden Zieltypen erstellen. Weitere Informationen zu NLB Zieltypen finden Sie unter Zieltyp im Benutzerhandbuch für Network Load Balancers.

Der Controller ist ein Open-Source-Projekt, das unter folgender Adresse verwaltet wird GitHub.

Bevor Sie den Controller bereitstellen, empfehlen wir Ihnen, die Voraussetzungen und Überlegungen in Routenanwendung und HTTP Verkehr mit Application Load Balancers und Route TCP and UDP Verkehr mit Network Load Balancers zu überprüfen. In diesen Themen stellen Sie eine Beispiel-App bereit, die einen AWS Load Balancer enthält.

Installieren Sie den Controller

Sie können eines der folgenden Verfahren verwenden, um das zu installieren AWS Load Balancer Controller:

Migrieren Sie von veralteten Controller-Versionen

  • Wenn Sie veraltete Versionen von haben AWS Load Balancer Controller installiert, erfahren Sie, wie es geht. Apps von veralteten Apps migrieren AWSIngress Controller

  • Veraltete Versionen können nicht aktualisiert werden. Sie müssen entfernt werden und es muss sich um eine aktuelle Version der handeln AWS Load Balancer Controller installiert.

  • Zu den veralteten Versionen gehören:

    • AWS ALBIngress Controller für Kubernetes („Ingress Controller“), ein Vorgänger des AWS Load Balancer Controller.

    • Jede 0.1.x Version des AWS Load Balancer Controller

Legacy-Cloud-Anbieter

Kubernetes beinhaltet einen Legacy-Cloud-Anbieter für AWS. Der ältere Cloud-Anbieter ist in der Lage, AWS Load Balancer bereitzustellen, ähnlich wie AWS Load Balancer Controller. Der ältere Cloud-Anbieter erstellt Classic Load Balancer. Wenn Sie das nicht installieren AWS Load Balancer Controller, Kubernetes verwendet standardmäßig den alten Cloud-Anbieter. Sie sollten das installieren AWS Load Balancer Controller und vermeiden Sie es, den alten Cloud-Anbieter zu verwenden.

Wichtig

In den Versionen 2.5 und neuer ist der AWS Load Balancer Controller wird zum Standardcontroller für Kubernetes bedient Ressourcen mit dem type: LoadBalancer und erstellt für jeden Dienst einen AWS Network Load Balancer (NLB). Dies geschieht durch einen mutierenden Webhook für Services, der das Feld spec.loadBalancerClass auf service.k8s.aws/nlb für neue Services von type: LoadBalancer setzt. Sie können dieses Feature deaktivieren und wieder den alten Cloud Provider als Standard-Controller verwenden, indem Sie den Wert für den Helm-Chart enableServiceMutatorWebhook auf false setzen. Der Cluster stellt keine neuen Classic Load Balancer für Ihre Services bereit, es sei denn, Sie schalten dieses Feature aus. Bestehende Classic Load Balancer werden weiterhin funktionieren.