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.
Konfiguration des Ausgangs-Routings auf der Kontrollebene
Standardmäßig verwaltet Amazon EKS das ausgehende Netzwerk von der Kubernetes-Steuerungsebene zu den Ressourcen in Ihrer VPC. Verwenden Sie das Ausgangs-Routing auf der Kontrollebene, um dieses Verhalten zu ändern und den Netzwerkpfad selbst zu verwalten. Auf diese Weise haben Sie die volle Kontrolle darüber, wie der Datenverkehr von den Elastic Network Interfaces (ENIs) der Kontrollebene Ihre VPC-Ressourcen erreicht. Sie können das Routing durch Ihre eigenen NAT-Gateways, Firewalls oder Inspection-Appliances durchführen.
Routing-Modi für ausgehenden Verkehr
Amazon EKS unterstützt die folgenden Routing-Modi für ausgehenden Datenverkehr auf der Steuerungsebene:
| Mode | Description |
|---|---|
|
|
Standardverhalten. Amazon EKS verwaltet den Ausgangspfad von den ENIs der Kontrollebene. Sie müssen keine NAT-Gateways oder andere Routing-Infrastrukturen für den Verkehr auf der Steuerungsebene konfigurieren. |
|
|
Sie verwalten den Ausgangspfad von der Steuerungsebene aus in Ihren VPC-Subnetzen. Sie sind dafür verantwortlich, dass die Kontrollebene die erforderlichen Endpunkte (wie Webhook-Server, OIDC-Anbieter und andere Ressourcen) erreichen kann. Sie geben einen Ausgangspfad an, z. B. ein NAT-Gateway, eine NAT-Instance, ein Transit-Gateway oder eine Firewall-Appliance. Sie konfigurieren auch die Routing-Tabelle, die Netzwerk-ACL und die Sicherheitsgruppenregeln, die diesen Datenverkehr zulassen. |
Wichtig
Im CUSTOMER_ROUTED Modus sind Sie dafür verantwortlich, die ordnungsgemäße Netzwerkkonnektivität von der Steuerungsebene aus sicherzustellen. Fehlkonfigurationen in Ihrem VPC-Netzwerk können dazu führen, dass der Betrieb der Steuerungsebene fehlschlägt. Zu diesen Fehlkonfigurationen gehören ein fehlender Ausgangspfad, restriktive Netzwerk-ACLs oder falsche Sicherheitsgruppen. Zu den betroffenen Vorgängen gehören Zugangs-Webhook-Aufrufe und die OIDC-Authentifizierung.
Voraussetzungen
Ihre VPC und Subnetze müssen die standardmäßigen Amazon EKS-Netzwerkanforderungen erfüllen. Weitere Informationen finden Sie unter Amazon-EKS-Netzwerkanforderungen für VPC und Subnetze.
Im CUSTOMER_ROUTED Modus sendet der Kubernetes-API-Server kundenseitigen Datenverkehr über die kontoübergreifenden Netzwerkschnittstellen. Amazon EKS erstellt diese Schnittstellen bereits in Ihren Subnetzen für die Kommunikation zwischen Steuerungsebene und Knoten. Dieser Datenverkehr umfasst Anrufe an Zulassungswebhooks und OIDC-Anbieter. Amazon EKS erstellt keine separaten Netzwerkschnittstellen für ausgehenden Datenverkehr. Dieser Modus ändert die Art und Weise, wie die vorhandenen Schnittstellen verwendet werden. Die Subnetze, die diese Schnittstellen enthalten, müssen die folgenden Anforderungen erfüllen:
-
Die Subnetze müssen eine Route zu den Endpunkten haben, die die Steuerungsebene erreichen muss (z. B. Webhook-Server und OIDC-Anbieter). Für Endpunkte außerhalb Ihrer VPC bedeutet dies in der Regel eine Standardroute zu einem Ausgangsgerät. Die Standardroute ist
0.0.0.0/0für IPv4 und für IPv6.::/0Das Ausgangsgerät kann ein NAT-Gateway, eine NAT-Instance, eine Firewall oder ein Transit-Gateway zu einer zentralen Ausgangs-VPC sein. Die Wahl des Ausgangsgeräts liegt bei Ihnen. Amazon EKS verlangt lediglich, dass der Pfad funktioniert. -
Sicherheitsgruppen auf den kontoübergreifenden Netzwerkschnittstellen müssen ausgehenden Datenverkehr an den für Ihre Workloads erforderlichen Ports zulassen (z. B. Port 443 für Webhooks und OIDC-Anbieter).
-
Netzwerk-ACLs in den Subnetzen müssen ausgehenden Verkehr zulassen und der entsprechende eingehende, kurzlebige Portbereich für den Rückverkehr muss eingehalten werden.
Im CUSTOMER_ROUTED Modus löst die Steuerungsebene Hostnamen mithilfe der DNS-Konfiguration Ihrer VPC auf. Auf diese Weise kann die Steuerungsebene Endpunkte in privaten Hosting-Zonen von Route 53 erreichen und das lokale DNS wird über Route 53 Resolver-Endpunkte weitergeleitet.
-
Ihr VPC-DHCP-Optionssatz muss
AmazonProvidedDNSin der Liste der Domainnamenserver enthalten sein. Dies ist erforderlich, damit die Steuerungsebene DNS-Namen innerhalb der VPC auflösen kann. Wenn Ihr Cluster externe Webhook-Endpunkte oder OIDC-Anbieter mit öffentlichen DNS-Namen verwendet, muss der Resolver auch öffentliche Hostnamen auflösen. Stellen Sie sicher, dass der Resolver sowohl die VPC- als auch die öffentliche DNS-Auflösung verarbeiten kann.
In der folgenden Tabelle ist der Datenverkehr zusammengefasst, den die Steuerungsebene im Modus durch Ihre VPC sendet: CUSTOMER_ROUTED
| Datenverkehr | Ziel | Port | Hinweise |
|---|---|---|---|
|
Webhooks zur Zulassung |
Webhook-Endpunkte (kundenspezifische URLs) |
443 (in der Regel) |
Nur wenn Webhooks konfiguriert sind. Lässt die VPC über Ihr Ausgangsgerät laufen, wenn es sich bei dem Endpunkt um einen externen Endpunkt handelt. |
|
OIDC-Erkennung |
URL des OIDC-Ausstellers |
443 |
Nur wenn ein OIDC-Anbieter konfiguriert ist. Verlässt die VPC über Ihr Ausgangsgerät, wenn der Aussteller extern ist. |
|
Aggregierte API-Server |
Endpunkte des Kunden-API-Servers |
443 |
Nur wenn konfiguriert. Lässt die VPC über Ihr Ausgangsgerät laufen, wenn es sich um einen externen Endpunkt handelt. |
|
Kubelet-API |
IP-Adressen des Worker-Knotens |
10250 |
Dies ist der Verkehr zwischen der Steuerungsebene und Ihren Knoten über das Cluster-ENI; er durchquert nicht Ihr Ausgangsgerät. Es erfordert, dass Routing-Tabellen, Sicherheitsgruppen und Netzwerk-ACLs den Verkehr über die Cluster-ENI zwischen der Steuerungsebene und Ihren Knoten zulassen. |
Anmerkung
Nur der in dieser Tabelle aufgeführte Verkehr ist von Ihrer Ausgangskonfiguration betroffen. EKS-managed Der Datenverkehr auf der Steuerungsebene (z. B. die Kommunikation mit etcd, CloudWatch Logs und internen EKS-Diensten) wird über den AWS verwalteten Netzwerkpfad fortgesetzt und ist von Ihrer VPC-Konfiguration nicht betroffen.
Erstellen Sie einen Cluster mit vom Kunden geroutetem Ausgang
Sie können den Ausgangsmodus der Steuerungsebene angeben, wenn Sie einen neuen Cluster erstellen.
Beispiel
Sie können es ipFamily=ipv6 für IPv6-Cluster verwenden. Wenn Sie IPv6 mit CUSTOMER_ROUTED Modus verwenden, stellen Sie sicher, dass Ihre Subnetze zusätzlich zu einem NAT-Gateway für IPv4-Verkehr über ein Internet-Gateway nur für ausgehenden Verkehr verfügen.
Beispiel
- AWS-Managementkonsole
-
-
Öffnen Sie die Amazon-EKS-Konsole
. -
Wählen Sie Add cluster (Cluster hinzufügen) und dann Create (Erstellen) aus.
-
Wählen Sie auf der Seite Netzwerk für Control plane Egress die Option Customer routed aus.
-
Vervollständigen Sie die restliche Cluster-Konfiguration und wählen Sie Create aus.
-
Für AWS CloudFormation, setzen Sie ControlPlaneEgressMode: CUSTOMER_ROUTED sich einResourcesVpcConfig. Terraform-Unterstützung für dieses Feld wird in einer zukünftigen Version des AWS Anbieters verfügbar sein.
Anmerkung
Der Wechsel zu CUSTOMER_ROUTED ist ein Einbahnvorgang. Nachdem Sie den vom Kunden geleiteten ausgehenden Verkehr auf einem Cluster aktiviert haben, können Sie nicht mehr darauf zurückgreifen. AWS_MANAGED
Aktualisieren eines vorhandenen Clusters
Sie können den Ausgangsmodus der Kontrollebene auf einem vorhandenen Cluster mithilfe des Befehls ändern. update-cluster-config
aws eks update-cluster-config \ --name my-cluster \ --resources-vpc-config "controlPlaneEgressMode=CUSTOMER_ROUTED" \ --region region-code
Überwachen Sie den Aktualisierungsstatus:
aws eks describe-update \ --name my-cluster \ --update-id update-id \ --region region-code
Das Update ist abgeschlossen, wenn der Status angezeigt wirdSuccessful. Der Aktualisierungstyp istControlPlaneEgressUpdate. Das Update wird in der Regel innerhalb von 10 Minuten abgeschlossen.
Wichtig
Das Umschalten auf CUSTOMER_ROUTED ist ein Einwegvorgang. Nachdem Sie den vom Kunden geleiteten ausgehenden Verkehr auf einem Cluster aktiviert haben, können Sie nicht mehr darauf zurückgreifen. AWS_MANAGED
Vergewissern Sie sich vor dem Wechsel, dass Ihre VPC die Anforderungen unter erfüllt. Voraussetzungen Wenn die Steuerungsebene nach dem Update die Konnektivität zu den erforderlichen Endpunkten verliert, können Vorgänge wie Zugangs-Webhook-Aufrufe und die OIDC-Authentifizierung fehlschlagen.
Überlegungen zu IPv6
Wenn Sie einen IPv6-Cluster mit vom Kunden geroutetem Ausgang ausführen, müssen Sie sowohl IPv4- als auch IPv6-Ausgangspfade konfigurieren.
Wenn Sie einen IPv6-Cluster () mit Ausgang ausführen: ipFamily=ipv6 CUSTOMER_ROUTED
-
Den ENIs der Steuerungsebene werden sowohl IPv4- als auch IPv6-Adressen zugewiesen.
-
Sie müssen sowohl IPv4- als auch IPv6-Ausgangspfade konfigurieren:
-
IPv4: eine Standardroute (
0.0.0.0/0) zu Ihrem Ausgangsgerät (z. B. ein NAT-Gateway). -
IPv6: eine
::/0Route zu einem IPv6-Ausgangsgerät (z. B. ein Internet-Gateway nur für ausgehenden Verkehr).
-
-
Sicherheitsgruppen und NACLs müssen den Datenverkehr auf beiden IP-Versionen zulassen.
-
Wenn dies bei Ihrem OIDC-Anbieter oder Ihren Webhook-Endpunkten der Fall ist, stellen Sie sicher IPv4-only, dass IPv4-NAT funktionsfähig ist.
Überlegungen
Beachten Sie die folgenden Punkte, wenn Sie den vom Kunden geleiteten Ausgang auf der Steuerungsebene verwenden:
-
Ihre Verantwortung: Im
CUSTOMER_ROUTEDModus besitzen Sie den Netzwerkpfad von der Steuerungsebene zu Ihren externen Endpunkten. Wenn dieser Pfad unterbrochen wird, können Vorgänge auf der Steuerungsebene, die davon abhängen (z. B. Zugangs-Webhook-Aufrufe und OIDC-Authentifizierung), fehlschlagen, bis Sie die Konnektivität wiederhergestellt haben. -
VPC-internal Der Datenverkehr ist nicht betroffen: Der Verkehr zwischen der Steuerungsebene und Ihren Knoten (z. B. der Kubelet-API auf Port 10250) über das Cluster-ENI hängt nicht von Ihrem Ausgangsgerät ab.
-
EKS-Automatikmodus: Das Routing des ausgehenden Stroms auf der Steuerungsebene funktioniert sowohl auf Standard- als auch auf Auto-Modus-Clustern auf die gleiche Weise, da die Architektur der Steuerungsebene identisch ist.
-
EKS-Funktionen: EKS-Funktionen (wie ArgoCD, ACK und KRO) werden in einer separaten verwalteten Infrastruktur ausgeführt. AWS Der Datenverkehr von EKS Capabilities-Controllern wird durch diese Funktion nicht durch Ihre VPC geleitet.
-
Beobachtbarkeit: Wenn Sie VPC Flow Logs in Ihren VPC- oder Cluster-Subnetzen aktivieren, können Sie den ausgehenden Datenverkehr beobachten, der durch Ihre VPC geleitet wird. Dazu gehören Aufrufe von Webhook- und OIDC-Endpunkten. Wenn VPC Flow Logs nicht aktiviert sind, wird dieser Datenverkehr nicht protokolliert.
IAM-Bedingungsschlüssel
Amazon EKS unterstützt den eks:controlPlaneEgressMode Bedingungsschlüssel. Sie können diesen Schlüssel in IAM-Richtlinien oder Service Control Policies (SCPs) verwenden, um zu steuern, welche Anrufer im Ausgangsmodus angeben können, wenn sie Cluster erstellen oder aktualisieren.
Der Bedingungsschlüssel gilt für die folgenden Aktionen:
-
eks:CreateCluster -
eks:UpdateClusterConfig
Der folgende SCP verweigert beispielsweise Clustererstellung und Konfigurationsupdates, sofern der Aufrufer nichts anderes angibt: CUSTOMER_ROUTED
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireCustomerRoutedControlPlane", "Effect": "Deny", "Action": [ "eks:CreateCluster", "eks:UpdateClusterConfig" ], "Resource": "*", "Condition": { "StringNotEquals": { "eks:controlPlaneEgressMode": "CUSTOMER_ROUTED" } } } ] }
Verwenden Sie diese Richtlinie, um durchzusetzen, dass alle neuen und aktualisierten Cluster in Ihrer Organisation den CUSTOMER_ROUTED Ausgangsmodus verwenden.
Konfiguration des OIDC-Anbieters
Wenn Ihr Cluster einen OIDC-Identitätsanbieter verwendet, muss die Steuerungsebene in der Lage sein, den OIDC-Discovery-Endpunkt über HTTPS (Port 443) zu erreichen. Dies gilt für IAM-Rollen für Dienstkonten oder einen OIDC-Identitätsanbieter, den Sie für die Clusterauthentifizierung zuordnen. Es gibt keine OIDC-specific Einstellung. Es wird derselbe Ausgangspfad verwendet, den Sie unter Voraussetzungen konfigurieren. Voraussetzungen Um es zuzulassen:
-
Vergewissern Sie sich, dass die Subnetze der Steuerungsebene über eine Route verfügen, die den OIDC-Endpunkt abdeckt (in der Regel eine Standardroute zu Ihrem Ausgangsgerät, z. B. einem NAT-Gateway).
-
Stellen Sie sicher, dass die Cluster-Sicherheitsgruppe ausgehendes TCP 443 zulässt.
-
Stellen Sie sicher, dass die Subnetz-NACLs ausgehenden TCP 443- und eingehenden kurzlebigen Rückverkehr zulassen (Ports 1024—65535).
Der Endpunkt hängt von Ihrem Anbieter ab:
-
Amazon EKS OIDC-Anbieter (Standard):
oidc.eks.region-code.amazonaws.com -
Benutzerdefinierter OIDC-Anbieter: Die Aussteller-URL, die Sie konfiguriert haben.
Wenn die OIDC-Authentifizierung fehlschlägt, finden Sie Schritte zur Fehlerbehebung unter. OIDC-Anbieter nicht erreichbar
Überprüfen Sie die Konnektivität
Stellen Sie nach der Konfiguration des CUSTOMER_ROUTED Ausgangs sicher, dass die Steuerungsebene Ihre VPC-Ressourcen erreichen kann:
-
Überprüfen Sie den aktuellen Ausgangsmodus: Vergewissern Sie sich, dass der Cluster den erwarteten Modus verwendet.
aws eks describe-cluster --name my-cluster \ --query "cluster.resourcesVpcConfig.controlPlaneEgressMode" \ --region region-code -
Überprüfen Sie den Cluster-Status: Der Cluster sollte sich im
ACTIVEStatus befinden.aws eks describe-cluster --name my-cluster --query "cluster.status" --region region-code -
Testen Sie die Webhook-Konnektivität: Wenn Sie Zugangswebhooks konfiguriert haben, erstellen Sie eine Ressource, die den Webhook auslöst, und überprüfen Sie, ob er erfolgreich ist.
-
Überprüfen Sie die Knotenregistrierung: Starten Sie einen Knoten und bestätigen Sie, dass er erfolgreich dem Cluster beitritt.
kubectl get nodes -
Überprüfen Sie OIDC: Wenn Sie IAM-Rollen für Dienstkonten (IRSA) verwenden, stellen Sie sicher, dass Pods ihre IAM-Rollen übernehmen können.
Informationen zur Behebung häufig auftretender Probleme finden Sie unter. Behebung von Ausgangsproblemen auf der Steuerungsebene
📝 Bearbeiten Sie diese Seite auf GitHub