Internetverkehr mit dem AWS Load Balancer Controller weiterleiten - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

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.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.

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 dem AWS Load Balancer Controller weiterleiten

Der Load AWS Balancer Controller verwaltet AWS Elastic Load Balancers für einen Kubernetes-Cluster. Mit dem Controller können Sie Ihre Cluster-Anwendungen im Internet verfügbar machen. Der Controller stellt AWS Load Balancer bereit, die auf Cluster-Service- 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. Darstellung des Datenverkehrs von Internetnutzern zu Amazon Load Balancer. Amazon Load Balancer verteilt den Datenverkehr auf die Pods im Cluster.

Der Controller überwacht Kubernetes-Ingress- oder Service-Ressourcen. 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 Annotationen zu den Kubernetes-Ressourcen hinzufügen. Sie können beispielsweise 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 Kubernetes-Ingress erstellen. Überprüfen Sie die Annotationen, die Sie auf eine Ingress-Ressource anwenden können.

Kubernetes-Service vom Typ LoadBalancer

Der LBC erstellt einen AWS Network Load Balancer (NLB), wenn Sie einen Kubernetes-Service vom Typ LoadBalancer erstellen. Überprüfen Sie die Annotationen, die Sie auf eine Service-Ressource anwenden können.

In der Vergangenheit wurde der Kubernetes-Netzwerk-Load-Balancer für Instance-Ziele verwendet, während der LBC für IP-Ziele eingesetzt wurde. Mit der Load AWS Balancer Controller-Version 2.3.0 oder höher können Sie NLBs mit beiden Zieltypen erstellen. Weitere Informationen zu NLB-Zieltypen finden Sie unter Zieltyp im Benutzerhandbuch für Network Load Balancer.

Der Controller ist ein Open-Source-Projekt, auf dem verwaltet wird. GitHub

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

Kubernetes-API Gateway

Mit der Load AWS Balancer Controller-Version 2.14.0 oder höher erstellt der LBC einen AWS Application Load Balancer (ALB), wenn Sie ein Kubernetes erstellen. Gateway Kubernetes Gateway standardisiert mehr Konfigurationen als Ingress, für das benutzerdefinierte Anmerkungen für viele gängige Optionen erforderlich waren. Überprüfen Sie die Konfiguration, die Sie auf eine Gateway-Ressource anwenden können. Weitere Informationen zur Gateway API finden Sie unter Gateway-API in der Kubernetes-Dokumentation.

Installation des Controllers

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

Migration von veralteten Controller-Versionen

  • Wenn Sie veraltete Versionen des Load AWS Balancer Controllers installiert haben, finden Sie weitere Informationen unter. Anwendungen vom veralteten ALB Ingress Controller migrieren

  • Veraltete Versionen können nicht aktualisiert werden. Sie müssen entfernt und eine aktuelle Version des Load AWS Balancer Controllers installiert werden.

  • Zu den veralteten Versionen gehören:

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

    • Beliebige 0.1.x Version des AWS Load Balancer Controllers

Veraltete Cloud-Provider

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

Wichtig

In den Versionen 2.5 und neuer wird der Load AWS Balancer Controller mit dem zum Standardcontroller für Kubernetes-Dienstressourcen 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 veralteten 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.