Installazione di pacchetti sul cluster Amazon EKS con Helm - Amazon SageMaker AI

Installazione di pacchetti sul cluster Amazon EKS con Helm

Prima di creare un cluster SageMaker HyperPod e collegarlo a un cluster Amazon EKS, è necessario installare i pacchetti utilizzando Helm, un gestore dei pacchetti per Kubernetes. Helm è uno strumento open source che consente di configurare un processo di installazione per i cluster Kubernetes. Consente di automatizzare e ottimizzare le installazioni delle dipendenze e semplifica varie configurazioni necessarie per preparare il cluster Amazon EKS come orchestratore (piano di controllo, control-plane) per un cluster SageMaker HyperPod.

Il team di assistenza SageMaker HyperPod fornisce un pacchetto di grafici Helm che crea bundle di dipendenze chiave come i plugin dispositivo/EFA, i plugin, Kubeflow Training Operator e le configurazioni di autorizzazione associate.

Importante

Questa fase di installazione di Helm è obbligatoria. Se configuri il cluster Amazon EKS utilizzando Console di gestione AWS o CloudFormation, puoi saltare questa fase perché l’installazione viene gestita automaticamente durante il processo di configurazione. Se configuri il cluster direttamente con le API, utilizza il grafico Helm fornito per configurare il cluster Amazon EKS. Se il cluster Amazon EKS non viene configurato con il grafico Helm fornito, il cluster SageMaker HyperPod potrebbe non funzionare correttamente o il processo di creazione potrebbe non riuscire affatto. Il nome del namespace aws-hyperpod non può essere modificato.

  1. Installa Helm sul computer locale.

  2. Scarica i grafici Helm forniti da SageMaker HyperPod disponibili in helm_chart/HyperPodHelmChart nel repository GitHub sulla CLI di SageMaker HyperPod.

    git clone https://github.com/aws/sagemaker-hyperpod-cli.git cd sagemaker-hyperpod-cli/helm_chart
  3. Aggiorna le dipendenze del grafico Helm, visualizza in anteprima le modifiche che verranno apportate al cluster Kubernetes e installa il grafico Helm.

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

In sintesi, l’installazione Helm configura vari componenti del cluster Amazon EKS, tra cui la pianificazione e la coda dei processi (Kueue), la gestione dell’archiviazione, l’integrazione di MLflow e Kubeflow. Inoltre, i grafici installano i componenti seguenti obbligatori per l’integrazione con le funzionalità di resilienza del cluster SageMaker HyperPod.

  • Agente di monitoraggio dell’integrità: installa l’agente di monitoraggio dell’integrità fornito da SageMaker HyperPod. Questo strumento è necessario per il monitoraggio del cluster HyperPod. Gli agenti di monitoraggio dell’integrità sono forniti come immagini Docker secondo quanto descritto di seguito. Nei grafici Helm, l’immagine è preimpostata nel file values.yaml fornito. L’agente supporta istanze basate su GPU e istanze basate su Trainium Accelerator (trn1, trn1n, inf2). Viene installato nel namespace aws-hyperpod.

    590183648699.dkr.ecr.us-west-2.amazonaws.com/hyperpod-health-monitoring-agent:1.0.230.0_1.0.19.0
  • Controllo dell’integrità approfondito: imposta un ClusterRole, un ServiceAccount (deep-health-check-service-account) nel namespace aws-hyperpod e un ClusterRoleBinding per abilitare la funzionalità di controllo dell’integrità approfondito di SageMaker HyperPod. Per ulteriori informazioni sul file RBAC Kubernetes per il controllo dell’integrità approfondito, consulta il file di configurazione deep-health-check-rbac.yaml nel repository GitHub sulla CLI di SageMaker HyperPod.

  • job-auto-restart: configura un ClusterRole, un ServiceAccount (job-auto-restart) nel namespace aws-hyperpod e un ClusterRoleBinding per abilitare la funzionalità di riavvio automatico per i job di addestramento PyTorch in SageMaker HyperPod. Per ulteriori informazioni sul file RBAC di Kubernetes per job-auto-restart, consulta il file di configurazione job-auto-restart-rbac.yaml nel repository GitHub sulla CLI di SageMaker HyperPod.

  • Operatore MPI Kubeflow: l’operatore MPI è un operatore Kubernetes che utilizza l’interfaccia per il passaggio dei messaggi (MPI) sui cluster Kubernetes per semplificare l’esecuzione di carichi di lavoro distribuiti di machine learning (ML) e di calcolo ad alte prestazioni (HPC). Installa l’operatore MPI v0.5. Viene installato nel namespace mpi-operator.

  • nvidia-device-plugin: plugin per dispositivi Kubernetes che consente di esporre automaticamente le GPU NVIDIA da utilizzare con i container del cluster Amazon EKS. Consente a Kubernetes di allocare e fornire l’accesso alle GPU richieste per quel container. Richiesto quando si utilizza un tipo di istanza con GPU.

  • neuron-device-plugin: plugin per dispositivi Kubernetes che consente di esporre automaticamente i chip AWS Inferentia da utilizzare con i container del cluster Amazon EKS. Consente a Kubernetes di accedere e utilizzare i chip AWS Inferentia sui nodi del cluster. Richiesto quando si utilizza un tipo di istanza Neuron.

  • aws-efa-k8s-device-plugin: plugin per dispositivi Kubernetes che consente l’utilizzo di AWS Elastic Fabric Adapter (EFA) sui cluster Amazon EKS. EFA è un dispositivo di rete che fornisce comunicazioni a bassa latenza e ad alto throughput tra le istanze di un cluster. Richiesto quando si utilizza un tipo di istanza supportato da EFA.

Per ulteriori informazioni sulla procedura di installazione con i grafici Helm forniti, consulta il file README nel repository GitHub sulla CLI di SageMaker HyperPod.