Uso del controlador CSI de Amazon EBS en clústeres de SageMaker HyperPod EKS - Amazon SageMaker AI

Uso del controlador CSI de Amazon EBS en clústeres de SageMaker HyperPod EKS

SageMaker HyperPod admite el controlador de la interfaz de almacenamiento de contenedores (CSI) de Amazon Elastic Block Store (Amazon EBS), que administra el ciclo de vida de los volúmenes de Amazon EBS como almacenamiento para los volúmenes de Kubernetes que se crean. Con el controlador CSI de Amazon EBS puede crear, asociar y administrar sus volúmenes de Amazon EBS para sus cargas de trabajo de machine learning que se ejecutan en clústeres de SageMaker HyperPod con la orquestación de Amazon EKS.

Capacidades de almacenamiento clave

El controlador CSI de Amazon EBS de SageMaker HyperPod admite las siguientes capacidades de almacenamiento.

  • Aprovisionamiento estático: asocia los volúmenes de Amazon EBS creados previamente con los volúmenes persistentes de Kubernetes para usarlos en sus pods.

  • Aprovisionamiento dinámico: crea automáticamente volúmenes de Amazon EBS y volúmenes persistentes asociados desde PersistentVolumeClaims. Se pueden transferir los parámetros mediante StorageClass para obtener un control detallado de la creación de volúmenes.

  • Redimensionamiento del volumen: amplía los volúmenes existentes mediante la actualización de la especificación de tamaño de PersistentVolumeClaims sin interrumpir las cargas de trabajo en ejecución. Esto puede resultar esencial para administrar el crecimiento de los repositorios de modelos o para adaptarse a nodos más grandes sin interrumpir el servicio.

  • Instantáneas de volúmenes: crea instantáneas de volúmenes en un momento dado que se utilizan para realizar copias de seguridad, recuperación y control de versiones de datos.

  • Volúmenes de bloques: proporciona acceso sin procesar a dispositivos de bloques para aplicaciones de alto rendimiento que requieren acceso directo al almacenamiento.

  • Modificación del volumen: cambia las propiedades del volumen, como el tipo, las operaciones de entrada o salida por segundo (IOPS) o el rendimiento usando clases de atributos de volumen.

Para obtener más información sobre el controlador CSI de Amazon EBS, consulte Uso del almacenamiento de volúmenes de Kubernetes con Amazon EBS en la Guía del usuario de Amazon EKS.

Para obtener más información sobre el almacenamiento en los pods de su clúster, consulte Almacenamiento en la Documentación de Kubernetes.

Casos de uso

La integración del controlador CSI de Amazon EBS permite varios casos de uso clave para las cargas de trabajo de entrenamiento y de inferencia en los clústeres de SageMaker HyperPod EKS.

Cargas de trabajo de entrenamiento

  • Almacenamiento de conjuntos de datos: aprovisione volúmenes para los conjuntos de datos de entrenamiento que persisten tras el reinicio del pod

  • Almacenamiento de puntos de comprobación: guarde los puntos de comprobación del modelo y los resultados de los entrenamientos intermedios

  • Artefactos compartidos: acceda a conjuntos de datos y artefactos de modelo comunes en varios trabajos de entrenamiento

Cargas de trabajo de inferencia

  • Almacenamiento de modelos: aprovisione dinámicamente volúmenes del tamaño adecuado en función de los requisitos del modelo

  • Almacenamiento en caché de contenedores: cree un almacenamiento efímero para mejorar el rendimiento de las inferencias

  • Registro de eventos: almacene los resultados y registros de inferencias con un almacenamiento persistente

Configuración del controlador CSI de Amazon EBS en clústeres de SageMaker HyperPod

El controlador de la interfaz de almacenamiento de contenedores (CSI) de Amazon Elastic Block Store (Amazon EBS) le permite aprovisionar y administrar de forma dinámica los volúmenes de Amazon EBS para sus cargas de trabajo en contenedores que se ejecutan en clústeres de SageMaker HyperPod con la orquestación de EKS. En esta sección, se explica cómo instalar y configurar el controlador CSI de Amazon EBS para habilitar el almacenamiento persistente para sus cargas de trabajo de machine learning.

Requisitos previos

Antes de comenzar, haga lo siguiente:

Permisos adicionales

Para configurar el complemento del controlador CSI de Amazon EBS, siga las instrucciones de Uso del almacenamiento de volúmenes de Kubernetes con Amazon EBS en la Guía del usuario de Amazon EKS. También debe añadir los siguientes permisos adicionales al rol de IAM utilizado para ejecutar el complemento del controlador. Tenga en cuenta que este es el rol de IAM especificado en la configuración de su cuenta de servicio para el complemento del controlador, no el rol de ejecución del clúster de HyperPod.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:AttachClusterNodeVolume", "sagemaker:DetachClusterNodeVolume" ], "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*" }, { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name" } ] }

Uso de las API

Como alternativa, puede utilizar las operaciones de la API AttachClusterNodeVolume y DetachClusterNodeVolume para asociar y desasociar sus volúmenes de Amazon EBS de las instancias de clúster de SageMaker HyperPod EKS.

Los requisitos clave para usar estas API son los siguientes:

  • Tanto el volumen de Amazon EBS como el clúster de SageMaker HyperPod EKS deben ser propiedad de la misma Cuenta de AWS.

  • La entidad principal que realiza la llamada necesita unos permisos mínimos específicos para realizar correctamente la operación de asociación o desasociación. Para obtener más información sobre los permisos mínimos, consulte las siguientes secciones.

  • Después de asociar un volumen al nodo de HyperPod, siga las instrucciones de Acceso a los nodos del clúster de SageMaker HyperPod para acceder al nodo del clúster y Make a volume available for use para montar el volumen asociado.

Permisos requeridos para las acciones de los sagemaker:AttachClusterNodeVolume

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:AttachClusterNodeVolume" ], "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*" }, { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name" }, { "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DescribeVolume" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*" } ] }

Permisos requeridos para las acciones de los sagemaker:DetachClusterNodeVolume

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:DetachClusterNodeVolume" ], "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*" }, { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name" }, { "Effect": "Allow", "Action": [ "ec2:DetachVolume", "ec2:DescribeVolume" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*" } ] }

Permisos requeridos para las claves de AWS KMS

Agregue los siguientes permisos de AWS KMS únicamente si utiliza claves de KMS administradas por el cliente para cifrar los volúmenes de Amazon EBS asociados a los nodos del clúster de HyperPod. Estos permisos no son necesarios si utiliza claves de KMS administradas por AWS (la opción de cifrado predeterminada).

{ "Version": "2012-10-17", "Id": "key-default-1", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/caller-role" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/caller-role" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "111122223333", "kms:ViaService": "ec2.region.amazonaws.com" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:ebs:id" }, "Bool": { "kms:GrantIsForAWSResource": true }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt" ] } } } ] }
nota

Estos permisos de AWS KMS no son necesarios para sagemaker:DetachClusterNodeVolume al desasociar un volumen de Cluster Auto Volume Attachment (CAVA) cifrado con claves de KMS administradas por el cliente.