Consideraciones sobre la VPC del clúster - Amazon EKS

Consideraciones sobre la VPC del clúster

Amazon EKS recomienda ejecutar un clúster en una VPC con subredes públicas y privadas para que Kubernetes pueda crear balanceadores de carga públicos en las subredes públicas que equilibren la carga de tráfico con los pods que se ejecutan en los nodos de las subredes privadas. Sin embargo, esta configuración no es necesaria. Puede ejecutar un clúster en una VPC con solo subredes privadas o públicas, en función de los requisitos de red y seguridad. Para obtener más información sobre los clústeres implementados en una VPC con solo subredes privadas, consulte Clústeres privados.

Cuando se crea un clúster de Amazon EKS, se especifican las subredes de VPC en las que Amazon EKS puede colocar las interfaces de red elásticas. Amazon EKS requiere subredes en al menos dos zonas de disponibilidad y crea hasta cuatro interfaces de red en estas subredes para facilitar la comunicación del plano de control con los nodos. Este canal de comunicación es compatible con funciones de Kubernetes como kubectl exec y kubectl logs. Amazon EKS ha creado un grupo de seguridad de clúster y cualquier grupo de seguridad adicional que especifique al crear el clúster se aplica a estas interfaces de red. Cada interfaz de red creada por Amazon EKS cuenta con <cluster name> de Amazon EKS en su descripción.

Asegúrese de que las subredes que especifique durante la creación del clúster tengan suficientes direcciones IP disponibles para las interfaces de red creadas por Amazon EKS. Recomendamos crear subredes pequeñas (/28) dedicadas para las interfaces de red creadas por Amazon EKS y solo especificar estas subredes como parte de la creación del clúster. Otros recursos, como nodos y balanceadores de carga, deben lanzarse en subredes separadas de las subredes especificadas durante la creación del clúster.

importante
  • Los nodos y los balanceadores de carga se pueden lanzar en cualquier subred de la VPC del clúster, incluidas las subredes sin registrar en Amazon EKS durante la creación del clúster. Las subredes no requieren etiquetas para los nodos. Para que funcione la detección automática de equilibrio de carga de Kubernetes, las subredes deben etiquetarse como se describe en Etiquetado de subredes.

  • Las subredes asociadas con el clúster no se pueden cambiar después de la creación del clúster. Si necesita controlar de forma exacta en qué subredes se colocan las interfaces de red creadas por Amazon EKS, solo especifique dos subredes durante la creación del clúster, cada una en una zona de disponibilidad diferente.

  • No seleccione una subred en AWS Outposts, AWS Wavelength o AWS Local Zones al crear el clúster.

  • Los clústeres creados con la versión 1.14 o anterior contienen una etiqueta "kubernetes.io/cluster/<cluster-name> en su VPC. Esta etiqueta solo la utilizó Amazon EKS y se puede quitar de forma segura.

La VPC debe tener un nombre de anfitrión de DNS y compatibilidad con la resolución de DNS, o los nodos no pueden registrarse en el clúster. Para obtener más información, consulte Utilización de DNS con su VPC en la Guía del usuario de Amazon VPC.

Direcciones IP de la VPC

Los nodos deben poder comunicarse con el plano de control y otros servicios de AWS. Si los nodos se implementan en una subred privada, la subred debe cumplir uno de los siguientes requisitos:

  • Tiene una ruta predeterminada a una gateway NAT. La gateway NAT debe tener asignada una dirección IP pública para proporcionar acceso a Internet a los nodos.

  • Está configurado con los ajustes y requisitos necesarios en Clústeres privados.

Si los nodos autoadministrados se implementan en una subred pública, la subred debe configurarse para asignar de forma automática direcciones IP públicas. De lo contrario, las instancias de nodo deben tener asignada una dirección IP pública cuando se lanzan. Para obtener más información, consulte Asignación de una dirección IPv4 pública durante el lanzamiento de la instancia en la guía del usuario de Amazon VPC. Si los nodos administrados se implementan en una subred pública, la subred debe configurarse para asignar de forma automática direcciones IP públicas. Si la subred no está configurada para asignar de forma automática direcciones IP públicas, no se asignará una dirección IP pública a los nodos. Determine si las subredes públicas están configuradas para asignar automáticamente direcciones IP públicas con el siguiente comando. Reemplace <example values> (incluido <>) con sus propios valores.

aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=<VPC-ID>" | grep 'SubnetId\|MapPublicIpOnLaunch'

Salida

"MapPublicIpOnLaunch": <false>,"SubnetId": "<subnet-aaaaaaaaaaaaaaaaa>","MapPublicIpOnLaunch": <false>,"SubnetId": "<subnet-bbbbbbbbbbbbbbbbb>",

Para las subredes que tienen MapPublicIpOnLaunch establecido como false, cambie la configuración a true.

aws ec2 modify-subnet-attribute --map-public-ip-on-launch --subnet-id <subnet-aaaaaaaaaaaaaaaaa>
importante

Si utilizó una plantilla de AWS AWS CloudFormation de Amazon EKS para implementar la VPC antes del 26 de marzo de 2020, deberá cambiar la configuración de las subredes públicas.

Puede definir rangos de enrutamiento entre dominios sin clases (CIDR) privados (RFC 1918) y públicos (no RFC 1918) en la VPC utilizada para su clúster de Amazon EKS. Para obtener más información, consulte Agregar bloques de CIDR IPv4 a una VPC en la Guía del usuario de Amazon VPC. Al elegir los bloques de CIDR para la VPC y las subredes, asegúrese de que los bloques contienen suficientes direcciones IP para todos los nodos y pods de Amazon EC2 que planea implementar. Debe haber al menos una dirección IP para cada uno de los pods. Puede conservar el uso de direcciones IP al implementar una Transit Gateway con una VPC de servicios compartidos. Para obtener más información, consulte VPC aisladas con servicios compartidos y Patrones de conservación de direcciones IP enrutables de VPC de Amazon EKS en una red híbrida.

Etiquetado de subredes

Para los clústeres 1.18 y anteriores, Amazon EKS agrega la siguiente etiqueta a todas las subredes transmitidas durante la creación del clúster. Amazon EKS no agrega la etiqueta a las subredes transmitidas al crear clústeres 1.19. Si la etiqueta existe en las subredes utilizadas por un clúster creado en una versión anterior a la 1.19 y actualiza el clúster a la 1.19, la etiqueta no se elimina de las subredes.

  • Clave: kubernetes.io/cluster/<cluster-name>

  • Valorshared

Si lo desea, puede utilizar esta etiqueta para controlar dónde se aprovisionan los Elastic Load Balancer, además de las etiquetas de subred necesarias a fin de utilizar los Elastic Load Balancer aprovisionados de forma automática. Para obtener más información sobre el etiquetado de subredes del balanceador de carga, consulte Equilibrio de carga de aplicaciones en Amazon EKS y Equilibrio de carga de red en Amazon EKS.