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 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.

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 automatischen Modus von EKS für die Anpassung des NLB-Verhaltens unterstützt werden, einschließlich Internetzugriff, Integritätsprüfungen, SSL/TLS Kündigung und IP-Targeting-Modi.

Wenn Sie einen Kubernetes-Dienst vom Typ LoadBalancer im EKS-Automodus erstellen, 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.

Der automatische Modus von EKS übernimmt standardmäßig die Bereitstellung von Network Load Balancer 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 Knoteninstanzen oder direkt an den Pod weitergeleitet werden soll. IPs 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 HTTP/HTTPS des 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. Kann Subnetz IDs oder Namen verwenden.

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

Legt fest, welche Ports SSL/TLS verwenden sollen.

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 verwandte Ressourcen angewendet werden sollen.

Environment=prod,Team=platform

aws-load-balancer-ip-address-type

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

ipv4 oder dualstack

Überlegungen

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

  • Informationen zum Zuordnen von Ressourcen zum automatischen Modus von EKS oder zum selbstverwalteten Load AWS 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 zu spezifizieren:

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.