Instalación de paquetes en el clúster de Amazon EKS mediante Helm - Amazon SageMaker AI

Instalación de paquetes en el clúster de Amazon EKS mediante Helm

Antes de crear un clúster de SageMaker HyperPod y asociarlo a un clúster de Amazon EKS, debe instalar los paquetes mediante Helm, un administrador de paquetes para Kubernetes. Helm es una herramienta de código abierto para configurar un proceso de instalación para los clústeres de Kubernetes. Permite la automatización y la optimización de las instalaciones de dependencias y simplifica varias configuraciones necesarias para preparar el clúster de Amazon EKS como el orquestador (plano de control) de un clúster de SageMaker HyperPod.

El equipo de servicio de SageMaker HyperPod proporciona un paquete de gráficos de Helm, que incluye dependencias clave, como, por ejemplo, los complementos de dispositivo/EFA, complementos, Kubeflow Training Operator y las configuraciones de permisos asociadas.

importante

Este paso de instalación de Helm es obligatorio. Si configura su clúster de Amazon EKS con Consola de administración de AWS o CloudFormation, puede omitir este paso porque la instalación se gestiona automáticamente durante el proceso de configuración. Si configura el clúster directamente con las API, utilice el gráfico de Helm proporcionado para configurar el clúster de Amazon EKS. Si no configura el clúster de Amazon EKS con el gráfico de Helm proporcionado, es posible que el clúster de SageMaker HyperPod no funcione correctamente o que se produzca un error en el proceso de creación. No se puede modificar el nombre del espacio de nombres de aws-hyperpod.

  1. Instale Helm en el equipo local.

  2. Descargue los gráficos de Helm proporcionados por SageMaker HyperPod que se encuentran en helm_chart/HyperPodHelmChart del repositorio de la CLI de SageMaker HyperPod.

    git clone https://github.com/aws/sagemaker-hyperpod-cli.git cd sagemaker-hyperpod-cli/helm_chart
  3. Actualice las dependencias del gráfico de Helm, obtenga una vista previa de los cambios que se realizarán en el clúster de Kubernetes e instale el gráfico de Helm.

    helm dependencies update HyperPodHelmChart
    helm install hyperpod-dependencies HyperPodHelmChart --namespace kube-system --dry-run
    helm install hyperpod-dependencies HyperPodHelmChart --namespace kube-system

En resumen, la instalación de Helm configura varios componentes para el clúster de Amazon EKS, como la programación y las colas de trabajos (Kueue), la administración del almacenamiento, la integración de MLflow y Kubeflow. Además, los gráficos instalan los siguientes componentes para integrarlos con las características de resiliencia del clúster de SageMaker HyperPod, que son componentes necesarios.

  • Agente de supervisión del estado: se instala el agente de supervisión del estado proporcionado por SageMaker HyperPod. Esto es necesario si desea supervisar el clúster de HyperPod. Los agentes de supervisión del estado se proporcionan como imágenes de Docker de la siguiente manera. En los values.yaml proporcionados de los gráficos de Helm, la imagen está preestablecida. El agente admite instancias basadas en la GPU e instancias basadas en el acelerador de Trainium (trn1, trn1n, inf2). Se instala en el espacio de nombres aws-hyperpod.

    590183648699.dkr.ecr.us-west-2.amazonaws.com/hyperpod-health-monitoring-agent:1.0.230.0_1.0.19.0
  • Comprobación de estado exhaustiva: se configura un ClusterRole, una ServiceAccount (deep-health-check-service-account) en el espacio de nombres aws-hyperpod y una ClusterRoleBinding para habilitar la característica de comprobación de estado exhaustiva de SageMaker HyperPod. Para obtener más información sobre el archivo RBAC de Kubernetes para una comprobación de estado exhaustiva, consulte el archivo de configuración deep-health-check-rbac.yaml del repositorio de GitHub de la CLI de SageMaker HyperPod.

  • job-auto-restart: se configura un ClusterRole, una ServiceAccount (job-auto-restart) en el espacio de nombres aws-hyperpod y una ClusterRoleBinding para habilitar la característica de reinicio automático para los trabajos de entrenamiento de PyTorch en SageMaker HyperPod. Para obtener más información sobre el archivo RBAC de Kubernetes para job-auto-restart, consulte el archivo de configuración job-auto-restart-rbac.yaml del repositorio de GitHub de la CLI de SageMaker HyperPod.

  • Operador de MPI de Kubeflow: el MPI Operator es un operador de Kubernetes que simplifica la ejecución de cargas de trabajo distribuidas de machine learning (ML) y computación de alto rendimiento (HPC) mediante la interfaz de transferencia de mensajes (MPI) en los clústeres de Kubernetes. Instala MPI Operator v0.5. Se instala en el espacio de nombres mpi-operator.

  • nvidia-device-plugin: se trata de un complemento para dispositivos de Kubernetes que le permite exponer automáticamente las GPU de NVIDIA para que las consuman los contenedores del clúster de Amazon EKS. Permite a Kubernetes asignar y proporcionar acceso a las GPU solicitadas para dicho contenedor. Esto es necesario cuando se utiliza un tipo de instancia con GPU.

  • neuron-device-plugin: se trata de un complemento para dispositivos de Kubernetes que le permite exponer automáticamente chips de AWS Inferentia para que los consuman los contenedores del clúster de Amazon EKS. Permite a Kubernetes acceder a los chips AWS Inferentia, y utilizarlos, en los nodos del clúster. Esto es necesario cuando se utiliza un tipo de instancia de Neuron.

  • aws-efa-k8s-device-plugin: se trata de un complemento para dispositivos de Kubernetes que permite el uso de AWS Elastic Fabric Adapter (EFA) en los clústeres de Amazon EKS. El EFA es un dispositivo de red que proporciona una comunicación de baja latencia y alto rendimiento entre las instancias de un clúster. Esto es necesario cuando se utiliza un tipo de instancia compatible con EFA.

Para obtener más información sobre el procedimiento de instalación mediante los gráficos de Helm proporcionados, consulte el archivo README del repositorio de la CLI de SageMaker HyperPod.