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.
Bewährte Methoden für Netzwerke
Tipp
Lernen Sie in Amazon EKS-Workshops
Es ist wichtig, das Kubernetes-Netzwerk zu verstehen, um Ihren Cluster und Ihre Anwendungen effizient zu betreiben. Pod-Netzwerke, auch Cluster-Netzwerke genannt, sind das Zentrum des Kubernetes-Netzwerks. Kubernetes unterstützt Container Network Interface
Amazon EKS unterstützt offiziell das Amazon Virtual Private Cloud (VPC) CNI-Plugin zur Implementierung des Kubernetes Pod-Netzwerks. Das VPC CNI bietet eine native Integration mit AWS VPC und arbeitet im Underlay-Modus. Im Underlay-Modus befinden sich Pods und Hosts auf derselben Netzwerkebene und teilen sich den Netzwerk-Namespace. Die IP-Adresse des Pods ist aus Cluster- und VPC-Sicht konsistent.
In diesem Handbuch wird das Amazon VPC Container Network Interface
Amazon EKS läuft Upstream-Kubernetes und ist als Kubernetes-konform zertifiziert. Obwohl Sie alternative CNI-Plugins verwenden können, enthält dieses Handbuch keine Empfehlungen für die Verwaltung alternativer CNIs. In der EKS Alternate CNI-Dokumentation finden Sie eine Liste von Partnern und Ressourcen für die effektive Verwaltung alternativer CNIs.
Kubernetes-Netzwerkmodell
Kubernetes stellt die folgenden Anforderungen an Cluster-Netzwerke:
-
Pods, die auf demselben Knoten geplant sind, müssen in der Lage sein, mit anderen Pods zu kommunizieren, ohne NAT (Network Address Translation) zu verwenden.
-
Alle System-Daemons (Hintergrundprozesse, z. B. Kubelet
), die auf einem bestimmten Knoten laufen, können mit den Pods kommunizieren, die auf demselben Knoten laufen. -
Pods, die das Host-Netzwerk verwenden,
müssen in der Lage sein, alle anderen Pods auf allen anderen Knoten zu kontaktieren, ohne NAT zu verwenden.
Einzelheiten dazu, was Kubernetes von kompatiblen
Container-Netzwerkschnittstelle (CNI)
Kubernetes unterstützt CNI-Spezifikationen und Plugins zur Implementierung des Kubernetes-Netzwerkmodells. Ein CNI besteht aus einer Spezifikation
Das CNI-Plugin wird aktiviert, indem kubelet die Befehlszeilenoption übergeben wird. --network-plugin=cni Kubelet liest eine Datei aus --cni-conf-dir (Standard/etc/cni/net.d) und verwendet die CNI-Konfiguration aus dieser Datei, um das Netzwerk jedes Pods einzurichten. Die CNI-Konfigurationsdatei muss der CNI-Spezifikation entsprechen (mindestens v0.4.0) und alle erforderlichen CNI-Plugins, auf die in der Konfiguration verwiesen wird, müssen im Verzeichnis vorhanden sein (Standard//bin). --cni-bin-dir opt/cni Wenn das Verzeichnis mehrere CNI-Konfigurationsdateien enthält, verwendet das Kubelet die Konfigurationsdatei, die namentlich an erster Stelle steht, in lexikografischer Reihenfolge.
Amazon Virtual Private Cloud (VPC) CNI
Das AWS-provided VPC CNI ist das Standard-Netzwerk-Add-on für EKS-Cluster. Das VPC CNI-Add-on wird standardmäßig installiert, wenn Sie EKS-Cluster bereitstellen. VPC CNI wird auf Kubernetes-Worker-Knoten ausgeführt. Das VPC CNI-Add-on besteht aus der CNI-Binärdatei und dem IPAMD-Plugin (IP Address Management). Das CNI weist einem Pod eine IP-Adresse aus dem VPC-Netzwerk zu. Das ipamd verwaltet die AWS Elastic Networking Interfaces (ENIs) zu jedem Kubernetes-Knoten und verwaltet den warmen IP-Pool. Das VPC CNI bietet Konfigurationsoptionen für die Vorabzuweisung von ENIs und IP-Adressen für schnelle Pod-Startzeiten. Empfohlene Best Practices für die Plugin-Verwaltung finden Sie unter Amazon VPC CNI.
Amazon EKS empfiehlt, dass Sie Subnetze in mindestens zwei Verfügbarkeitszonen angeben, wenn Sie einen Cluster erstellen. Amazon VPC CNI weist Pods IP-Adressen aus den Knoten-Subnetzen zu. Wir empfehlen dringend, die Subnetze auf verfügbare IP-Adressen zu überprüfen. Bitte beachten Sie die Empfehlungen zu VPC und Subnetz, bevor Sie EKS-Cluster bereitstellen.
Amazon VPC CNI weist einen warmen Pool von ENIs und sekundären IP-Adressen aus dem Subnetz zu, das an die primäre ENI des Knotens angeschlossen ist. Dieser Modus von VPC CNI wird als sekundärer IP-Modus bezeichnet. Amazon VPC CNI Die Anzahl der IP-Adressen und damit die Anzahl der Pods (Pod-Dichte) wird durch die Anzahl der ENIs und die IP-Adresse pro ENI (Grenzwerte) definiert, die durch den Instanztyp definiert werden. Der sekundäre Modus ist die Standardeinstellung und eignet sich gut für kleine Cluster mit kleineren Instance-Typen. Bitte erwägen Sie, den Präfixmodus zu verwenden, wenn Sie Probleme mit der Pod-Dichte haben. Sie können auch die verfügbaren IP-Adressen auf dem Knoten für Pods erhöhen, indem Sie ENIs Präfixe zuweisen.
Amazon VPC CNI lässt sich nativ in AWS VPC integrieren und ermöglicht es Benutzern, bestehende bewährte AWS-VPC-Netzwerk- und Sicherheitsmethoden für den Aufbau von Kubernetes-Clustern anzuwenden. Dazu gehört die Möglichkeit, VPC-Flow-Logs, VPC-Routing-Richtlinien und Sicherheitsgruppen für die Isolierung des Netzwerkverkehrs zu verwenden. Standardmäßig wendet das Amazon VPC CNI die Sicherheitsgruppe, die der primären ENI auf dem Knoten zugeordnet ist, auf die Pods an. Erwägen Sie, Sicherheitsgruppen für Pods zu aktivieren, wenn Sie einem Pod unterschiedliche Netzwerkregeln zuweisen möchten.
Standardmäßig weist VPC CNI Pods IP-Adressen aus dem Subnetz zu, das der primären ENI eines Knotens zugewiesen ist. Beim Betrieb großer Cluster mit Tausenden von Workloads kommt es häufig zu einem Mangel an IPv4-Adressen. Mit AWS VPC können Sie die verfügbaren IP-Adressen erweitern, indem Sie einen sekundären CIDRs zuweisen, um die Erschöpfung der IPv4-CIDR-Blöcke zu umgehen. AWS VPC CNI ermöglicht es Ihnen, einen anderen Subnetz-CIDR-Bereich für Pods zu verwenden. Diese Funktion von VPC CNI wird als benutzerdefiniertes Netzwerk bezeichnet. Benutzerdefiniertes Netzwerk Sie könnten erwägen, ein benutzerdefiniertes Netzwerk mit einem CIDR aus dem 100.64.0.0/10 Bereich (Shared Address Space, RFC 6598) für EKS zu verwenden. Auf diese Weise können Sie effektiv eine Umgebung erstellen, in der Pods keine RFC1918-IP-Adressen mehr von Ihrer VPC verwenden.
Benutzerdefiniertes Netzwerk ist eine Option, um das Problem der Erschöpfung von IPv4-Adressen zu lösen, erfordert jedoch einen Betriebsaufwand. Wir empfehlen IPv6-Cluster anstelle von benutzerdefinierten Netzwerken, um dieses Problem zu lösen. Insbesondere empfehlen wir die Migration zu IPv6-Clustern, wenn Sie den gesamten verfügbaren IPv4-Adressraum für Ihre VPC vollständig ausgeschöpft haben. Prüfen Sie die Pläne Ihres Unternehmens, IPv6 zu unterstützen, und überlegen Sie, ob eine Investition in IPv6 einen langfristigen Nutzen haben könnte.
Die Unterstützung von EKS für IPv6 konzentriert sich auf die Lösung des Problems der IP-Erschöpfung, das durch einen begrenzten IPv4-Adressraum verursacht wird. Als Reaktion auf Kundenprobleme mit der IPv4-Erschöpfung hat EKS Pods den Vorrang IPv6-only vor Dual-Stack-Pods eingeräumt. Das heißt, Pods können möglicherweise auf IPv4-Ressourcen zugreifen, ihnen wird jedoch keine IPv4-Adresse aus dem VPC-CIDR-Bereich zugewiesen. Das VPC CNI weist Pods IPv6-Adressen aus dem von AWS verwalteten VPC-IPv6-CIDR-Block zu.
Subnetz-Rechner
Dieses Projekt beinhaltet ein Excel-Dokument für den Subnetzrechner. WARM_IP_TARGET und. WARM_ENI_TARGET Das Dokument enthält zwei Blätter, ein erstes für den Warm-ENI-Modus und ein zweites für den Warm-IP-Modus. Weitere Informationen zu diesen Modi finden Sie in der VPC CNI-Anleitung.
Eingaben:
-
CIDR-Größe des Subnetzes
-
Warmes ENI-Ziel oder Warmes IP-Ziel
-
Liste der Instanzen
-
Typ, Anzahl und Anzahl der pro Instanz geplanten Workload-Pods
-
Ausgänge:
-
Gesamtzahl der gehosteten Pods
-
Anzahl der verbrauchten Subnetz-IPs
-
Anzahl der verbleibenden Subnetz-IPs
-
Details auf Instanzebene
-
Anzahl der Warms IPs/ENIs pro Instanz
-
Anzahl der Aktiven IPs/ENIs pro Instanz
-