¿Cómo soluciono y superviso las direcciones IP insuficientes en mis clústeres de Amazon EKS?
Mi clúster de Amazon Elastic Kubernetes Service (Amazon EKS) no puede asignar direcciones IP porque mi subred no tiene direcciones IP disponibles.
Solución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Uso de la detección de subredes mejorada en el CNI de Amazon VPC
Crea el complemento de interfaz de red de contenedores (CNI) de Amazon Virtual Private Cloud (VPC) que utiliza la detección de subredes mejorada para asignar direcciones IP de subredes de la misma VPC. El complemento también equilibra las cargas entre las zonas de disponibilidad.
Nota: Debes usar la versión 1.18.0 o posterior del complemento CNI de Amazon VPC. Además, los clústeres deben ejecutar Amazon EKS 1.25 o una versión posterior.
Para comprobar si la detección mejorada de subredes está activada, ejecuta el siguiente comando:
kubectl describe ds aws-node -n kube-system | grep ENABLE_SUBNET_DISCOVERY
Para activar la detección mejorada de subredes, ejecuta uno de los siguientes comandos para la herramienta que utilices.
kubectl:
kubectl set env daemonset aws-node -n kube-system ENABLE_SUBNET_DISCOVERY=true -c aws-node
AWS CLI:
aws eks update-addon --cluster-name CLUSTER_NAME --region AWS_REGION \ --addon-name vpc-cni \ --configuration-values '{"env":{"ENABLE_SUBNET_DISCOVERY":"true"}}'
Nota: Sustituye CLUSTER_NAME por el nombre de tu clúster y AWS_REGION por tu región de AWS.
Agrega la etiqueta kubernetes.io/role/cni a tus subredes.
Uso de redes personalizadas
Por motivos de seguridad, a veces los pods deben ejecutarse en redes independientes con diferentes grupos de seguridad. Usa redes personalizadas para asignar direcciones IP de pod desde rangos de CIDR secundarios en tu VPC.
Cuando utilizas redes personalizadas en el CNI de Amazon VPC, las redes personalizadas crean interfaces de red secundarias en la subred del archivo ENIConfig. A continuación, el CNI de Amazon VPC asigna las direcciones IP de los pods desde la subred para que los pods puedan usar diferentes grupos de seguridad desde la interfaz de red principal del nodo.
Nota: Si utilizas tanto la detección de subredes mejorada como las redes personalizadas, las redes personalizadas tienen prioridad.
Para el rango CIDR secundario, utiliza CIDR (/16) de CG-NAT. Por ejemplo, usa 100.64.0.0/10 o 198.19.0.0/16. Estos rangos son menos comunes en las redes corporativas que los rangos RFC1918.
Para obtener más información, consulta Personalización de la interfaz de red secundaria en los nodos de Amazon EKS.
Activación de la delegación de prefijos
Las instancias de Amazon Elastic Compute Cloud (EC2) basadas en Nitro pueden usar la delegación de prefijos. La delegación de prefijos asigna prefijos de direcciones IPv4 /28 en lugar de direcciones IP únicas.
Para activar la delegación de prefijos, ejecuta uno de los siguientes comandos para tu sistema operativo (SO).
Linux:
kubectl set env ds aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true
Windows:
kubectl patch configmap amazon-vpc-cni -n kube-system --type merge -p '{"data": {"enable-windows-prefix-delegation": "true", "enable-windows-ipam": "true"}}'
Cuando las direcciones IP de la subred se fragmentan, la delegación de prefijos puede fallar porque requiere bloques contiguos de direcciones IP. Entonces, es posible que recibas el siguiente mensaje de error en los registros CNI de la VPC:
"Failed to allocate a private IP/Prefix address: InsufficientCidrBlocks: There are not enough free cidr blocks in the specified subnet to satisfy the request."
Para resolver este problema, usa las reservas de CIDR de subred de VPC para reservar direcciones IP para la asignación de prefijos. A continuación, el complemento CNI de la VPC asigna los prefijos de las direcciones IP reservadas.
Establecimiento de los parámetros de optimización de CNI
Para mantener disponible una cantidad específica de direcciones IP, define los parámetros WARM_IP_TARGET, MINIMUM_IP_TARGET y WARM_ENI_TARGET.
Establece el parámetro WARM_IP_TARGET para mantener un número específico de direcciones IP en cada nodo. Establece el parámetro MINIMUM_IP_TARGET para mantener siempre un número mínimo de direcciones IP disponibles. Establece el parámetro WARM_ENI_TARGET para mantener un número específico de interfaces de red que tengan direcciones IP disponibles.
Para obtener más información, consulta WARM_ENI_TARGET, WARM_IP_TARGET and MINIMUM_IP_TARGET en el sitio web de GitHub.
Para establecer WARM_IP_TARGET, ejecuta el siguiente comando:
kubectl set env ds aws-node -n kube-system WARM_IP_TARGET=YOUR_TARGET_VALUE
Nota: Sustituye YOUR_TARGET_VALUE por tu número de objetivo de IP semiactiva.
Para establecer MINIMUM_IP_TARGET, ejecuta el siguiente comando:
kubectl set env ds aws-node -n kube-system MINIMUM_IP_TARGET=YOUR_MIN_VALUE
Nota: Sustituye YOUR_MIN_VALUE por el número mínimo de objetivo de IP.
Para configurar WARM_ENI_TARGET, ejecuta el siguiente comando:
kubectl set env ds aws-node -n kube-system WARM_ENI_TARGET=YOUR_ENI_VALUE
Nota: Sustituye YOUR_ENI_VALUE por el número objetivo de interfaz de red semiactiva.
Supervisión del uso de las direcciones IP
Para supervisar el uso de las direcciones IP del clúster y evitar que se agoten, lleva a cabo las siguientes acciones:
- Instala el asistente de métricas de CNI para supervisar la asignación de direcciones IP. Para instalar la herramienta, consulta cni-metrics-helper en el sitio web de GitHub. Para obtener más información sobre la herramienta, consulta Asistente de métricas de CNI.
- Utiliza Información de contenedores de Amazon Cloudwatch para supervisar las siguientes métricas del uso de direcciones IP de tu clúster:
awscni_total_ip_addresses: el número total de direcciones IP que administra el CNI de Amazon VPC.
awscni_assigned_ip_addresses: la cantidad de direcciones IP que has asignado a los pods.
awscni_available_ip_addresses: la cantidad de direcciones IP disponibles para los nuevos pods. - Crea una alarma de CloudWatch para cuando las direcciones IP disponibles estén por debajo del mínimo requerido. Además, crea una alarma para cuando tu uso supere tu límite.
Implementación de las prácticas recomendadas para los nuevos despliegues de clústeres
Para los nuevos despliegues de clústeres de Amazon EKS, implementa las siguientes prácticas recomendadas:
- Al crear la VPC, configura los bloques de CIDR con suficientes direcciones IP. Por ejemplo, /16 proporciona 65 546 direcciones IP. Para obtener más información, consulta Cómo funciona Amazon VPC.
- Asigna una dirección IPv6 a tu clúster.
- Temas
- Containers
- Etiquetas
- Amazon Elastic Kubernetes Service
- Idioma
- Español

Contenido relevante
preguntada hace 2 años
preguntada hace un año
preguntada hace 6 meses
preguntada hace un año