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.
Konfiguration des Ausgangsroutings auf der Steuerungsebene
Standardmäßig verwaltet Amazon EKS das Ausgangsnetzwerk von der Kubernetes-Steuerebene zu den Ressourcen in Ihrer VPC. Verwenden Sie das Routing für ausgehenden Datenverkehr 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 Steuerungsebene Ihre VPC-Ressourcen erreicht. Sie können das Routing über Ihre eigenen NAT-Gateways, Firewalls oder Inspektions-Appliances durchführen.
Routing-Modi für ausgehenden Datenverkehr
Amazon EKS unterstützt die folgenden Routing-Modi für ausgehenden Ausgang auf der Kontrollebene:
| Mode | Description |
|---|---|
|
|
Standardverhalten. Amazon EKS verwaltet den Ausgangspfad von den ENIs auf der Steuerungsebene. Sie müssen keine NAT-Gateways oder andere Routing-Infrastrukturen für den Verkehr auf der Kontrollebene konfigurieren. |
|
|
Sie verwalten den Ausgangspfad von der Steuerungsebene in Ihren VPC-Subnetzen aus. 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 Zugangsdaten, Webhook-Aufrufe und 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 ausgehenden Datenverkehr über die kontenübergreifenden Netzwerkschnittstellen. Amazon EKS erstellt diese Schnittstellen bereits in Ihren Subnetzen für die Kommunikation zwischen der Kontrollebene und den Knoten. Dieser Datenverkehr umfasst Aufrufe an Zugangswebhooks 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 über eine Route zu den Endpunkten verfügen, die die Steuerungsebene erreichen muss (z. B. Webhook-Server und OIDC-Anbieter). Für Endpunkte außerhalb Ihrer VPC bedeutet dies normalerweise 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 VPC. Sie haben die Wahl des Ausgangsgeräts. Amazon EKS setzt lediglich voraus, dass der Pfad funktioniert. -
Sicherheitsgruppen auf den kontoübergreifenden Netzwerkschnittstellen müssen ausgehenden Datenverkehr an Ports zulassen, die für Ihre Workloads erforderlich sind (z. B. Port 443 für Webhooks und OIDC-Anbieter).
-
Netzwerk-ACLs in den Subnetzen müssen ausgehenden Datenverkehr und den entsprechenden eingehenden kurzlebigen Portbereich für Rückverkehr zulassen.
Im CUSTOMER_ROUTED Modus löst die Kontrollebene Hostnamen mithilfe der DNS-Konfiguration Ihrer VPC auf. Dadurch kann die Kontrollebene Endpunkte in privaten Hosting-Zonen von Route 53 und lokales DNS erreichen, das über Route 53 Resolver-Endpunkte weitergeleitet wird.
-
Ihr VPC-DHCP-Optionssatz muss
AmazonProvidedDNSin der Liste der Domainnamenserver enthalten sein. Dies ist erforderlich, damit die Kontrollebene 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 wird der Verkehr zusammengefasst, den die Kontrollebene über Ihre VPC im CUSTOMER_ROUTED Modus sendet:
| Datenverkehr | Ziel | Port | Hinweise |
|---|---|---|---|
|
Webhooks für die Zulassung |
Webhook-Endpunkte (vom Kunden definierte URLs) |
443 (normalerweise) |
Nur wenn Webhooks konfiguriert sind. Verlässt die VPC über Ihr Ausgangsgerät, wenn der Endpunkt extern ist. |
|
OIDC-Entdeckung |
URL des OIDC-Ausstellers |
443 |
Nur wenn ein OIDC-Anbieter konfiguriert ist. Verlässt die VPC über Ihr Ausgangsgerät, wenn der Emittent extern ist. |
|
Aggregierte API-Server |
API-Server-Endpunkte für Kunden |
443 |
Nur wenn konfiguriert. Verlässt die VPC über Ihr Ausgangsgerät, wenn der Endpunkt extern ist. |
|
Kubelet-API |
IP-Adressen von Worker-Knoten |
10250 |
Dabei handelt es sich um Datenverkehr zwischen der Steuerungsebene und Ihren Knoten über das Cluster-ENI. Er durchläuft nicht Ihr Ausgangsgerät. Es erfordert, dass Routing-Tabellen, Sicherheitsgruppen und Netzwerk-ACLs den Datenverkehr über das Cluster-ENI zwischen der Kontrollebene und Ihren Knoten zulassen. |
Anmerkung
Nur der in dieser Tabelle aufgeführte Verkehr ist von Ihrer Ausgangskonfiguration betroffen. EKS-managed Der Verkehr auf der Kontrollebene (wie die Kommunikation mit etcd, CloudWatch Logs und internen EKS-Diensten) wird über den AWS verwalteten Netzwerkpfad weitergeführt und wird von Ihrer VPC-Konfiguration nicht beeinflusst.
Erstellen Sie einen Cluster mit vom Kunden weitergeleitetem Ausgang
Sie können den Ausgangsmodus der Steuerungsebene angeben, wenn Sie einen neuen Cluster erstellen.
Beispiel
Sie können ihn 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 für ausgehenden Datenverkehr 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 Netzwerkseite für Control Plane Egress die Option Customer routed aus.
-
Schließen Sie die verbleibende Clusterkonfiguration ab und wählen Sie Create.
-
Für AWS CloudFormation, geben Sie ein ControlPlaneEgressMode: CUSTOMER_ROUTEDResourcesVpcConfig. Terraform-Unterstützung für dieses Feld wird in einer future Version des AWS Anbieters verfügbar sein.
Anmerkung
Der Wechsel zu CUSTOMER_ROUTED ist eine Einwegoperation. Nachdem Sie den vom Kunden gerouteten ausgehenden Datenverkehr auf einem Cluster aktiviert haben, können Sie nicht mehr zu. AWS_MANAGED
Aktualisieren eines vorhandenen Clusters
Sie können den Ausgangsmodus der Steuerungsebene 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 ist in der Regel innerhalb von 10 Minuten abgeschlossen.
Wichtig
Das Umschalten auf CUSTOMER_ROUTED ist eine Einwegoperation. Nachdem Sie den vom Kunden gerouteten ausgehenden Datenverkehr auf einem Cluster aktiviert haben, können Sie nicht mehr zu. AWS_MANAGED
Stellen Sie vor dem Wechsel sicher, dass Ihre VPC die Anforderungen in Voraussetzungen erfüllt. Wenn die Steuerungsebene nach dem Update die Konnektivität zu den erforderlichen Endpunkten verliert, können Vorgänge wie Webhook-Aufrufe für die Zulassung und die OIDC-Authentifizierung fehlschlagen.
Überlegungen zu IPv6
Wenn Sie einen IPv6-Cluster mit vom Kunden weitergeleitetem 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 Datenverkehr).
-
-
Sicherheitsgruppen und NACLs müssen Datenverkehr auf beiden IP-Versionen zulassen.
-
Wenn Ihr OIDC-Anbieter oder Ihre Webhook-Endpunkte dies tun, stellen Sie sicher IPv4-only, dass IPv4-NAT funktioniert.
Überlegungen
Beachten Sie die folgenden Punkte, wenn Sie den vom Kunden gerouteten Ausgang auf der Kontrollebene verwenden:
-
Ihre Verantwortung: Im
CUSTOMER_ROUTEDModus besitzen Sie den Netzwerkpfad von der Steuerungsebene zu Ihren externen Endpunkten. Wenn dieser Pfad unterbrochen wird, können Operationen auf der Kontrollebene, die davon abhängen (z. B. Webhook-Aufrufe für die Zulassung und OIDC-Authentifizierung), fehlschlagen, bis Sie die Konnektivität wiederhergestellt haben. -
VPC-internal Der Datenverkehr ist nicht betroffen: Der Datenverkehr 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 Zugangs auf der Kontrollebene funktioniert auf Clustern im Standard- und im automatischen Modus 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 mit dieser Funktion nicht durch Ihre VPC geleitet.
-
Beobachtbarkeit: Wenn Sie VPC Flow Logs in Ihren VPC- oder Cluster-Subnetzen aktivieren, können Sie den ausgehenden Verkehr beobachten, der durch Ihre VPC geleitet wird. Dazu gehören Aufrufe an Webhook- und OIDC-Endpunkte. 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, welchen Ausgangsmodus Anrufer 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 die Clustererstellung und Konfigurationsupdates, sofern der Aufrufer nicht Folgendes 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 zu erzwingen, 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-Erkennungsendpunkt über HTTPS (Port 443) zu erreichen. Dies gilt für IAM-Rollen für Dienstkonten oder für 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 konfiguriert haben. 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).
-
Vergewissern Sie sich, dass die Cluster-Sicherheitsgruppe ausgehendes TCP 443 zulässt.
-
Vergewissern Sie sich, dass die Subnetz-NACLs ausgehenden TCP 443 und eingehenden kurzlebigen Rückverkehr (Ports 1024—65535) zulassen.
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 die Schritte zur Fehlerbehebung unter. OIDC-Anbieter nicht erreichbar
Überprüfen Sie die Konnektivität
Stellen Sie nach der Konfiguration von CUSTOMER_ROUTED Egress sicher, dass die Steuerungsebene Ihre VPC-Ressourcen erreichen kann:
-
Überprüfen Sie den aktuellen Ausgangsmodus: Stellen Sie sicher, 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 Clusterstatus: 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 vergewissern Sie sich, dass er erfolgreich ist.
-
Überprüfen Sie die Knotenregistrierung: Starten Sie einen Knoten und stellen Sie sicher, 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äufiger Probleme finden Sie unter. Behebung von Ausgangsproblemen auf der Steuerungsebene
📝 Bearbeiten Sie diese Seite auf GitHub