¿Cuáles son las prácticas recomendadas para configurar el complemento CNI de Amazon VPC de modo que utilice una dirección IP en subredes de VPC con Amazon EKS?

Última actualización: 22/11/2021

Quiero configurar el complemento de interfaz de red de contenedores (CNI) de Amazon Virtual Private Cloud (VPC) para utilizar una dirección IP en subredes de VPC con Amazon Elastic Kubernetes Service (Amazon EKS). ¿Cuáles son las prácticas recomendadas?

Descripción corta

Uno de los componentes principales de la CNI de Amazon VPC es el daemon L-IPAM. Configure este daemon para asignar direcciones IP a los nodos.

Si se programa un nuevo pod en un nodo, entonces el kubelet invoca el binario CNI. El binario CNI llama al L-IPAMD para obtener una dirección IP para el nuevo pod. A continuación, el pod rastrea las interfaces de red elásticas y las direcciones IP que están conectadas a la instancia.

Puede utilizar ciertas variables de configuración para controlar cuántas interfaces de red y direcciones IP se mantienen. Para obtener más información, consulte WARM_ENI_TARGET, WARM_IP_TARGET y MINIMUM_IP_TARGET y WARM_PREFIX_TARGET, WARM_IP_TARGET y MINIMUM_IP_TARGET (del sitio web de GitHub).

Resolución

A continuación, se brindan prácticas recomendadas básicas para usar variables de configuración a fin de controlar cuántas interfaces de red y direcciones IP se mantienen.

WARM_ENI_TARGET

Use la variable WARM_ENI_TARGET para determinar cuántas interfaces de red elásticas mantiene disponibles la L-IPAMD para que a los pods se les asigne inmediatamente una dirección IP cuando se programen en un nodo.

  • Para evitar que se agoten las direcciones IP disponibles en la subred, asegúrese de comprobar el tipo de instancia del nodo de trabajo y el número máximo de interfaces de red y direcciones IPv4 privadas por interfaz. Por ejemplo, si establece WARM_ENI_TARGET=3 para un nodo m5.xlarge, siempre se adjuntan tres interfaces de red elásticas al nodo. A continuación, el nodo asigna 45 direcciones IP, 15 por interfaz de red elástica. Como las 45 direcciones IP están reservadas para este nodo, esas direcciones no se pueden usar para los pods que están programados en otros nodos de trabajo.
  • Si espera que su aplicación se escale en gran medida, puede usar WARM_ENI_TARGET para acomodar rápidamente los pods recién programados.

WARM_IP_TARGET

Use la variable WARM_IP_TARGET para asegurarse de tener siempre un número definido de direcciones IP disponibles en el warm pool (grupo activo) del L-IPAMD.

  • Para clústeres con baja productividad, use WARM_IP_TARGET para que solo se asigne el número requerido de direcciones IP a la interfaz de red. Esto evita que las direcciones IP de las interfaces de red elásticas se bloqueen.

MINIMUM_IP_TARGET

Use MINIMUM_IP_TARGET para asegurarse de que se asigne un número mínimo de direcciones IP a un nodo cuando aparezca inicialmente. Esta variable se usa generalmente con la variable WARM_IP_TARGET.

  • Si sabe el número mínimo de pods que ejecutarás por nodo, use MINIMUM_IP_TARGET para que se asigne el número requerido de direcciones IP. Si las direcciones IP están disponibles fácilmente, los pods pueden recibirlas a medida que estos se programen.
  • Configure esta variable con WARM_IP_TARGET para asegurarse de que hay direcciones IP disponibles en el nodo para los pods futuros.

WARM_PREFIX_TARGET

Usa la variable WARM_PREFIX_TARGET para asegurarse de tener siempre un número definido de prefijos (/28 bloques de CIDR) agregados a la interfaz de red de la instancia. Puede usar WARM_PREFIX_TARGET solo para la versión de CNI 1.9.0 o posterior, y debe activar la capacidad de asignación de prefijos de direcciones IP de CNI de Amazon VPC.

  • Si usa la asignación de prefijo de dirección IP, asegúrese de que la variable WARM_PREFIX_TARGET esté establecida en un valor mayor o igual a 1. Si se establece en 0, recibirá el siguiente error:
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
  • Para subredes más pequeñas, use WARM_IP_TARGET con WARM_PREFIX_TARGET para evitar asignar demasiados prefijos. La asignación de demasiados prefijos puede agotar las direcciones IP disponibles.

Para obtener más información sobre cómo estas variables de configuración afectan la utilización de la dirección IP, consulte Variables de configuración de CNI (del sitio web de GitHub).


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?