Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Beschränken Sie den Pod-Netzwerkverkehr mit Kubernetes-Netzwerkrichtlinien

Fokusmodus
Beschränken Sie den Pod-Netzwerkverkehr 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.

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.

Sie können eine Kubernetes-Netzwerkrichtlinie verwenden, um den Netzwerkverkehr zu und von Ihren Pods einzuschränken. Weitere Informationen finden Sie in der Kubernetes-Dokumentation unter Netzwerkrichtlinien.

Sie müssen Folgendes konfigurieren, um diese Funktion nutzen zu können:

  1. Richten Sie die Richtliniendurchsetzung beim Start des Pods ein. Sie tun dies im aws-node Container der VPC DaemonSet CNI.

  2. Aktivieren Sie den Netzwerkrichtlinienparameter für das Add-on.

  3. Konfigurieren Sie Ihren Cluster so, dass er die Kubernetes-Netzwerkrichtlinie verwendet

Bevor Sie beginnen, lesen Sie sich die Überlegungen durch. Weitere Informationen finden Sie unter Überlegungen.

Voraussetzungen

Die folgenden Voraussetzungen müssen für die Funktion erfüllt sein:

Minimale Cluster-Version

Ein vorhandener Amazon-EKS-Cluster. Informationen zum Bereitstellen finden Sie unter Erste Schritte mit Amazon EKS. Bei dem Cluster muss es sich um eine Kubernetes-Version 1.25 oder eine neuere Version handeln. Auf dem Cluster muss eine der in der folgenden Tabelle aufgeführten Kubernetes-Versionen und Plattform-Versionen ausgeführt werden. Beachten Sie, dass alle Kubernetes- und Plattformversionen, die höher sind als die aufgeführten, ebenfalls unterstützt werden. Sie können Ihre aktuelle Kubernetes-Version überprüfen, indem Sie den folgenden Befehl durch den Namen Ihres Clusters ersetzen my-cluster und dann den geänderten Befehl ausführen:

aws eks describe-cluster --name my-cluster --query cluster.version --output text
Kubernetes-Version Plattformversion

1.27.4

eks.5

1.26.7

eks.6

1.25.12

eks.7

VPC-CNI-Mindestversion

Version 1.14 oder höher des Amazon VPC CNI-Plug-ins für Kubernetes auf Ihrem Cluster. Sie können Ihre aktuelle Version mit dem folgenden Befehl überprüfen:

kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3

Wenn Ihre Version älter als 1.14 ist, finden Sie unter Aktualisieren Sie das Amazon VPC CNI (Amazon EKS-Add-on) Informationen zum Aktualisieren des Plugins auf Version 1.14 oder höher.

Linux-Kernel-Mindestversion

Ihre Knoten müssen eine Linux-Kernelversion ab Version 5.10 haben. Sie können Ihre Kernelversion mit uname -r überprüfen. Wenn Sie die neuesten Versionen von Amazon EKS-optimiertem Amazon Linux, Amazon EKS-optimiertem beschleunigtem Amazon Linux und Bottlerocket AMIs verwenden AMIs, verfügen diese bereits über die erforderliche Kernelversion.

Amazon-EKS-optimierte Amazon-Linux-AMI-Versionen ab v20231116 verfügen über Kernel-Version 5.10.

Schritt 1: Richten Sie die Richtliniendurchsetzung beim Start des Pods ein

Das Amazon VPC CNI-Plugin für Kubernetes konfiguriert Netzwerkrichtlinien für Pods parallel zur Pod-Bereitstellung. Bis alle Richtlinien für den neuen Pod konfiguriert sind, beginnen Container im neuen Pod mit einer standardmäßigen Zulassungsrichtlinie. Dies wird als Standardmodus bezeichnet. Eine standardmäßige Zulassungsrichtlinie bedeutet, dass der gesamte eingehende und ausgehende Datenverkehr zu und von den neuen Pods zugelassen ist. Für die Pods werden beispielsweise keine Firewallregeln durchgesetzt (der gesamte Datenverkehr ist zulässig), bis der neue Pod mit den aktiven Richtlinien aktualisiert wurde.

Wenn die NETWORK_POLICY_ENFORCING_MODE Variable auf gesetzt iststrict, beginnen Pods, die das VPC-CNI verwenden, mit einer Standardverweigerungsrichtlinie. Anschließend werden die Richtlinien konfiguriert. Dies wird als strikter Modus bezeichnet. Im strikten Modus benötigen Sie eine Netzwerkrichtlinie für jeden Endpunkt, auf den Ihre Pods in Ihrem Cluster zugreifen müssen. Beachten Sie, dass diese Anforderung für die CoreDNS-Pods gilt. Die standardmäßige Ablehnungsrichtlinie ist nicht für Pods mit Host-Netzwerk konfiguriert.

Sie können die Standard-Netzwerkrichtlinie ändern, indem Sie die Umgebungsvariable NETWORK_POLICY_ENFORCING_MODE strict im aws-node Container der DaemonSet VPC-CNI auf setzen.

env: - name: NETWORK_POLICY_ENFORCING_MODE value: "strict"

Schritt 2: Aktivieren Sie den Netzwerkrichtlinienparameter für das Add-on

Das Netzwerkrichtlinien-Feature verwendet standardmäßig den Port 8162 auf dem Knoten für Metriken. Außerdem verwendete das Feature den Port 8163 für Zustandstests. Wenn Sie eine andere Anwendung auf die Knoten oder innerhalb von Pods ausführen, die diese Ports verwenden müssen, kann die App nicht ausgeführt werden. In der VPC CNI-Version v1.14.1 oder höher können Sie diese Ports ändern.

Gehen Sie wie folgt vor, um den Netzwerkrichtlinienparameter für das Add-on zu aktivieren.

AWS Management Console

  1. Öffnen Sie die Amazon-EKS-Konsole.

  2. Wählen Sie im linken Navigationsbereich die Option Cluster aus. Wählen Sie dann den Namen des Clusters aus, für den Sie das Amazon-VPC-CNI-Add-on konfigurieren möchten.

  3. Wählen Sie die Registerkarte Add-ons.

  4. Wählen Sie das Kästchen oben rechts in der Add-On-Box aus und wählen Sie dann Edit (Bearbeiten).

  5. Auf der name of add-on Seite „Konfigurieren“:

    1. Wählen Sie in der Versionsliste eine v1.14.0-eksbuild.3 oder eine neuere Version aus.

    2. Erweitern Sie Optionale Konfigurationseinstellungen.

    3. Geben Sie den JSON-Schlüssel "enableNetworkPolicy": und den Wert "true" in Konfigurationswerte ein. Der resultierende Text muss ein gültiges JSON-Objekt sein. Wenn dieser Schlüssel und dieser Wert die einzigen Daten im Textfeld sind, setzen Sie den Schlüssel und den Wert in geschweifte Klammern { }.

      Im folgenden Beispiel ist die Netzwerkrichtlinien-Funktion aktiviert und Messwerte und Integritätstests sind auf die Standard-Portnummern eingestellt:

      { "enableNetworkPolicy": "true", "nodeAgent": { "healthProbeBindAddr": "8163", "metricsBindAddr": "8162" } }

Helm

Wenn Sie das Amazon VPC CNI-Plugin für Kubernetes über installiert haben, können Sie die Konfiguration aktualisierenhelm, um die Ports zu ändern.

  1. Führen Sie den folgenden Befehl aus, um die Ports zu ändern. Legen Sie die Portnummer im Wert für Schlüssel nodeAgent.metricsBindAddr bzw. Schlüssel nodeAgent.healthProbeBindAddr fest.

    helm upgrade --set nodeAgent.metricsBindAddr=8162 --set nodeAgent.healthProbeBindAddr=8163 aws-vpc-cni --namespace kube-system eks/aws-vpc-cni

kubectl

  1. Öffnen Sie das DaemonSet aws-node in Ihrem Editor.

    kubectl edit daemonset -n kube-system aws-node
  2. Ersetzen Sie die Portnummern in den folgenden Befehlsargumenten im args: im aws-network-policy-agent-Container im aws-node-DaemonSet-Manifest von VPC CNI.

    - args: - --metrics-bind-addr=:8162 - --health-probe-bind-addr=:8163

Schritt 3: Mounten Sie das Berkeley Packet Filter (BPF) -Dateisystem auf Ihren Knoten

Sie müssen das Berkeley Packet Filter (BPF) -Dateisystem auf jedem Ihrer Knoten mounten.

Anmerkung

Wenn es sich bei Ihrem Cluster um eine Version 1.27 oder höher handelt, können Sie diesen Schritt überspringen, da alle Amazon EKS-optimierten Amazon Linux- und Bottlerocket-Versionen AMIs für 1.27 oder später bereits über diese Funktion verfügen.

Für alle anderen Clusterversionen können Sie diesen Schritt überspringen, wenn Sie das für Amazon EKS optimierte Amazon-Linux-AMI mindestens auf Version v20230703 aktualisieren oder das Bottlerocket-AMI mindestens auf Version v1.0.2 aktualisieren.

  1. Mounten Sie das Berkeley Packet Filter (BPF)-Dateisystem auf jedem Ihrer Knoten.

    sudo mount -t bpf bpffs /sys/fs/bpf
  2. Fügen Sie dann denselben Befehl zu Ihren Benutzerdaten in Ihrer Startvorlage für Ihre Amazon EC2 Auto Scaling Scaling-Gruppen hinzu.

Schritt 4: Konfigurieren Sie Ihren Cluster für die Verwendung von Kubernetes-Netzwerkrichtlinien

Konfigurieren Sie den Cluster für die Verwendung von Kubernetes-Netzwerkrichtlinien. Sie können dies für ein Amazon EKS-Add-on oder ein selbstverwaltetes Add-On festlegen.

  1. Öffnen Sie die Amazon-EKS-Konsole.

  2. Wählen Sie im linken Navigationsbereich die Option Cluster aus. Wählen Sie dann den Namen des Clusters aus, für den Sie das Amazon-VPC-CNI-Add-on konfigurieren möchten.

  3. Wählen Sie die Registerkarte Add-ons.

  4. Wählen Sie das Kästchen oben rechts in der Add-On-Box aus und wählen Sie dann Edit (Bearbeiten).

  5. Auf der name of addon Seite „Konfigurieren“:

    1. Wählen Sie in der Versionsliste eine v1.14.0-eksbuild.3 oder eine neuere Version aus.

    2. Erweitern Sie Optionale Konfigurationseinstellungen.

    3. Geben Sie den JSON-Schlüssel "enableNetworkPolicy": und den Wert "true" in Konfigurationswerte ein. Der resultierende Text muss ein gültiges JSON-Objekt sein. Wenn dieser Schlüssel und dieser Wert die einzigen Daten im Textfeld sind, setzen Sie den Schlüssel und den Wert in geschweifte Klammern { }. Das folgende Beispiel zeigt, dass die Netzwerkrichtlinie aktiviert ist:

      { "enableNetworkPolicy": "true" }

      Der folgende Screenshot zeigt ein Beispiel für dieses Szenario.

      <shared id="consolelong"/>zeigt das VPC CNI-Add-on mit Netzwerkrichtlinie in der optionalen Konfiguration an.
  1. Führen Sie den folgenden AWS CLI-Befehl aus. Ersetzen Sie my-cluster durch den Namen Ihres Clusters und den IAM-Rollen-ARN durch die Rolle, die Sie verwenden.

    aws eks update-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.14.0-eksbuild.3 \ --service-account-role-arn arn:aws: iam::123456789012:role/AmazonEKSVPCCNIRole \ --resolve-conflicts PRESERVE --configuration-values '{"enableNetworkPolicy": "true"}'

Amazon-EKS-Add-On

  1. Öffnen Sie die Amazon-EKS-Konsole.

  2. Wählen Sie im linken Navigationsbereich die Option Cluster aus. Wählen Sie dann den Namen des Clusters aus, für den Sie das Amazon-VPC-CNI-Add-on konfigurieren möchten.

  3. Wählen Sie die Registerkarte Add-ons.

  4. Wählen Sie das Kästchen oben rechts in der Add-On-Box aus und wählen Sie dann Edit (Bearbeiten).

  5. Auf der name of addon Seite „Konfigurieren“:

    1. Wählen Sie in der Versionsliste eine v1.14.0-eksbuild.3 oder eine neuere Version aus.

    2. Erweitern Sie Optionale Konfigurationseinstellungen.

    3. Geben Sie den JSON-Schlüssel "enableNetworkPolicy": und den Wert "true" in Konfigurationswerte ein. Der resultierende Text muss ein gültiges JSON-Objekt sein. Wenn dieser Schlüssel und dieser Wert die einzigen Daten im Textfeld sind, setzen Sie den Schlüssel und den Wert in geschweifte Klammern { }. Das folgende Beispiel zeigt, dass die Netzwerkrichtlinie aktiviert ist:

      { "enableNetworkPolicy": "true" }

      Der folgende Screenshot zeigt ein Beispiel für dieses Szenario.

      <shared id="consolelong"/>zeigt das VPC CNI-Add-on mit Netzwerkrichtlinie in der optionalen Konfiguration an.
  1. Führen Sie den folgenden AWS CLI-Befehl aus. Ersetzen Sie my-cluster durch den Namen Ihres Clusters und den IAM-Rollen-ARN durch die Rolle, die Sie verwenden.

    aws eks update-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.14.0-eksbuild.3 \ --service-account-role-arn arn:aws: iam::123456789012:role/AmazonEKSVPCCNIRole \ --resolve-conflicts PRESERVE --configuration-values '{"enableNetworkPolicy": "true"}'

Wenn Sie das Amazon VPC CNI-Plugin für Kubernetes über installiert haben, können Sie die Konfiguration aktualisierenhelm, um die Netzwerkrichtlinie zu aktivieren.

  1. Führen Sie den folgenden Befehl aus, um die Netzwerkrichtlinie zu aktivieren.

    helm upgrade --set enableNetworkPolicy=true aws-vpc-cni --namespace kube-system eks/aws-vpc-cni
  1. Öffnen Sie das ConfigMap amazon-vpc-cni in Ihrem Editor.

    kubectl edit configmap -n kube-system amazon-vpc-cni -o yaml
  2. Fügen Sie data in ConfigMap die folgende Zeile hinzu:

    enable-network-policy-controller: "true"

    Sobald Sie die Zeile hinzugefügt haben, ConfigMap sollte sie wie im folgenden Beispiel aussehen.

    apiVersion: v1 kind: ConfigMap metadata: name: amazon-vpc-cni namespace: kube-system data: enable-network-policy-controller: "true"
  3. Öffnen Sie das DaemonSet aws-node in Ihrem Editor.

    kubectl edit daemonset -n kube-system aws-node
    1. Ersetzen Sie im Befehlsargument --enable-network-policy=false in args: im Container aws-network-policy-agent im DaemonSet-Manifest aws-node von VPC CNI den Wert false durch true.

      - args: - --enable-network-policy=true

Selbstverwaltetes Add-On

Wenn Sie das Amazon VPC CNI-Plugin für Kubernetes über installiert haben, können Sie die Konfiguration aktualisierenhelm, um die Netzwerkrichtlinie zu aktivieren.

  1. Führen Sie den folgenden Befehl aus, um die Netzwerkrichtlinie zu aktivieren.

    helm upgrade --set enableNetworkPolicy=true aws-vpc-cni --namespace kube-system eks/aws-vpc-cni
  1. Öffnen Sie das ConfigMap amazon-vpc-cni in Ihrem Editor.

    kubectl edit configmap -n kube-system amazon-vpc-cni -o yaml
  2. Fügen Sie data in ConfigMap die folgende Zeile hinzu:

    enable-network-policy-controller: "true"

    Sobald Sie die Zeile hinzugefügt haben, ConfigMap sollte sie wie im folgenden Beispiel aussehen.

    apiVersion: v1 kind: ConfigMap metadata: name: amazon-vpc-cni namespace: kube-system data: enable-network-policy-controller: "true"
  3. Öffnen Sie das DaemonSet aws-node in Ihrem Editor.

    kubectl edit daemonset -n kube-system aws-node
    1. Ersetzen Sie im Befehlsargument --enable-network-policy=false in args: im Container aws-network-policy-agent im DaemonSet-Manifest aws-node von VPC CNI den Wert false durch true.

      - args: - --enable-network-policy=true

Schritt 5. Nächste Schritte

Nachdem Sie die Konfiguration abgeschlossen haben, vergewissern Sie sich, dass die aws-node Pods auf Ihrem Cluster ausgeführt werden.

kubectl get pods -n kube-system | grep 'aws-node\|amazon'

Eine Beispielausgabe sieht wie folgt aus.

aws-node-gmqp7 2/2 Running 1 (24h ago) 24h aws-node-prnsh 2/2 Running 1 (24h ago) 24h

In den Versionen 1.14 und höher befinden sich 2 Container in den aws-node Pods. In früheren Versionen und wenn die Netzwerkrichtlinie deaktiviert ist, gibt es nur einen einzigen Container in den aws-node-Pods.

Sie können jetzt Kubernetes-Netzwerkrichtlinien in Ihrem Cluster bereitstellen.

Um Kubernetes-Netzwerkrichtlinien zu implementieren, erstellen Sie NetworkPolicy Kubernetes-Objekte und stellen sie in Ihrem Cluster bereit. NetworkPolicyObjekte sind auf einen Namespace beschränkt. Sie implementieren Richtlinien, um Datenverkehr zwischen Pods auf der Grundlage von Labelselektoren, Namespaces und IP-Adressbereichen zuzulassen oder zu verweigern. Weitere Informationen zum Erstellen von NetworkPolicy Objekten finden Sie in der Kubernetes-Dokumentation unter Netzwerkrichtlinien.

Die Durchsetzung von NetworkPolicy Kubernetes-Objekten wird mit dem Extended Berkeley Packet Filter (eBPF) implementiert. Im Vergleich zu iptables-basierten Implementierungen bietet er geringere Latenzzeiten und Leistungsmerkmale, einschließlich einer geringeren CPU-Auslastung und der Vermeidung sequenzieller Suchvorgänge. Darüber hinaus bieten eBPF-Sonden Zugriff auf kontextreiche Daten, mit deren Hilfe komplexe Probleme auf Kernelebene behoben und die Beobachtbarkeit verbessert werden können. Amazon EKS unterstützt einen EBPF-basierten Exporter, der die Tests nutzt, um Richtlinienergebnisse auf jedem Knoten zu protokollieren und die Daten zur Unterstützung beim Debuggen an externe Protokollsammler zu exportieren. Weitere Informationen finden Sie in der eBPF-Dokumentation.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.