Ayude a mejorar esta página
Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.
Administración de la computación para cargas de trabajo de IA y ML en Amazon EKS con grupos de nodos
sugerencia
Regístrese
En esta sección, se trata cómo administrar la computación acelerada (AWS Trainium, GPU de NVIDIA) para las cargas de trabajo de entrenamiento de IA e inferencia con grupos de nodos administrados o nodos autoadministrados de Amazon EKS.
Los grupos de nodos administrados y los nodos autoadministrados de EKS utilizan los grupos de escalado automático (ASG) de EC2. Los grupos de nodos administrados de EKS cuentan con API de EKS específicas para crear, actualizar y eliminar nodos, y también incorporan la funcionalidad de reparación de nodos y los enlaces de terminación del ciclo de vida integrados. Los nodos autoadministrados de EKS se implementan y administran directamente a través de las API de EC2.
Con estas opciones, puede definir el tipo de instancia, la cantidad deseada, los límites de escalado y la plantilla de lanzamiento de EC2 por adelantado. Considere la posibilidad de utilizar grupos de nodos administrados o nodos autoadministrados de EKS si también tiene cargas de trabajo que no son de EKS y prefiere la coherencia de la configuración mediante las plantillas de lanzamiento de EC2. Los grupos de nodos de EKS son ideales para cargas de trabajo de entrenamiento y refinamiento en las que se conoce de antemano el consumo de computación acelerada. Tenga en cuenta que tanto el modo automático de EKS como Karpenter también admiten el aprovisionamiento de capacidad estática; consulte Administración de la computación para cargas de trabajo de IA y ML con el modo automático de EKS y Karpenter para obtener más información.
Los grupos de nodos administrados y los nodos autoadministrados de EKS admiten todas las opciones de compra de computación acelerada (bajo demanda, spot, reservas de capacidad bajo demanda y bloques de capacidad para ML). Debe crear un grupo de nodos administrados o autoadministrados independiente por tipo de capacidad, cada uno con su propia plantilla de lanzamiento, tipos de instancias y configuración de escalado. Esto le proporciona un control explícito y respaldado por ASG sobre cada grupo de capacidades sin una lógica de aprovisionamiento dinámico heterogéneo.
Grupos de nodos administrados frente a nodos autoadministrados de EKS
La elección entre grupos de nodos administrados y nodos autoadministrados de EKS depende del nivel de personalización y control que necesite. Los grupos de nodos administrados de EKS permiten personalizar un subconjunto de plantillas de lanzamiento de EC2, mientras que los nodos autoadministrados admiten toda la gama de plantillas de lanzamiento de EC2. Si no tiene ningún motivo específico para personalizar y administrar el ciclo de vida de los nodos por su cuenta, comience con los grupos de nodos administrados de EKS y pase a los nodos autoadministrados solo cuando lo exija un requisito específico.
Utilice grupos de nodos administrados cuando: desee que EKS gestione la selección de AMI, el arranque de nodos, las actualizaciones continuas, la reparación de nodos y los flujos de trabajo de vaciado controlado en su nombre. Los grupos de nodos administrados de EKS son el punto de partida recomendado si no prefiere utilizar el modo automático de EKS o Karpenter para las cargas de trabajo de entrenamiento e inferencia. Al utilizar bloques de capacidad para ML, los grupos de nodos administrados de EKS crean automáticamente una política de escalado programada que vacía el grupo de nodos 40 minutos antes de que finalice la reserva, lo que elimina la necesidad de utilizar AWS Node Termination Handler
Utilice grupos de nodos autoadministrados cuando: necesite un control total sobre la plantilla de lanzamiento de EC2, la AMI, los parámetros del kernel, la configuración del tiempo de ejecución del contenedor o los scripts de arranque personalizados. Las situaciones más comunes de ML incluyen ajustar la configuración del kernel y la NIC para el entrenamiento distribuido con Elastic Fabric Adapter (EFA) o la integración con un controlador de ciclo de vida de nodos personalizado. Los nodos autoadministrados le ofrecen la flexibilidad de enviar los datos de usuario y el perfil de instancia de IAM que necesite, pero asumirá la responsabilidad de las actualizaciones, las políticas de escalado programadas y los enlaces del ciclo de vida, como AWS Node Termination Handler
Reserva de GPU con bloques de capacidad para ML
Los bloques de capacidad para machine learning (ML) le permiten reservar instancias de GPU en una fecha futura para cargas de trabajo de entrenamiento o inferencia con límite de tiempo. Para obtener más información, consulte Bloques de capacidad para ML en la Guía del usuario de Amazon EC2.
Puede utilizar reservas de bloques de capacidad a través de grupos de nodos administrados y nodos autoadministrados de EKS. La configuración de la plantilla de lanzamiento de EC2 es la misma en ambos casos. El flujo de trabajo de creación de nodos, el comportamiento de reducción vertical y los enlaces del ciclo de vida para la finalización de la carga de trabajo difieren según las opciones de aprovisionamiento.
Consideraciones
-
Los bloques de capacidad solo están disponibles para determinados tipos de instancias de Amazon EC2 y regiones de AWS. Consulte Requisitos previos para trabajar con bloques de capacidad para obtener más información.
-
Los bloques de capacidad son zonales. Durante la creación del grupo de nodos, debe usar la subred en la misma zona de disponibilidad (AZ) que la reserva del bloque de capacidad.
-
Si crea un grupo de nodos antes de que se active la reserva del bloque de capacidad, establezca la capacidad deseada en
0durante la creación del grupo de nodos. -
Para dejar tiempo suficiente para el vaciado controlado de las cargas de trabajo, programe el escalado a cero más de 30 minutos antes de que finalice la reserva del bloque de capacidad. EC2 comienza a cerrar las instancias 30 minutos antes de que acabe la reserva.
Creación de grupos de nodos administrados con bloques de capacidad para ML
Los grupos de nodos administrados y los nodos autoadministrados de EKS requieren el uso de una plantilla de lanzamiento de EC2 personalizada que tenga como destino la reserva del bloque de capacidad. A continuación se muestran los campos mínimos obligatorios para los grupos de nodos administrados y los nodos autoadministrados de EKS. Se requieren campos adicionales para los nodos autoadministrados, como se muestra en los pasos de los nodos autoadministrados que se indican a continuación.
Los LaunchTemplateData deben incluir lo siguiente:
-
InstanceMarketOptionsconMarketTypeestablecido en"capacity-block" -
CapacityReservationSpecification: CapacityReservationTargetconCapacityReservationIdestablecido en el ID del bloque de capacidad. Por ejemplo,cr-0123456789abcdef0. -
InstanceTypeestablecido en el tipo de instancia de la reserva del bloque de capacidad. Por ejemplo,p5.48xlarge.
Estos requisitos se muestran en los ejemplos que aparecen a continuación para crear la plantilla de lanzamiento para los grupos de nodos administrados y los nodos autoadministrados de EKS.