Elección de un tipo de instancia de Amazon EC2 - Amazon EKS

Ayude a mejorar esta página

¿Quiere contribuir a esta guía del usuario? Desplácese hasta el final de esta página y seleccione Editar esta página en GitHub. Sus contribuciones ayudarán a que nuestra guía del usuario sea mejor para todos.

Elección de un tipo de instancia de Amazon EC2

Amazon EC2 proporciona una amplia selección de tipos de instancias para nodos de trabajo. Cada tipo de instancia ofrece diferentes capacidades de computación, memoria y almacenamiento. Cada instancia se agrupa también en una familia de instancias en función de dichas características. Para obtener una lista, consulte Tipos de instancias disponibles en la Guía del usuario de Amazon EC2 y Tipos de instancias disponibles en la Guía del usuario de Amazon EC2. Amazon EKS publica diferentes variaciones de las AMI de Amazon EC2 para habilitar el soporte. Para asegurarse de que el tipo de instancia que seleccione es compatible con Amazon EKS, tenga en cuenta los siguientes criterios.

  • En la actualidad, las AMI de Amazon EKS no admiten las familias g5g y mac.

  • Las AMI de Arm y no aceleradas de Amazon EKS no admiten las familias g3, g4, inf y p.

  • Las AMI aceleradas de Amazon EKS no admiten las familias a, c, hpc, m y t.

  • Para las instancias basadas en ARM, Amazon Linux 2023 (AL2023) solo admite tipos de instancias que utilizan procesadores Graviton2 o posteriores. AL2023 no admite instancias A1.

Al elegir entre los tipos de instancias admitidos por Amazon EKS, tenga en cuenta las siguientes capacidades de cada tipo.

Número de instancias de un grupo de nodos

En general, que haya menos instancias y que sean más grandes es mejor, especialmente si tiene muchos Daemonsets. Cada instancia requiere llamadas a la API para el servidor de API, por lo que cuantas más instancias tenga, más carga tendrá el servidor de API.

Sistema operativo

Revise los tipos de instancias admitidos para Linux, Windows y Bottlerocket. Antes de crear instancias de Windows, revise Activación de la compatibilidad con Windows para su clúster de Amazon EKS.

Arquitectura de hardware

¿Necesita x86 o Arm? Solo puede implementar Linux en Arm. Antes de implementar instancias de Arm, revise AMI de Amazon Linux optimizada para Amazon EKS Arm. ¿Necesita instancias integradas en Nitro System (Linux o Windows) o que tengan capacidades aceleradas? Si necesita capacidades aceleradas, solo puede utilizar Linux con Amazon EKS.

Número máximo de Pods

Dado que a cada Pod se le asigna su propia dirección IP, la cantidad de direcciones IP admitidas por un tipo de instancia es un factor que se considera a la hora de determinar el número de Pods que se pueden ejecutar en la instancia. Para determinar en forma manual cuántos Pods admite un tipo de instancia, consulte Número máximo de Pods recomendado por Amazon EKS para cada tipo de instancia de Amazon EC2.

nota

Si utiliza una AMI de Amazon Linux 2 optimizada para Amazon EKS, v20220406 o posterior, puede utilizar un nuevo tipo de instancia sin actualizar a la última AMI. Para estas AMI, la AMI calcula automáticamente el valor max-pods necesario si no se incluye en el archivo eni-max-pods.txt. Es posible que Amazon EKS no admita los tipos de instancias que se encuentran en vista previa de forma predeterminada. Aún se deben agregar valores para max-pods para estos tipos a eni-max-pods.txt en nuestra AMI.

Los tipos de instancia AWS Nitro System admiten opcionalmente más direcciones IP que los tipos de instancias que no son Nitro System. Sin embargo, no todas las direcciones IP asignadas a una instancia están disponibles para los Pods. Para asignar un número significativamente mayor de direcciones IP a sus instancias, debe tener la versión 1.9.0 o posterior del complemento Amazon VPC CNI instalada en el clúster y configurada de forma adecuada. Para obtener más información, consulte Aumentar la cantidad de direcciones IP disponibles para sus nodos de Amazon EC2. Para asignar el mayor número de direcciones IP a sus instancias, debe tener la versión 1.10.1 o posterior del complemento Amazon VPC CNI instalada en su clúster, e implementar este con la familia IPv6.

Familia de IP

Puede usar cualquier tipo de instancia compatible cuando utilice la familia IPv4 para un clúster, que permite que su clúster asigne direcciones privadas IPv4 a sus Pods y servicios. Pero si desea usar la familia IPv6 para su clúster, entonces debe usar tipos de instancias AWS Nitro System o tipos de ejemplares bare metal. Solo se admite IPv4 en las instancias de Windows. Su clúster debe ejecutar la versión 1.10.1 o posterior del complemento Amazon VPC CNI. Para obtener más información acerca del uso de IPv6, consulte Direcciones IPv6 de clústeres, Pods y services.

Versión del complemento CNI de Amazon VPC que ejecuta

La versión más reciente del complemento CNI de Amazon VPC para Kubernetes es compatible con estos tipos de instancias. Es posible que tenga que actualizar la versión del complemento CNI de Amazon VPC para aprovechar los últimos tipos de instancia admitidos. Para obtener más información, consulte Trabajar con el complemento Amazon VPC CNI plugin for Kubernetes de Amazon EKS. La última versión admite las características más recientes para el uso con Amazon EKS. Las versiones anteriores no admiten todas las características. Puede ver las características compatibles con las distintas versiones en Changelog en GitHub.

Región de AWS en la que va a crear los nodos

No todos los tipos de instancias están disponibles en todas las Regiones de AWS.

Si utiliza grupos de seguridad para Pods

Si utiliza grupos de seguridad para Pods, solo se admiten tipos de instancia específicos. Para obtener más información, consulte Grupos de seguridad de Pods.

Número máximo de Pods recomendado por Amazon EKS para cada tipo de instancia de Amazon EC2

Dado que a cada Pod se le asigna su propia dirección IP, la cantidad de direcciones IP admitidas por un tipo de instancia es un factor que se considera a la hora de determinar el número de Pods que se pueden ejecutar en la instancia. Amazon EKS proporciona un script que puede descargar y ejecutar para determinar el número máximo de Pods recomendado por Amazon EKS para ejecutar en cada tipo de instancia. El script utiliza los atributos de hardware de cada instancia y las opciones de configuración para determinar el número máximo de Pods. Puede utilizar el número devuelto en estos pasos para habilitar capacidades como la asignación de direcciones IP a Pods desde una subred diferente a la de la instancia y el aumento significativo del número de direcciones IP de la instancia. Si utiliza un grupo de nodos administrado con varios tipos de instancias, utilice un valor que funcione para todos los tipos de instancias.

  1. Descargue un script que pueda utilizar para calcular el número máximo de Pods para cada tipo de instancia.

    curl -O https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/templates/al2/runtime/max-pods-calculator.sh
  2. Marque el script como ejecutable en el equipo.

    chmod +x max-pods-calculator.sh
  3. Ejecute el script, mediante el reemplazo de m5.large por el tipo de instancia que planea implementar y 1.9.0-eksbuild.1 por su versión del complemento CNI de Amazon VPC. Para determinar la versión del complemento, consulte los procedimientos de actualización en Trabajar con el complemento Amazon VPC CNI plugin for Kubernetes de Amazon EKS.

    ./max-pods-calculator.sh --instance-type m5.large --cni-version 1.9.0-eksbuild.1

    Un ejemplo de salida sería el siguiente.

    29

    Puede agregar las siguientes opciones al script para ver el número máximo de Pods admitido cuando se utilizan capacidades opcionales.

    • --cni-custom-networking-enabled: utilice esta opción si desea asignar direcciones IP desde una subred distinta a la de su instancia. Para obtener más información, consulte Redes personalizadas para los pods. La adición de esta opción al script anterior con los mismos valores de ejemplo produce 20.

    • --cni-prefix-delegation-enabled: utilice esta opción cuando desee asignar un número significativamente mayor de direcciones IP a cada interfaz de red elástica. Esta capacidad requiere una instancia de Amazon Linux que se ejecute en Nitro System y en la versión 1.9.0 o posterior del complemento CNI de Amazon VPC. Para obtener más información, consulte Aumentar la cantidad de direcciones IP disponibles para sus nodos de Amazon EC2. La adición de esta opción al script anterior con los mismos valores de ejemplo produce 110.

También puede ejecutar el script con la opción --help para ver todas las opciones disponibles.

nota

El script para el cálculo del máximo de Pods limita el valor devuelto a 110 en función de los umbrales de escalabilidad de Kubernetes y la configuración recomendada. Si su tipo de instancia tiene más de 30 vCPU, este límite aumenta a 250, un número basado en las pruebas internas del equipo de escalabilidad de Amazon EKS. Para obtener más información, consulte la entrada del blog Complemento CNI de Amazon VPC que aumenta los límites de pods por nodo.