Unterstützung für die Verbesserung dieser Seite beitragen
Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.
Begrenzen Sie den Pod-Datenverkehr mit Kubernetes-Netzwerkrichtlinien.
Standardmäßig gibt es in Kubernetes keine Einschränkungen für IP-Adressen, Ports oder Verbindungen zwischen Pods in Ihrem Cluster oder zwischen Ihren Pods und Ressourcen in anderen Netzwerken. Sie können die Kubernetes-Netzwerkrichtlinie verwenden, um Netzwerk-Datenerkehr zu und von Ihren Pods einzuschränken. Weitere Informationen finden Sie unter Netzwerk-Richtlinien
Wenn Sie 1.13 oder eine frühere Version des Amazon-VPC-CNI-Plugins für Kubernetes für Ihren Cluster verwenden, müssen Sie eine Drittanbieterlösung implementieren, um Kubernetes-Netzwerkrichtlinien auf Ihren Cluster anzuwenden. 1.14 oder eine höhere Version des Plugins kann Netzwerkrichtlinien implementieren, sodass Sie keine Drittanbieterlösung verwenden müssen. In diesem Thema erfahren Sie, wie Sie Ihren Cluster so konfigurieren, dass Sie Kubernetes-Netzwerkrichtlinien für Ihren Cluster nutzen können, ohne ein Drittanbieter-Add-On zu verwenden.
Netzwerkrichtlinien im Amazon-VPC-CNI-Plugin für Kubernetes werden in den folgenden Konfigurationen unterstützt.
-
Version 1.14 oder höher des Amazon-VPC-CNI-Plugins für Kubernetes auf Ihrem Cluster.
-
Für
IPv4- oderIPv6-Adressen konfigurierter Cluster. -
Sie können Netzwerkrichtlinien mit Sicherheitsgruppen für Pods verwenden. Mit Netzwerkrichtlinien können Sie die gesamte Kommunikation innerhalb eines Clusters steuern. Mit Sicherheitsgruppen für Pods können Sie den Zugriff auf AWS-Services über Anwendungen innerhalb eines Pods steuern.
-
Sie können Netzwerkrichtlinien mit benutzerdefinierten Netzwerken und Präfixdelegierung verwenden.
Überlegungen
Architektur
-
Wenn Sie Netzwerkrichtlinien für Amazon-VPC-CNI-Plugin für Kubernetes auf Ihren Cluster mit dem Amazon-VPC-CNI-Plugin für Kubernetes anwenden, können Sie die Richtlinien nur auf Amazon-EC2-Linux-Knoten anwenden. Sie können nicht in Fargate- oder Windows-Knoten angewendet werden.
-
Netzwerkrichtlinien gelten nur für
IPv4- oderIPv6-Adressen, jedoch nicht für beide. In einemIPv4-Cluster weist die VPC CNI den PodsIPv4-Adressen zu und wendetIPv4-Richtlinien an. In einemIPv6-Cluster weist die VPC CNI den PodsIPv6-Adressen zu und wendetIPv6-Richtlinien an. Alle auf einenIPv6-Cluster angewendetenIPv4-Netzwerkrichtlinien werden ignoriert. Alle auf einenIPv4-Cluster angewendetenIPv6-Netzwerkrichtlinien werden ignoriert.
Netzwerkrichtlinien
-
Netzwerkrichtlinien werden ausschließlich auf Pods angewendet, die Teil einer Bereitstellung sind. Auf eigenständige Pods, für die kein
metadata.ownerReferencesfestgelegt ist, können keine Netzwerkrichtlinien angewendet werden. -
Sie können mehrere Netzwerkrichtlinien auf denselben Pods anwenden. Wenn zwei oder mehr Richtlinien konfiguriert werden, die denselben Pods auswählen, werden alle Richtlinien auf den Pod angewendet.
-
Die maximale Anzahl an Kombinationen aus Ports und Protokollen für einen einzelnen IP-Adressbereich (CIDR) beträgt 24 über alle Ihre Netzwerkrichtlinien hinweg. Selektoren wie
namespaceSelectorwerden in einen oder mehrere CIDRs aufgelöst. Wenn mehrere Selektoren zu einem einzigen CIDR führen oder Sie denselben direkten CIDR mehrfach in denselben oder verschiedenen Netzwerkrichtlinien angeben, werden diese alle auf dieses Limit angerechnet. -
Für jeden Ihrer Kubernetes-Services muss der Port des Services mit dem Port des Containers identisch sein. Wenn Sie benannte Ports verwenden, verwenden Sie denselben Namen auch in der Servicespezifikation.
Migration
-
Falls Ihr Cluster derzeit eine Drittanbieterlösung zur Verwaltung von Kubernetes-Netzwerkrichtlinien verwendet, können Sie dieselben Richtlinien mit dem Amazon-VPC-CNI-Plugin für Kubernetes nutzen. Sie müssen jedoch Ihre vorhandene Lösung entfernen, damit sie nicht dieselben Richtlinien verwaltet.
Warnung
Wir empfehlen, nach dem Entfernen einer Netzwerkrichtlinienlösung alle Knoten zu ersetzen, auf welche die Netzwerkrichtlinienlösung angewendet wurde. Der Grund dafür ist, dass die Datenverkehrsregeln möglicherweise von einem Pod der Lösung zurückgelassen werden, wenn dieser plötzlich beendet wird.
Installation
-
Das Netzwerkrichtlinienfeature erstellt und erfordert die Definition einer benutzerdefinierten
PolicyEndpoint-Ressource (Custom Resource Definition, CRD) namenspolicyendpoints.networking.k8s.aws.PolicyEndpoint-Objekte der benutzerdefinierten Ressource werden von Amazon EKS verwaltet. Ändern oder löschen Sie diese Ressourcen nicht. -
Wenn Sie Pods ausführen, die die IAM-Anmeldeinformationen der Instance-Rolle verwenden oder eine Verbindung mit EC2 IMDS herstellen, achten Sie auf Netzwerkrichtlinien, die den Zugriff auf EC2 IMDS blockieren würden. Möglicherweise müssen Sie eine Netzwerkrichtlinie hinzufügen, um den Zugriff auf EC2 IMDS zu ermöglichen. Weitere Informationen finden Sie unter Instance-Metadaten und Benutzerdaten im Amazon EC2-Benutzerhandbuch für Linux-Instances.
Pods, die IAM-Rollen für Servicekonten oder EKS Pod Identityverwenden, haben keinen Zugriff auf EC2 IMDS.
-
Das Amazon-VPC-CNI-Plugin für Kubernetes wendet keine Netzwerkrichtlinien auf zusätzliche Netzwerkschnittstellen für jeden Pod an, sondern nur auf die primäre Schnittstelle für jeden Pod (
eth0). Das hat Auswirkungen auf folgende Architekturen:-
IPv6-Pods, bei denen die VariableENABLE_V4_EGRESSauftruefestgelegt ist. Diese Variable ermöglicht es derIPv4-Ausgangsfunktion, eine Verbindung zwischen den IPv6-Pods undIPv4-Endpunkten (beispielsweise außerhalb des Clusters) herzustellen. DieIPv4-Ausgangsfunktion erstellt eine zusätzliche Netzwerkschnittstelle mit einer lokalen IPv4-Loopback-Adresse. -
Bei Verwendung verketteter Netzwerk-Plugins wie Multus. Da diese Plugins jedem Pod Netzwerkschnittstellen hinzufügen, werden Netzwerkrichtlinien nicht auf die verketteten Netzwerk-Plugins angewendet.
-