Beschränken Sie den Pod-Verkehr mit Kubernetes-Netzwerkrichtlinien - 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.

Beschränken Sie den Pod-Verkehr 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 einem anderen Netzwerk. Sie können die Kubernetes-Netzwerkrichtlinie verwenden, um den Netzwerkverkehr zu und von Ihren Pods einzuschränken. Weitere Informationen finden Sie in der Kubernetes-Dokumentation unter Netzwerkrichtlinien.

Wenn Sie eine Version 1.13 oder eine frühere Version des Amazon VPC CNI-Plug-ins für Kubernetes auf Ihrem Cluster haben, müssen Sie eine Drittanbieterlösung implementieren, um Kubernetes-Netzwerkrichtlinien auf Ihren Cluster anzuwenden. In der Version 1.14 oder höher des Plugins können Netzwerkrichtlinien implementiert werden, sodass Sie keine Drittanbieterlösung verwenden müssen. In diesem Thema erfahren Sie, wie Sie Ihren Cluster so konfigurieren, dass er die Kubernetes-Netzwerkrichtlinie auf Ihrem Cluster verwendet, ohne ein Drittanbieter-Add-on zu verwenden.

Netzwerkrichtlinien im Amazon VPC CNI-Plugin für Kubernetes werden in den folgenden Konfigurationen unterstützt.

  • Amazon-EKS-Cluster ab Version 1.25.

  • Version 1.14 oder höher des Amazon VPC CNI-Plug-ins für Kubernetes auf Ihrem Cluster.

  • Für IPv4- oder IPv6-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 Dienste von Anwendungen innerhalb eines Pods aus steuern.

  • Sie können Netzwerkrichtlinien mit benutzerdefinierten Netzwerken und Präfixdelegierung verwenden.

Überlegungen

Architektur

  • Wenn Sie Netzwerkrichtlinien des Amazon VPC CNI-Plug-ins für Kubernetes mit dem Amazon VPC CNI-Plugin für Kubernetes auf Ihren Cluster anwenden, können Sie die Richtlinien nur auf Amazon Linux-Knoten anwenden. EC2 Sie können die Richtlinien nicht auf Fargate- oder Windows-Knoten anwenden.

  • Netzwerkrichtlinien gelten nur für eine IPv4 oder für IPv6 Adressen, aber nicht für beide. In einem IPv4 Cluster weist das VPC-CNI Pods IPv4 Adressen zu und wendet Richtlinien an. IPv4 In einem IPv6 Cluster weist das VPC-CNI Pods IPv6 Adressen zu und wendet Richtlinien an. IPv6 Alle IPv4 Netzwerkrichtlinienregeln, die auf einen IPv6 Cluster angewendet werden, werden ignoriert. Alle IPv6 Netzwerkrichtlinienregeln, die auf einen IPv4 Cluster angewendet werden, werden ignoriert.

Netzwerkrichtlinien

  • Netzwerkrichtlinien werden nur auf Pods angewendet, die Teil einer Bereitstellung sind. Auf eigenständige Pods, für die kein metadata.ownerReferences Set vorhanden ist, können keine Netzwerkrichtlinien angewendet werden.

  • Du kannst mehrere Netzwerkrichtlinien auf denselben Pod anwenden. Wenn zwei oder mehr Richtlinien konfiguriert sind, die denselben Pod auswählen, werden alle Richtlinien auf den Pod angewendet.

  • Die maximale Anzahl eindeutiger Kombinationen von Ports für jedes Protokoll in jedem Protokoll ingress: oder jeden egress: Selektor in einer Netzwerkrichtlinie beträgt 24.

  • Für jeden Ihrer Kubernetes-Dienste muss der Service-Port mit dem Container-Port identisch sein. Wenn Sie benannte Ports verwenden, verwenden Sie denselben Namen auch in der Servicespezifikation.

Migration

  • Wenn 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 verwenden. Sie müssen jedoch Ihre bestehende Lösung entfernen, damit sie nicht dieselben Richtlinien verwaltet.

Installation

  • Das Netzwerkrichtlinienfeature erstellt und erfordert die Definition einer benutzerdefinierten PolicyEndpoint-Ressource (Custom Resource Definition, CRD) namens policyendpoints.networking.k8s.aws. PolicyEndpoint-Objekte der benutzerdefinierten Ressource werden von Amazon EKS verwaltet. Sie sollten diese Ressourcen nicht ändern oder löschen.

  • Wenn Sie Pods ausführen, die die IAM-Anmeldeinformationen der Instanzrolle verwenden oder eine Verbindung zum EC2 IMDS herstellen, achten Sie darauf, ob Netzwerkrichtlinien vorhanden sind, die den EC2 Zugriff auf das IMDS blockieren würden. Möglicherweise müssen Sie eine Netzwerkrichtlinie hinzufügen, um den Zugriff auf IMDS zu ermöglichen. EC2 Weitere Informationen finden Sie unter Instance-Metadaten und Benutzerdaten im EC2 Amazon-Benutzerhandbuch.

    Pods, die IAM-Rollen für Dienstkonten oder EKS Pod Identity verwenden, greifen nicht auf EC2 IMDS zu.

  • 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 Variable ENABLE_V4_EGRESS auf true festgelegt ist. Diese Variable ermöglicht es der IPv4 Ausgangsfunktion, die IPv6 Pods mit IPv4 Endpunkten wie denen außerhalb des Clusters zu verbinden. Die IPv4 Ausgangsfunktion erstellt eine zusätzliche Netzwerkschnittstelle mit einer lokalen Loopback-Adresse. IPv4

    • Bei Verwendung verketteter Netzwerk-Plugins wie Multus. Da diese Plugins jedem Pod Netzwerkschnittstellen hinzufügen, werden Netzwerkrichtlinien nicht auf die verketteten Netzwerk-Plugins angewendet.