Schließen Sie mehrere Netzwerkschnittstellen an Pods an - Amazon EKS

Hilf mit, diese Seite zu verbessern

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.

Wenn Sie zu diesem Benutzerhandbuch beitragen möchten, 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.

Schließen Sie mehrere Netzwerkschnittstellen an Pods an

Standardmäßig weist das Amazon VPC CNI-Plugin jedem Pod eine IP-Adresse zu. Diese IP-Adresse ist mit einer elastic network interface verbunden, die den gesamten eingehenden und ausgehenden Datenverkehr für den Pod verarbeitet. Um die Bandbreite und die Leistung der Paket-pro-Sekunde-Rate zu erhöhen, können Sie die Multi-NIC-Funktion der VPC-CNI verwenden, um einen mehrfach vernetzten Pod zu konfigurieren. Ein mehrfach vernetzter Pod ist ein einzelner Kubernetes-Pod, der mehrere Netzwerkschnittstellen (und mehrere IP-Adressen) verwendet. Wenn Sie einen mehrfach vernetzten Pod ausführen, können Sie dessen Anwendungsdatenverkehr mithilfe gleichzeitiger Verbindungen auf mehrere Netzwerkschnittstellen verteilen. Dies ist besonders nützlich für Anwendungsfälle wie künstliche Intelligenz (KI), Machine Learning (ML) und High Performance Computing (HPC).

Das folgende Diagramm zeigt einen mehrfach vernetzten Pod, der auf einem Worker-Knoten ausgeführt wird und in dem mehrere Netzwerkschnittstellenkarten (NICs) verwendet werden.

Ein mehrfach vernetzter Pod mit zwei Netzwerkschnittstellen, an die eine Netzwerkschnittstelle mit ENA und eine Netzwerkschnittstelle mit ENA und EFA angeschlossen sind

Hintergrund

Bei Amazon EC2 ist eine elastic network interface eine logische Netzwerkkomponente in einer VPC, die eine virtuelle Netzwerkkarte darstellt. Bei vielen EC2 Instance-Typen teilen sich die Netzwerkschnittstellen hardwaremäßig eine einzige Netzwerkschnittstellenkarte (NIC). Diese einzelne Netzwerkkarte hat eine maximale Bandbreite und eine maximale Paket-pro-Sekunde-Rate.

Wenn die Multi-NIC-Funktion aktiviert ist, weist das VPC-CNI IP-Adressen nicht in großen Mengen zu, was standardmäßig der Fall ist. Stattdessen weist das VPC-CNI einer Netzwerkschnittstelle auf jeder Netzwerkkarte bei Bedarf eine IP-Adresse zu, wenn ein neuer Pod gestartet wird. Dieses Verhalten reduziert die Rate der Erschöpfung von IP-Adressen, die durch die Verwendung mehrfach vernetzter Pods erhöht wird. Da das VPC-CNI IP-Adressen bei Bedarf zuweist, kann es länger dauern, bis Pods auf Instances mit aktivierter Multi-NIC-Funktion gestartet werden.

Überlegungen

  • Stellen Sie sicher, dass auf Ihrem Kubernetes-Cluster die VPC CNI-Version und höher ausgeführt wird. 1.20.0 Die Multi-NIC-Funktion ist nur in 1.20.0 der Version von VPC CNI oder höher verfügbar.

  • Aktivieren Sie die ENABLE_MULTI_NIC Umgebungsvariable im VPC CNI-Plugin. Sie können den folgenden Befehl ausführen, um die Variable festzulegen und eine Bereitstellung von zu starten. DaemonSet

    • kubectl set env daemonset aws-node -n kube-system ENABLE_MULTI_NIC=true

  • Stellen Sie sicher, dass Sie Worker-Knoten mit mehreren Netzwerkschnittstellenkarten (NICs) erstellen. Eine Liste der EC2 Instances mit mehreren Netzwerkschnittstellenkarten finden Sie unter Netzwerkkarten im EC2 Amazon-Benutzerhandbuch.

  • Wenn die Multi-NIC-Funktion aktiviert ist, weist das VPC-CNI IP-Adressen nicht in großen Mengen zu, was standardmäßig der Fall ist. Da das VPC-CNI IP-Adressen bei Bedarf zuweist, kann es länger dauern, bis Pods auf Instances mit aktivierter Multi-NIC-Funktion gestartet werden. Weitere Informationen finden Sie im vorhergehenden Abschnitt Hintergrund.

  • Wenn die Multi-NIC-Funktion aktiviert ist, verfügen Pods standardmäßig nicht über mehrere Netzwerkschnittstellen. Sie müssen jeden Workload für die Verwendung von Multi-NIC konfigurieren. Fügen Sie die k8s.amazonaws.com/nicConfig: multi-nic-attachment Anmerkung zu Workloads hinzu, die über mehrere Netzwerkschnittstellen verfügen sollten.

Überlegungen zu IPv6

  • Benutzerdefinierte IAM-Richtlinie — Erstellen und verwenden Sie für IPv6 Cluster die folgende benutzerdefinierte IAM-Richtlinie für die VPC-CNI. Diese Richtlinie ist spezifisch für Multi-NIC. Weitere allgemeine Informationen zur Verwendung des VPC-CNI mit IPv6 Clustern finden Sie unter. Erfahren Sie mehr über IPv6 Adressen für Cluster, Pods und Dienste

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AmazonEKSCNIPolicyIPv6MultiNIC", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeInstances", "ec2:AssignIpv6Addresses", "ec2:DetachNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTags", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DeleteNetworkInterface", "ec2:DescribeInstanceTypes", "ec2:UnassignIpv6Addresses", "ec2:AttachNetworkInterface", "ec2:DescribeSubnets" ], "Resource": "*" }, { "Sid": "AmazonEKSCNIPolicyENITagIPv6MultiNIC", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:network-interface/*" } ] }
  • IPv6Übergangsmechanismus nicht verfügbar — Wenn Sie die Multi-NIC-Funktion verwenden, weist das VPC-CNI Pods auf einem IPv4 Cluster keine Adresse zu. IPv6 Andernfalls weist das VPC-CNI jedem Pod eine hostlokale IPv4 Adresse zu, sodass ein Pod mit externen IPv4 Ressourcen in einer anderen Amazon-VPC oder im Internet kommunizieren kann.

Verwendung

Nachdem die Multi-NIC-Funktion in der VPC-CNI aktiviert wurde und die aws-node Pods neu gestartet wurden, können Sie jeden Workload so konfigurieren, dass er mehrfach vernetzt ist. Das folgende Beispiel für eine YAML-Konfiguration mit der erforderlichen Anmerkung:

apiVersion: apps/v1 kind: Deployment metadata: name: orders-deployment namespace: ecommerce labels: app: orders spec: replicas: 3 selector: matchLabels: app: orders template: metadata: annotations: k8s.amazonaws.com/nicConfig: multi-nic-attachment labels: app: orders spec: ...

Häufig gestellte Fragen

1. Was ist eine Netzwerkschnittstellenkarte (NIC)?

Eine Netzwerkschnittstellenkarte (NIC), auch einfach Netzwerkkarte genannt, ist ein physisches Gerät, das die Netzwerkkonnektivität für die zugrunde liegende Cloud-Computing-Hardware ermöglicht. Bei modernen EC2 Servern bezieht sich dies auf die Nitro-Netzwerkkarte. Ein Elastic Network Interface (ENI) ist eine virtuelle Darstellung dieser zugrunde liegenden Netzwerkkarte.

Einige EC2 Instance-Typen verfügen über mehrere, NICs um die Bandbreite und die Leistung der Paketrate zu erhöhen. In solchen Fällen können Sie den zusätzlichen Netzwerkkarten sekundäre ENIs Karten zuweisen. Beispielsweise kann ENI #1 als Schnittstelle für die Netzwerkkarte dienen, die an den Netzwerkkartenindex 0 angeschlossen ist, wohingegen ENI #2 als Schnittstelle für die Netzwerkkarte dienen kann, die an einen separaten Netzwerkkartenindex angeschlossen ist.

2. Was ist ein Pod mit mehreren Häusern?

Ein mehrfach vernetzter Pod ist ein einzelner Kubernetes-Pod mit mehreren Netzwerkschnittstellen (und implizit mehreren IP-Adressen). Jede Pod-Netzwerkschnittstelle ist mit einem Elastic Network Interface (ENI) verknüpft. Dabei ENIs handelt es sich um logische Repräsentationen einzelner Knoten NICs auf dem zugrunde liegenden Worker-Knoten. Bei mehreren Netzwerkschnittstellen verfügt ein mehrfach vernetzter Pod über zusätzliche Datenübertragungskapazität, was auch die Datenübertragungsrate erhöht.

Wichtig

Das VPC CNI kann mehrfach vernetzte Pods nur für Instance-Typen konfigurieren, die mehrere haben. NICs

3. Warum sollte ich diese Funktion verwenden?

Wenn Sie die Netzwerkleistung Ihrer Kubernetes-basierten Workloads skalieren müssen, können Sie die Multi-NIC-Funktion verwenden, um mehrfach vernetzte Pods auszuführen, die eine Schnittstelle zu allen NICs Basisgeräten herstellen, an die ein ENA-Gerät angeschlossen ist. Die Nutzung zusätzlicher Netzwerkkarten erhöht die Bandbreitenkapazität und die Leistung der Paketrate in Ihren Anwendungen, indem der Anwendungsdatenverkehr auf mehrere gleichzeitige Verbindungen verteilt wird. Dies ist besonders nützlich für Anwendungsfälle wie künstliche Intelligenz (KI), Machine Learning (ML) und High Performance Computing (HPC).

4. Wie verwende ich diese Funktion?

  1. Zunächst müssen Sie sicherstellen, dass Ihr Kubernetes-Cluster VPC CNI Version 1.20 oder höher verwendet. Die Schritte zur Aktualisierung des VPC-CNI als EKS-Add-on finden Sie unter. Aktualisieren Sie das Amazon VPC CNI (Amazon EKS-Add-on)

  2. Anschließend müssen Sie die Multi-NIC-Unterstützung in der VPC-CNI mithilfe der ENABLE_MULTI_NIC Umgebungsvariablen aktivieren.

  3. Anschließend müssen Sie sicherstellen, dass Sie Knoten mit mehreren Netzwerkkarten erstellen und verbinden. Eine Liste der EC2 Instance-Typen mit mehreren Netzwerkkarten finden Sie unter Netzwerkkarten im EC2 Amazon-Benutzerhandbuch.

  4. Schließlich konfigurieren Sie jeden Workload so, dass er entweder mehrere Netzwerkschnittstellen (mehrfach vernetzte Pods) oder eine einzelne Netzwerkschnittstelle verwendet.

5. Wie konfiguriere ich meine Workloads so, dass sie mehrere NICs auf einem unterstützten Worker-Node verwenden?

Um mehrfach vernetzte Pods zu verwenden, müssen Sie die folgende Anmerkung hinzufügen:. k8s.amazonaws.com/nicConfig: multi-nic-attachment Dadurch wird eine ENI von jeder NIC in der zugrunde liegenden Instance an den Pod angehängt (Eins-zu-Viele-Zuordnung zwischen einem Pod und dem NICs).

Wenn diese Anmerkung fehlt, geht die VPC-CNI davon aus, dass Ihr Pod nur eine Netzwerkschnittstelle benötigt, und weist ihm eine IP von einer ENI auf einer beliebigen verfügbaren Netzwerkkarte zu.

6. Welche Netzwerkschnittstellenadapter werden mit dieser Funktion unterstützt?

Sie können jeden Netzwerkschnittstellenadapter verwenden, wenn mindestens eine ENA an die zugrunde liegende Netzwerkkarte für IP-Verkehr angeschlossen ist. Weitere Informationen zu ENA finden Sie unter Elastic Network Adapter (ENA) im EC2 Amazon-Benutzerhandbuch.

Unterstützte Netzwerkgerätekonfigurationen:

  • ENA-Schnittstellen bieten alle herkömmlichen IP-Netzwerk- und Routing-Funktionen, die zur Unterstützung von IP-Netzwerken für eine VPC erforderlich sind. Weitere Informationen finden Sie unter Enhanced Networking with ENA auf Ihren EC2 Instances aktivieren.

  • EFA-Schnittstellen (EFA mit ENA) bieten sowohl das ENA-Gerät für IP-Netzwerke als auch das EFA-Gerät für Kommunikation mit niedriger Latenz und hohem Durchsatz.

Wichtig

Wenn an eine Netzwerkkarte nur ein EFA-Only-Adapter angeschlossen ist, überspringt der VPC-CNI ihn bei der Bereitstellung von Netzwerkkonnektivität für einen mehrfach vernetzten Pod. Wenn Sie jedoch einen reinen EFA-Adapter mit einem ENA-Adapter auf einer Netzwerkkarte kombinieren, wird der VPC-CNI auch ENIs auf diesem Gerät verwaltet. Informationen zur Verwendung von reinen EFA-Schnittstellen mit EKS-Clustern finden Sie unter. Führen Sie Machine-Learning-Schulungen auf Amazon EKS mit Elastic Fabric Adapter durch

7. Kann ich sehen, ob ein Knoten in meinem Cluster ENA-Unterstützung bietet?

Ja, Sie können die AWS CLI oder EC2 API verwenden, um Netzwerkinformationen über eine EC2 Instance in Ihrem Cluster abzurufen. Hier finden Sie Informationen darüber, ob die Instance ENA-Unterstützung bietet oder nicht. Im folgenden Beispiel ersetzen Sie es <your-instance-id> durch die EC2 Instanz-ID eines Knotens.

AWS CLI-Beispiel:

aws ec2 describe-instances --instance-ids <your-instance-id> --query "Reservations[].Instances[].EnaSupport"

Beispielausgabe:

[ true ]

8. Kann ich die verschiedenen IP-Adressen sehen, die einem Pod zugeordnet sind?

Nein, nicht einfach. Sie können es jedoch vom Knoten nsenter aus verwenden, um gängige Netzwerktools wie z. B. auszuführen ip route show und die zusätzlichen IP-Adressen und Schnittstellen einzusehen.

9. Kann ich die Anzahl der Netzwerkschnittstellen für meine Pods kontrollieren?

Nein. Wenn Ihr Workload so konfiguriert ist, dass mehrere NICs auf einer unterstützten Instance verwendet werden, erhält ein einzelner Pod automatisch eine IP-Adresse von jeder Netzwerkkarte auf der Instance. Alternativ wird bei Pods mit nur einem Homed eine Netzwerkschnittstelle an eine Netzwerkschnittstelle auf der Instance angeschlossen.

Wichtig

Netzwerkkarten, an die nur ein reines EFA-Gerät angeschlossen ist, werden von der VPC-CNI übersprungen.

10. Kann ich meine Pods so konfigurieren, dass sie eine bestimmte Netzwerkkarte verwenden?

Nein, das wird nicht unterstützt. Wenn ein Pod über die entsprechende Anmerkung verfügt, konfiguriert ihn die VPC-CNI automatisch so, dass er jede Netzwerkkarte mit einem ENA-Adapter auf dem Worker-Knoten verwendet.

11. Funktioniert diese Funktion mit den anderen VPC CNI-Netzwerkfunktionen?

Ja, die Multi-NIC-Funktion im VPC CNI funktioniert sowohl mit benutzerdefinierten Netzwerken als auch mit erweiterter Subnetzerkennung. Die mehrfach vernetzten Pods verwenden jedoch keine benutzerdefinierten Subnetze oder Sicherheitsgruppen. Stattdessen weist das VPC-CNI den mehrfach vernetzten Pods mit derselben Subnetz- und Sicherheitsgruppenkonfiguration wie der Knoten IP-Adressen und Netzwerkschnittstellen zu. Weitere Informationen zu benutzerdefinierten Netzwerken finden Sie unter. Stellen Sie Pods in alternativen Subnetzen mit benutzerdefiniertem Netzwerk bereit

Die Multi-NIC-Funktion im VPC-CNI funktioniert nicht mit Sicherheitsgruppen für Pods und kann auch nicht mit diesen kombiniert werden.

12. Kann ich mit dieser Funktion Netzwerkrichtlinien verwenden?

Ja, Sie können Kubernetes-Netzwerkrichtlinien mit Multi-NIC verwenden. Kubernetes-Netzwerkrichtlinien beschränken den Netzwerkverkehr zu und von Ihren Pods. Weitere Informationen zum Anwenden von Netzwerkrichtlinien mit dem VPC-CNI finden Sie unter. Beschränken Sie den Pod-Verkehr mit Kubernetes-Netzwerkrichtlinien

13. Ist die Multi-NIC-Unterstützung im EKS-Automatikmodus aktiviert?

Multi-NIC wird für EKS-Auto-Modus-Cluster nicht unterstützt.