

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Einen SageMaker HyperPod Cluster erstellen
<a name="sagemaker-hyperpod-eks-operate-cli-command-create-cluster"></a>

Erfahren Sie, wie Sie von Amazon EKS orchestrierte SageMaker HyperPod Cluster mithilfe der AWS CLI erstellen.

1. Bevor Sie einen SageMaker HyperPod Cluster erstellen:

   1. Stellen Sie sicher, dass Sie über einen bestehenden Amazon-EKS-Cluster verfügen, der betriebsbereit ist. Detaillierte Anweisungen zur Einrichtung eines Amazon-EKS-Clusters finden Sie unter [Erstellen eines Amazon-EKS-Clusters](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) im *Benutzerhandbuch für Amazon EKS*.

   1. Installieren Sie das Helm-Chart wie unter [Installation von Paketen auf dem Amazon-EKS-Cluster mit Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md) beschrieben. Wenn Sie einen [Amazon SageMaker HyperPod Nova-Cluster](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp-cluster.html) erstellen, benötigen Sie ein separates Helm-Diagramm.

1. Bereiten Sie ein Skript zur Lebenszykluskonfiguration vor und laden Sie sie in einen Amazon-S3-Bucket hoch, z. B. `s3://amzn-s3-demo-bucket/Lifecycle-scripts/base-config/`.

   Laden Sie für einen schnellen Start das Beispielskript [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts/base-config/on_create.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts/base-config/on_create.sh)aus dem AWS ome Distributed Training GitHub Repository herunter und laden Sie es in den S3-Bucket hoch. Sie können auch zusätzliche Setup-Anweisungen, eine Reihe von Setup-Skripten oder Befehle hinzufügen, die während der HyperPod Cluster-Bereitstellungsphase ausgeführt werden sollen.
**Wichtig**  
Wenn Sie [IAM-Rolle für SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) erstellen und nur die verwaltete [https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-cluster.html](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-cluster.html) anfügen, hat Ihr Cluster Zugriff auf Amazon-S3-Buckets mit dem spezifischen Präfix `sagemaker-`.

   Wenn Sie eine eingeschränkte Instances erstellen, müssen Sie das Lebenszyklusskript nicht herunterladen und ausführen. Stattdessen müssen Sie `install_rig_dependencies.sh` ausführen. 

   Zu den Voraussetzungen für die Ausführung des `install_rig_dependencies.sh`-Skripts gehören:
   + AWS Node (CNI) und CoreDNS sollten beide aktiviert sein. Dies sind Standard-EKS-Add-Ons, die nicht vom SageMaker HyperPod Standard-Helm verwaltet werden, aber einfach in der EKS-Konsole unter Add-Ons aktiviert werden können.
   +  Das SageMaker HyperPod Standard-Helm-Diagramm sollte installiert werden, bevor dieses Skript ausgeführt wird.

   Das `install_rig_dependencies.sh`-Skript führt die folgenden Aktionen aus. 
   + `aws-node` (CNI): Neues `rig-aws-node` Daemonset wurde erstellt; vorhandenes `aws-node` wurde gepatcht, um RIG-Knoten zu vermeiden.
   + `coredns`: In Daemonset konvertiert, um die Verwendung mehrerer RIGs RIGs zu unterstützen und eine Überlastung zu verhindern.
   + training-operators: Aktualisiert mit RIG Worker-Taint-Toleranzen und nodeAffinity, die Nicht-RIG-Instances bevorzugen.
   + Elastic Fabric Adapter (EFA): Aktualisiert, um RIG-Worker-Taint zu tolerieren und für jede Region die richtigen Container-Images zu verwenden.

1. Bereiten Sie eine [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)API-Anforderungsdatei im JSON-Format vor. Geben Sie für `ExecutionRole` den ARN der IAM-Rolle an, die Sie mit der verwalteten `AmazonSageMakerClusterInstanceRolePolicy` aus Abschnitt [IAM-Rolle für SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) erstellt haben.
**Anmerkung**  
Stellen Sie sicher, dass Ihr SageMaker HyperPod Cluster in derselben Virtual Private Cloud (VPC) wie Ihr Amazon EKS-Cluster bereitgestellt wird. Die in der SageMaker HyperPod Cluster-Konfiguration angegebenen Subnetze und Sicherheitsgruppen müssen Netzwerkkonnektivität und Kommunikation mit dem API-Serverendpunkt des Amazon EKS-Clusters ermöglichen.

   ```
   // create_cluster.json
   {
       "ClusterName": "string",
       "InstanceGroups": [{
           "InstanceGroupName": "string",
           "InstanceType": "string",
           "InstanceCount": number,
           "LifeCycleConfig": {
               "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/",
               "OnCreate": "on_create.sh"
           },
           "ExecutionRole": "string",
           "ThreadsPerCore": number,
           "OnStartDeepHealthChecks": [
               "InstanceStress", "InstanceConnectivity"
           ]
       }],
       "RestrictedInstanceGroups": [ 
         { 
            "EnvironmentConfig": { 
               "FSxLustreConfig": { 
                  "PerUnitStorageThroughput": number,
                  "SizeInGiB": number
               }
            },
            "ExecutionRole": "string",
            "InstanceCount": number,
            "InstanceGroupName": "string",
            "InstanceStorageConfigs": [ 
               { ... }
            ],
            "InstanceType": "string",
            "OnStartDeepHealthChecks": [ "string" ],
            "OverrideVpcConfig": { 
               "SecurityGroupIds": [ "string" ],
               "Subnets": [ "string" ]
            },
            "ScheduledUpdateConfig": { 
               "DeploymentConfig": { 
                  "AutoRollbackConfiguration": [ 
                     { 
                        "AlarmName": "string"
                     }
                  ],
                  "RollingUpdatePolicy": { 
                     "MaximumBatchSize": { 
                        "Type": "string",
                        "Value": number
                     },
                     "RollbackMaximumBatchSize": { 
                        "Type": "string",
                        "Value": number
                     }
                  },
                  "WaitIntervalInSeconds": number
               },
               "ScheduleExpression": "string"
            },
            "ThreadsPerCore": number,
            "TrainingPlanArn": "string"
         }
      ],
       "VpcConfig": {
           "SecurityGroupIds": ["string"],
           "Subnets": ["string"]
       },
       "Tags": [{
           "Key": "string",
           "Value": "string"
       }],
       "Orchestrator": {
           "Eks": {
               "ClusterArn": "string",
               "KubernetesConfig": {
                   "Labels": {
                       "nvidia.com/mig.config": "all-3g.40gb"
                   }
               }
           }
       },
       "NodeRecovery": "Automatic"
   }
   ```
**Flexible Instanzgruppen**  
Anstatt einen einzigen zu spezifizieren`InstanceType`, können Sie den `InstanceRequirements` Parameter verwenden, um mehrere Instanztypen für eine Instanzgruppe anzugeben. Beachten Sie Folgendes:  
`InstanceType`und schließen `InstanceRequirements` sich gegenseitig aus. Sie müssen das eine oder das andere angeben, aber nicht beide.
`InstanceRequirements.InstanceTypes`ist eine geordnete Liste, die die Bereitstellungspriorität bestimmt. SageMaker HyperPodversucht, den ersten Instanztyp in der Liste bereitzustellen, und greift auf nachfolgende Typen zurück, wenn die Kapazität nicht verfügbar ist. Sie können bis zu 20 Instance-Typen angeben, und die Liste darf keine Duplikate enthalten.
Flexible Instanzgruppen erfordern einen kontinuierlichen Knotenbereitstellungsmodus.
Das folgende Beispiel zeigt eine Instanzgruppe mit`InstanceRequirements`:  

   ```
   {
       "InstanceGroupName": "flexible-ig",
       "InstanceRequirements": {
           "InstanceTypes": ["ml.p5.48xlarge", "ml.p4d.24xlarge", "ml.g6.48xlarge"]
       },
       "InstanceCount": 10,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster"
   }
   ```

   Beachten Sie bei der Konfiguration zur Erstellung eines neuen SageMaker HyperPod Clusters, der einem EKS-Cluster zugeordnet ist, Folgendes.
   + Sie können bis zu 20 Instance-Gruppen unter dem Parameter konfigurieren. `InstanceGroups`
   + Geben Sie für `Orchestator.Eks.ClusterArn` die ARN des EKS-Clusters an, den Sie als Orchestrator verwenden möchten.
   + Für`OnStartDeepHealthChecks`, hinzufügen `InstanceStress` und `InstanceConnectivity` aktivieren[Tiefgreifende Zustandsprüfungen](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md).
   + Geben Sie für an`NodeRecovery`, ob `Automatic` die automatische Knotenwiederherstellung aktiviert werden soll. SageMaker HyperPod ersetzt Instanzen (Knoten) oder startet sie neu, wenn der Health Monitoring Agent Probleme feststellt.
   + Für den `Tags` Parameter können Sie benutzerdefinierte Tags hinzufügen, um den SageMaker HyperPod Cluster als Ressource zu verwalten. AWS Sie können Ihrem Cluster auf die gleiche Weise Tags hinzufügen, wie Sie sie in anderen AWS -Services hinzufügen, die das Markieren unterstützen. Weitere Informationen zum Markieren von AWS -Ressourcen im Allgemeinen finden Sie im [Benutzerhandbuch zur Markierung von AWS -Ressourcen](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).
   + Geben Sie für den `VpcConfig`-Parameter die Informationen der im EKS-Cluster verwendeten VPC an. Die Subnetze müssen privat sein.
   + Für `Orchestrator.Eks.KubernetesConfig.Labels` können Sie optional Kubernetes-Labels angeben, die auf die Knoten angewendet werden sollen. Um die GPU-Partitionierung mit Multi-Instance-GPU (MIG) zu aktivieren, fügen Sie das `nvidia.com/mig.config` Label mit dem gewünschten MIG-Profil hinzu. `"nvidia.com/mig.config": "all-3g.40gb"`Konfiguriert beispielsweise alle GPUs mit dem 3G.40GB-Partitionsprofil. Weitere Informationen zur GPU-Partitionierung und zu verfügbaren Profilen finden Sie unter. [Verwenden von GPU-Partitionen in Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)

1. Führen Sie den Befehl [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) aus, um den Cluster zu erstellen.
**Wichtig**  
Wenn Sie den `create-cluster`-Befehl mit dem Parameter `--cli-input-json` ausführen, müssen Sie das Präfix `file://` vor dem vollständigen Pfad zur JSON-Datei angeben. Dieses Präfix ist erforderlich, um sicherzustellen, dass der die Eingabe als Dateipfad AWS CLI erkennt. Das Weglassen des Präfixes `file://` führt zu einem Parsing-Parameterfehler.

   ```
   aws sagemaker create-cluster \
       --cli-input-json file://complete/path/to/create_cluster.json
   ```

   Dies sollte den ARN des neuen Clusters zurückgeben.
**Wichtig**  
Sie können den Vorgang „[Cluster aktualisieren](https://docs.aws.amazon.com//cli/latest/reference/ecs/update-cluster.html)“ verwenden, um eine eingeschränkte Instance-Gruppe (RIG) zu entfernen. Wenn ein RIG auf 0 herunterskaliert wird, wird das FSx for Lustre-Dateisystem nicht gelöscht. Um das FSx for Lustre-Dateisystem vollständig zu entfernen, müssen Sie das RIG vollständig entfernen.   
Durch das Entfernen eines RIGs werden keine Artefakte gelöscht, die im vom Dienst verwalteten Amazon-S3-Bucket gespeichert sind. Sie sollten jedoch sicherstellen, dass alle Artefakte im FSx for Lustre-Dateisystem vollständig mit Amazon S3 synchronisiert sind, bevor Sie sie entfernen. Wir empfehlen, nach Abschluss des Auftrags mindestens 30 Minuten zu warten, um die vollständige Synchronisation aller Artefakte aus dem FSx for Lustre-Dateisystem mit dem service-verwalteten Amazon S3 S3-Bucket sicherzustellen.
**Wichtig**  
Wenn Sie eine Onboard-On-Demand-Kapazitätsreservierung (ODCR) verwenden, müssen Sie Ihre Instance-Gruppe derselben Availability Zone ID (AZ ID) wie die ODCR zuordnen, indem Sie sie `OverrideVpcConfig` mit einem Subnetz in der entsprechenden AZ-ID festlegen.  
WICHTIG: Überprüfen Sie die `OverrideVpcConfig` Konfiguration vor der Bereitstellung, um doppelte Gebühren sowohl für ODCR als auch für On-Demand-Kapazität zu vermeiden.