Einzelnen Pods Sicherheitsgruppen zuweisen - Amazon EKS

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.

Einzelnen Pods Sicherheitsgruppen zuweisen

Gilt für: Linux-Knoten mit Amazon-EC2 -Instances

Gilt für: Private Subnetze

Sicherheitsgruppen für Pods integrieren Amazon-EC2-Sicherheitsgruppen in Kubernetes-Pods. Sie können Amazon-EC2-Sicherheitsgruppen verwenden, um Regeln zu definieren, die ein- und ausgehenden Netzwerkverkehr zu und von Pods zulassen, die Sie auf Knoten bereitstellen, die auf vielen Amazon-EC2-Instance-Typen und Fargate ausgeführt werden. Eine ausführliche Erläuterung dieser Funktion finden Sie im Blogbeitrag Einführung in Sicherheitsgruppen für Pods.

Kompatibilität mit den Amazon-VPC-CNI-Plugin für Kubernetes-Features

Sie können Sicherheitsgruppen für Pods mit den folgenden Features verwenden:

Überlegungen

Berücksichtigen Sie vor der Bereitstellung von Sicherheitsgruppen für Pods die folgenden Einschränkungen und Bedingungen:

  • Sicherheitsgruppen für Pods können nicht mit Windows-Knoten verwendet werden.

  • Sicherheitsgruppen für Pods können mit für die IPv6-Familie konfigurierten Clustern verwendet werden, die Amazon-EC2-Knoten enthalten. Hierfür muss mindestens die Version 1.16.0 des Amazon-VPC-CNI-Plugins verwendet werden. Sie können Sicherheitsgruppen für Pods mit für die IPv6-Familie konfigurierten Clustern verwenden, die nur Fargate-Knoten enthalten. Hierfür muss mindestens die Version 1.7.7 des Amazon-VPC-CNI-Plugins verwendet werden. Weitere Informationen finden Sie unter Informationen zu IPv6-Adressen für Cluster, Pods und Services.

  • Sicherheitsgruppen für Pods werden von den meisten Nitro-basierten Amazon-EC2-Instance-Familien unterstützt, jedoch nicht von allen Generationen einer Familie. Beispielsweise werden die Instance-Familien und -generationen m5, c5, r5, m6g, c6g und r6g unterstützt. Es werden keine Instance-Typen in der t-Familie unterstützt. Eine vollständige Liste der unterstützten Instance-Typen finden Sie in der limits.go-Datei auf Github. Ihre Knoten müssen von einem der aufgelisteten Instance-Typen sein, die in der Datei mit IsTrunkingCompatible: true gekennzeichnet sind.

  • Wenn Sie benutzerdefinierte Netzwerk- und Sicherheitsgruppen für Pods zusammen verwenden, wird die durch Sicherheitsgruppen für Pods angegebene Sicherheitsgruppe anstelle der im ENIConfig angegebenen Sicherheitsgruppe verwendet.

  • Wenn Sie Version 1.10.2 oder älter des Amazon-VPC-CNI-Plugins verwenden und die Einstellung terminationGracePeriodSeconds in Ihre Pod-Spezifikation aufnehmen, darf der Wert der Einstellung nicht Null sein.

  • Wenn Sie Version 1.10 oder neuer des Amazon-VPC-CNI-Plugins verwenden oder Version 1.11 mit POD_SECURITY_GROUP_ENFORCING_MODE = strict, welches die Standardeinstellung ist, dann werden Kubernetes-Services vom Typ NodePort und LoadBalancer, die Instance-Ziele verwenden, für die externalTrafficPolicy auf Local eingestellt ist, nicht für Pods unterstützt, denen Sie Sicherheitsgruppen zuweisen. Weitere Informationen zur Verwendung eines Load Balancers mit Instance-Zielen finden Sie unter Weiterleitung von TCP- und UDP-Datenverkehr mit Network Load Balancers.

  • Wenn Sie Version 1.10 des Amazon-VPC-CNI-Plugins oder höher verwenden oder Version 1.11 mit POD_SECURITY_GROUP_ENFORCING_MODE = strict, welches die Standardeinstellung ist, ist die Quell-NAT für von Pods mit zugewiesenen Sicherheitsgruppen ausgehenden Datenverkehr deaktiviert, damit Sicherheitsgruppenregeln für ausgehenden Datenverkehr angewendet werden können. Um auf das Internet zuzugreifen, müssen Pods mit zugewiesenen Sicherheitsgruppen auf Knoten gestartet werden, die in einem privaten Subnetz bereitgestellt werden, das mit einem NAT-Gateway oder einer NAT-Instance konfiguriert ist. Pods mit zugewiesenen Sicherheitsgruppen, welche in öffentlichen Subnetzen bereitgestellt werden, können nicht auf das Internet zugreifen.

    Wenn Sie Version 1.11 oder höher des Plug-Ins mit POD_SECURITY_GROUP_ENFORCING_MODE = standard verwenden, wird der für außerhalb der VPC bestimmte Pod-Datenverkehr in die IP-Adresse der primären Netzwerkschnittstelle der Instance übersetzt. Für diesen Datenverkehr werden die Regeln in den Sicherheitsgruppen für die primäre Netzwerkschnittstelle anstelle der Regeln in den Pods-Sicherheitsgruppen verwendet.

  • Um die Calico-Netzwerkrichtlinie mit Pods zu verwenden, denen Sicherheitsgruppen zugewiesen sind, müssen Sie Version 1.11.0 oder höher des Amazon-VPC-CNI-Plugins verwenden und POD_SECURITY_GROUP_ENFORCING_MODE = standard festlegen. Andernfalls wird Datenverkehr zu und von Pods mit zugehörigen Sicherheitsgruppen nicht von den Calico-Netzwerkrichtlinien geregelt, sondern es gelten ausschließlich die Amazon-EC2-Sicherheitsgruppen. Informationen zum Aktualisieren Ihrer Version von Amazon VPC CNI finden Sie unter Zuweisung von IPs zu Pods mit Amazon VPC CNI.

  • Pods, die auf Amazon EC2-Knoten ausgeführt werden, die Sicherheitsgruppen in Clustern verwenden, die NodeLocal DNSCache verwenden, werden nur mit Version 1.11.0 oder höher des Amazon-VPC-CNI-Plugins mit der Einstellung POD_SECURITY_GROUP_ENFORCING_MODE = standard unterstützt. Informationen zum Aktualisieren Ihrer Version des Amazon-VPC-CNI-Plug-ins finden Sie unter Zuweisung von IPs zu Pods mit Amazon VPC CNI.

  • Sicherheitsgruppen für Pods können bei Pods mit hoher Fluktuation zu einer höheren Pod-Startup-Latenz führen. Dies ist auf eine Ratenbegrenzung im Ressourcencontroller zurückzuführen.

  • Der Geltungsbereich der EC2-Sicherheitsgruppe liegt auf Pod-Ebene. Weitere Informationen finden Sie unter Sicherheitsgruppe.

    Wenn Sie POD_SECURITY_GROUP_ENFORCING_MODE=standard und AWS_VPC_K8S_CNI_EXTERNALSNAT=false festlegen, verwendet der für Endpunkte außerhalb der VPC bestimmte Datenverkehr die Sicherheitsgruppen des Knotens und nicht die Sicherheitsgruppen des Pods.