Helm を使用して Amazon EKS クラスターにパッケージをインストールする - Amazon SageMaker

Helm を使用して Amazon EKS クラスターにパッケージをインストールする

SageMaker HyperPod クラスターを作成して Amazon EKS クラスターにアタッチする前に、Kubernetes のパッケージマネージャーである Helm を使用してパッケージをインストールする必要があります。Helm は、Kubernetes クラスターのインストールプロセスを設定するためのオープンソースツールです。これにより、依存関係のインストールの自動化と合理化が可能になり、SageMaker HyperPod クラスターのオーケストレーター (コントロールプレーン) として Amazon EKS クラスターを準備するために必要なさまざまな設定が簡素化されます。

SageMaker HyperPod サービスチームは、デバイス/EFA プラグイン、Kueue、Kubeflow Training Operator、および関連するアクセス許可設定などの主要な依存関係をバンドルした Helm チャートパッケージを提供します。

重要

この Helm インストールステップは必須のステップです。提供された Helm チャートを使用して Amazon EKS クラスターを設定しないと、SageMaker HyperPod クラスターが正しく機能しないか、作成プロセスが完全に失敗する可能性があります。aws-hyperpod 名前空間名は変更できません。

  1. ローカルマシンに Helm をインストールします。

  2. SageMaker HyperPod CLI リポジトリhelm_chart/HyperPodHelmChart にある SageMaker HyperPod が提供する Helm チャートをダウンロードします。

    git clone https://github.com/aws/sagemaker-hyperpod-cli.git cd sagemaker-hyperpod-cli/helm_chart
  3. Helm チャートの依存関係を更新して、Kubernetes クラスターに加えられる変更をプレビューし、Helm チャートをインストールします。

    helm dependencies update HyperPodHelmChart
    helm install hyperpod-dependencies HyperPodHelmChart --dry-run
    helm install hyperpod-dependencies HyperPodHelmChart

要約すると、Helm インストールでは、ジョブスケジューリングとキューイング (キュー)、ストレージ管理、MLflow 統合、Kubeflow など、Amazon EKS クラスターのさまざまなコンポーネントが設定されます。さらに、このチャートでは、必要なコンポーネントである SageMaker HyperPod クラスターの回復機能と統合するため、次のコンポーネントがインストールされます。

  • ヘルスモニタリングエージェント – これにより、SageMaker HyperPod が提供するヘルスモニタリングエージェントがインストールされます。これは、HyperPod クラスターをモニタリングする場合に必要です。ヘルスモニタリングエージェントは、次のように Docker イメージとして提供されます。Helm チャートで提供されている values.yaml では、イメージがプリセットされています。エージェントは、GPU ベースのインスタンスと Trainium アクセラレータベースのインスタンス (trn1trn1ninf2) をサポートしています。aws-hyperpod 名前空間にインストールされます。

    590183648699.dkr.ecr.us-west-2.amazonaws.com/hyperpod-health-monitoring-agent:1.0.230.0_1.0.19.0
  • ディープヘルスチェック – これにより、ClusterRoleaws-hyperpod 名前空間の ServiceAccount (deep-health-check-service-account)、および ClusterRoleBinding が設定され、SageMaker HyperPod ディープヘルスチェック機能が有効になります。ディープヘルスチェック用の Kubernetes RBAC ファイルの詳細については、SageMaker HyperPod CLI GitHub リポジトリの設定ファイル deep-health-check-rbac.yaml を参照してください。

  • job-auto-restart - これにより、ClusterRoleaws-hyperpod 名前空間の ServiceAccount (job-auto-restart)、および ClusterRoleBinding が設定され、SageMaker HyperPod で PyTorch トレーニングジョブの自動再起動機能が有効になります。job-auto-restart の Kubernetes RBAC ファイルの詳細については、SageMaker HyperPod CLI GitHub リポジトリの設定ファイル job-auto-restart-rbac.yaml を参照してください。

  • Kubeflow MPI 演算子MPI Operator は、Kubernetes クラスターでメッセージパッシングインターフェイス (MPI) を使用して分散機械学習 (ML) およびハイパフォーマンスコンピューティング (HPC) ワークロードの実行を簡素化する Kubernetes 演算子です。MPI Operator v0.5 をインストールします。mpi-operator 名前空間にインストールされます。

  • nvidia-device-plugin – これは、Amazon EKS クラスター内のコンテナで使用するために NVIDIA GPU を自動的に公開できる Kubernetes デバイスプラグインです。これにより、Kubernetes は、そのコンテナのリクエストされた GPU を割り当ててアクセスできるようになります。GPU でインスタンスタイプを使用する場合に必要です。

  • neuron-device-plugin – これは、Amazon EKS クラスター内のコンテナで使用するために AWS Inferentia チップを自動的に公開できる Kubernetes デバイスプラグインです。これにより、Kubernetes はクラスターノード上の AWS Inferentia チップにアクセスして使用できます。Neuron インスタンスタイプを使用する場合に必要です。

  • aws-efa-k8s-device-plugin – これは、Amazon EKS クラスターで AWS Elastic Fabric Adapter (EFA) を使用できるようにする Kubernetes デバイスプラグインです。EFA は、クラスター内のインスタンス間で低レイテンシーかつ高スループットの通信を提供するネットワークデバイスです。EFA によりサポートされているインスタンスタイプを使用する場合に必要です。

提供された Helm チャートを使用したインストール手順の詳細については、SageMaker HyperPod CLI リポジトリ の README ファイルを参照してください。