Was sind die bewährten Methoden für die Konfiguration des Amazon VPC CNI-Plug-Ins zur Verwendung einer IP-Adresse in VPC-Subnetzen mit Amazon EKS?

Letzte Aktualisierung: 2021-11-22

Ich möchte das Container Network Interface (CNI)-Plug-In in Amazon Virtual Private Cloud (VPC) so konfigurieren, dass es eine IP-Adresse in VPC-Subnetzen mit Amazon Elastic Kubernetes Service (Amazon EKS) verwendet. Was sind die bewährten Methoden?

Kurzbeschreibung

Eine der Hauptkomponenten des Amazon-VPC-CNI ist der L-IPAM-Daemon. Sie konfigurieren diesen Daemon so, dass er Knoten IP-Adressen zuweist.

Wenn ein neuer Pod auf einem Knoten geplant ist, ruft das Kubelet die CNI-Binärdatei auf. Die CNI-Binärdatei ruft das L-IPAMD auf, um eine IP-Adresse für den neuen Pod zu erhalten. Der Pod verfolgt dann die Elastic-Network-Schnittstellen und IP-Adressen, die an die Instance angefügt sind.

Sie können bestimmte Konfigurationsvariablen verwenden, um zu steuern, wie viele Netzwerkschnittstellen und IP-Adressen beibehalten werden. Weitere Informationen finden Sie unter WARM_ENI_TARGET, WARM_IP_TARGET und MINIMUM_IP_TARGET und WARM_PREFIX_TARGET, WARM_IP_TARGET und MINIMUM_IP_TARGET (von der GitHub-Website).

Auflösung

Im Folgenden finden Sie grundlegende bewährte Methoden für die Verwendung von Konfigurationsvariablen zur Steuerung der Anzahl der Netzwerkschnittstellen und IP-Adressen.

WARM_ENI_TARGET

Verwenden Sie die Variable WARM_ENI_TARGET, um zu bestimmen, wie viele Elastic-Network-Schnittstellen das L-IPAMD verfügbar hält, sodass Pods sofort eine IP-Adresse zugewiesen wird, wenn sie auf einem Knoten geplant sind.

  • Um zu verhindern, dass die verfügbaren IP-Adressen im Subnetz erschöpfen, überprüfen Sie den Worker-Knoten-Instance-Typ und die maximale Anzahl an Netzwerkschnittstellen und privaten IPv4-Adressen pro Schnittstelle. Wenn Sie beispielsweise WARM_ENI_TARGET=3 für einen m5.xlarge Knoten festlegen, werden immer drei Elastic-Network-Schnittstellen an den Knoten angefügt. Der Knoten weist dann 45 IP-Adressen zu, 15 pro Elastic-Network-Schnittstelle. Da die 45 IP-Adressen für diesen Knoten reserviert sind, können diese Adressen nicht für Pods verwendet werden, die auf anderen Worker-Knoten geplant sind.
  • Wenn Sie erwarten, dass Ihre Anwendung stark skaliert wird, können Sie WARM_ENI_TARGET verwenden, um neu geplante Pods schnell aufzunehmen.

WARM_IP_TARGET

Verwenden Sie die Variable WARM_IP_TARGET, um sicherzustellen, dass im warmen Pool des L-IPAMD immer eine definierte Anzahl von IP-Adressen verfügbar ist.

  • Verwenden Sie für Cluster mit geringer Produktivität WARM_IP_TARGET, sodass der Netzwerkschnittstelle nur die erforderliche Anzahl von IP-Adressen zugewiesen wird. Dadurch wird verhindert, dass die IP-Adressen der Elastic-Network-Schnittstellen blockiert werden.

MINIMUM_IP_TARGET

Verwenden Sie das MINIMUM_IP_TARGET, um sicherzustellen, dass einem Knoten eine Mindestanzahl von IP-Adressen zugewiesen wird, wenn er zum ersten Mal angezeigt wird. Diese Variable wird im Allgemeinen mit der Variablen WARM_IP_TARGET verwendet.

  • Wenn Sie die Mindestanzahl von Pods kennen, die Sie pro Knoten ausführen werden, verwenden Sie MINIMUM_IP_TARGET, damit die erforderliche Anzahl von IP-Adressen zugewiesen wird. Wenn die IP-Adressen leicht verfügbar sind, können die Pods sie empfangen, während sie geplant sind.
  • Setzen Sie diese Variable mit WARM_IP_TARGET, um sicherzustellen, dass auf dem Knoten für zukünftige Pods verfügbare IP-Adressen vorhanden sind.

WARM_PREFIX_TARGET

Verwenden Sie die Variable WARM_PREFIX_TARGET, um sicherzustellen, dass Sie immer eine definierte Anzahl von Präfixen (/28 CIDR-Blöcke) zur Netzwerkschnittstelle der Instance hinzugefügt haben. Sie können WARM_PREFIX_TARGET nur für CNI Version 1.9.0 oder höher verwenden, und Sie müssen die Zuweisungsfunktion für IP-Adresspräfixe in Amazon-VPC-CNI aktivieren.

  • Wenn Sie die IP-Adresspräfixzuweisung verwenden, stellen Sie sicher, dass die Variable WARM_PREFIX_TARGET auf einen Wert größer oder gleich 1 festgelegt ist. Wenn sie auf 0 gesetzt ist, wird der folgende Fehler angezeigt:
Error: Setting WARM_PREFIX_TARGET = 0 is not supported while WARM_IP_TARGET/MINIMUM_IP_TARGET is not set. 
Please configure either one of the WARM_{PREFIX/IP}_TARGET or MINIMUM_IP_TARGET env variables
  • Verwenden Sie für kleinere Subnetze WARM_IP_TARGET mit WARM_PREFIX_TARGET, um zu vermeiden, dass zu viele Präfixe zugewiesen werden. Durch die Zuweisung zu vieler Präfixe können verfügbare IP-Adressen aufgebraucht werden.

Weitere Informationen darüber, wie sich diese Konfigurationsvariablen auf die IP-Adressnutzung auswirken, finden Sie unter CNI-Konfigurationsvariablen (auf der GitHub-Website).


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?