View a markdown version of this page

Verwendung von Service-Annotationen zur Konfiguration von Network Load Balancers - 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 unter, 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.

Verwendung von Service-Annotationen zur Konfiguration von Network Load Balancers

Erfahren Sie, wie Sie Network Load Balancers (NLB) in Amazon EKS mithilfe von Kubernetes-Service-Annotationen konfigurieren. In diesem Thema werden die Anmerkungen erläutert, die vom EKS-Automatikmodus zur Anpassung des NLB-Verhaltens unterstützt werden, einschließlich der Modi Internetzugriff, Zustandsprüfungen, SSL/TLS Terminierung und IP-Targeting.

Wenn Sie einen Kubernetes-Dienst vom Typ EKS Auto Mode erstellen, LoadBalancer stellt EKS automatisch einen AWS Network Load Balancer bereit und konfiguriert ihn auf der Grundlage der von Ihnen angegebenen Anmerkungen. Dieser deklarative Ansatz ermöglicht es Ihnen, Load-Balancer-Konfigurationen direkt über Ihre Kubernetes-Manifeste zu verwalten und so die Infrastruktur als Code zu verwalten.

EKS Auto Mode übernimmt standardmäßig die Network Load Balancer-Bereitstellung für alle Dienste dieses Typs LoadBalancer — es ist keine zusätzliche Controller-Installation oder -Konfiguration erforderlich. Die loadBalancerClass: eks.amazonaws.com/nlb-Spezifikation wird automatisch als Cluster-Standard festgelegt, wodurch der Bereitstellungsprozess optimiert und gleichzeitig die Kompatibilität mit vorhandenen Kubernetes-Workloads gewährleistet wird.

Anmerkung

EKS Auto Mode erfordert Subnetz-Tags zur Identifizierung öffentlicher und privater Subnetze.

Wenn Sie Ihren Cluster mit eksctl erstellt haben, verfügen Sie bereits über diese Tags.

Weitere Informationen erhalten Sie unter Kennzeichnung von Subnetzen für EKS Auto Mode.

Beispiel-Service

Weitere Informationen zur Kubernetes-Service-Ressource finden Sie in der Kubernetes-Dokumentation.

Überprüfen Sie die unten stehende Service-Beispiel-Ressource:

apiVersion: v1 kind: Service metadata: name: echoserver annotations: # Specify the load balancer scheme as internet-facing to create a public-facing Network Load Balancer (NLB) service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing spec: selector: app: echoserver ports: - port: 80 targetPort: 8080 protocol: TCP type: LoadBalancer # Specify the new load balancer class for NLB as part of EKS Auto Mode feature # For clusters with Auto Mode enabled, this field can be omitted as it's the default loadBalancerClass: eks.amazonaws.com/nlb

Häufig verwendete Annotationen

Die folgende Tabelle listet häufig verwendete Annotationen auf, die von EKS Auto Mode unterstützt werden. Beachten Sie, dass EKS Auto Mode möglicherweise nicht alle Annotationen unterstützt.

Tipp

Alle folgenden Annotationen müssen mit service.beta.kubernetes.io/ vorangestellt werden

Feld Description Beispiel

aws-load-balancer-type

Gibt den Typ des Load Balancers an. Verwenden Sie external für neue Bereitstellungen.

external

aws-load-balancer-nlb-target-type

Gibt an, ob der Datenverkehr an Knoten-Instances oder direkt an Pod-IPs weitergeleitet werden soll. Verwenden Sie instance für Standard-Bereitstellungen oder ip für die direkte Pod-Weiterleitung.

instance

aws-load-balancer-scheme

Steuert, ob der Load Balancer intern oder mit dem Internet verbunden ist.

internet-facing

aws-load-balancer-healthcheck-protocol

Protokoll für die Zustandsprüfung der Zielgruppe. Gängige Optionen sind TCP (Standard) oder HTTP.

HTTP

aws-load-balancer-healthcheck-path

Der HTTP-Pfad für Integritätsprüfungen bei Verwendung des HTTP/HTTPS Protokolls.

/healthz

aws-load-balancer-healthcheck-port

Der für Zustandsprüfungen verwendete Port. Dies kann eine bestimmte Portnummer oder traffic-port sein.

traffic-port

aws-load-balancer-subnets

Gibt an, in welchen Subnetzen der Load Balancer erstellt werden soll. Es können Subnetz-IDs oder -Namen verwendet werden.

subnet-xxxx, subnet-yyyy

aws-load-balancer-ssl-cert

ARN des SSL-Zertifikats von AWS Certificate Manager für HTTPS/TLS.

arn:aws: acm:region:account:certificate/cert-id

aws-load-balancer-ssl-ports

Gibt an, welche Ports verwendet werden sollen SSL/TLS.

443, 8443

load-balancer-source-ranges

Für den Zugriff auf den Load Balancer zulässige CIDR-Bereiche.

10.0.0.0/24, 192.168.1.0/24

aws-load-balancer-additional-resource-tags

Zusätzliche AWS Tags, die auf den Load Balancer und die zugehörigen Ressourcen angewendet werden sollen.

Environment=prod,Team=platform

aws-load-balancer-ip-address-type

Gibt an, ob der Load Balancer IPv4 oder Dual-Stack (IPv4 + IPv6) verwendet.

ipv4 oder dualstack

aws-load-balancer-listener-attributes.${Protocol}-${Port}

Gibt Listener-Attribute an, die auf den Listener angewendet werden sollen.

tcp.idle_timeout.seconds=350

Überlegungen

  • Sie müssen die Cluster-IAM-Rolle aktualisieren, um die Tag-Propagierung von Kubernetes auf Load Balancer-Ressourcen zu ermöglichen. AWS Weitere Informationen finden Sie unter Benutzerdefiniert AWS Tags für EKS Auto-Ressourcen.

  • Informationen zum Zuordnen von Ressourcen entweder zu EKS Auto Mode oder zum selbstverwalteten AWS Load Balancer Controller finden Sie unter. Migrationsreferenz

  • Informationen zum Beheben von Problemen mit Load Balancern finden Sie unter Fehlerbehebung mit EKS Auto Mode.

  • Weitere Überlegungen zur Verwendung der Load-Balancing-Funktion von EKS Auto Mode finden Sie unter Lastausgleich.

Bei der Migration zu EKS Auto Mode für Load Balancing sind mehrere Änderungen an Service-Annotationen und Ressourcen-Konfigurationen erforderlich. Die folgenden Tabellen zeigen die wichtigsten Unterschiede zwischen der bisherigen und der neuen Implementierung, einschließlich nicht unterstützter Optionen und empfohlener Alternativen.

Service-Annotationen

Vorherige Neu Description

service.beta.kubernetes.io/load-balancer-source-ranges

Nicht unterstützt

spec.loadBalancerSourceRanges für Service verwenden

service.beta.kubernetes.io/aws-load-balancer-type

Nicht unterstützt

spec.loadBalancerClass für Service verwenden

service.beta.kubernetes.io/aws-load-balancer-internal

Nicht unterstützt

Verwenden von service.beta.kubernetes.io/aws-load-balancer-scheme

service.beta.kubernetes.io/aws-load-balancer-proxy-protocol

Nicht unterstützt

Stattdessen service.beta.kubernetes.io/aws-load-balancer-target-group-attributes verwenden

Verschiedene Attribute des Load Balancers

Nicht unterstützt

Verwenden von service.beta.kubernetes.io/aws-load-balancer-attributes

service.beta.kubernetes.io/aws-load-balancer-access-log-enabled

Nicht unterstützt

Stattdessen service.beta.kubernetes.io/aws-load-balancer-attributes verwenden

service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name

Nicht unterstützt

Stattdessen service.beta.kubernetes.io/aws-load-balancer-attributes verwenden

service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix

Nicht unterstützt

Stattdessen service.beta.kubernetes.io/aws-load-balancer-attributes verwenden

service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled

Nicht unterstützt

Stattdessen service.beta.kubernetes.io/aws-load-balancer-attributes verwenden

Um von veralteten Annotation zu Load-Balancer-Attributen zu migrieren, konsolidieren Sie diese Einstellungen in der service.beta.kubernetes.io/aws-load-balancer-attributes-Annotation. Diese Annotation akzeptiert eine durch Kommas getrennte Liste von Schlüssel-Wert-Paaren für verschiedene Load-Balancer-Attribute. Verwenden Sie beispielsweise das folgende Format, um die Zugriffsprotokollierung und den zonenübergreifenden Lastenausgleich anzugeben:

service.beta.kubernetes.io/aws-load-balancer-attributes: access_logs.s3.enabled=true,access_logs.s3.bucket=my-bucket,access_logs.s3.prefix=my-prefix,load_balancing.cross_zone.enabled=true

Dieses konsolidierte Format bietet eine konsistentere und flexiblere Möglichkeit zur Konfiguration von Load Balancer-Attributen und reduziert gleichzeitig die Anzahl der erforderlichen einzelnen Annotationen. Überprüfen Sie Ihre vorhandenen Service-Konfigurationen und aktualisieren Sie sie, um dieses konsolidierte Format zu verwenden.

TargetGroupBinding

Vorherige Neu Description

elbv2.k8s.aws/v1beta1

eks.amazonaws.com/v1

Änderung der API-Version

spec.targetType optional

spec.targetType erforderlich

Explizite Angabe des Zieltyps

spec.networking.ingress.from

Nicht unterstützt

NLB ohne Sicherheitsgruppen wird nicht mehr unterstützt

Hinweis: Um die benutzerdefinierte TargetGroupBinding Funktion verwenden zu können, müssen Sie die Zielgruppe mit dem Tag mit eks:eks-cluster-name dem Clusternamen kennzeichnen, um dem Controller die erforderlichen IAM-Berechtigungen zu gewähren. Beachten Sie, dass der Controller die Zielgruppe löscht, wenn die TargetGroupBinding Ressource oder der Cluster gelöscht wird.