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.
Erstellen und konfigurieren Sie einen HyperPod Cluster mit Karpenter Autoscaling
In den folgenden Schritten erstellen Sie einen SageMaker HyperPod Cluster mit aktiviertem Continuous Provisioning und konfigurieren ihn für die Verwendung von Karpenter-basiertem Autoscaling.
Erstellen Sie einen Cluster HyperPod
-
Laden Sie Ihre Umgebungskonfiguration und extrahieren Sie Werte aus CloudFormation Stacks.
source .env SUBNET1=$(cfn-output $VPC_STACK_NAME PrivateSubnet1) SUBNET2=$(cfn-output $VPC_STACK_NAME PrivateSubnet2) SUBNET3=$(cfn-output $VPC_STACK_NAME PrivateSubnet3) SECURITY_GROUP=$(cfn-output $VPC_STACK_NAME NoIngressSecurityGroup) EKS_CLUSTER_ARN=$(cfn-output $EKS_STACK_NAME ClusterArn) EXECUTION_ROLE=$(cfn-output $SAGEMAKER_STACK_NAME ExecutionRole) SERVICE_ROLE=$(cfn-output $SAGEMAKER_STACK_NAME ServiceRole) BUCKET_NAME=$(cfn-output $SAGEMAKER_STACK_NAME Bucket) HP_CLUSTER_NAME="hyperpod-eks-test-$(date +%s)" EKS_CLUSTER_NAME=$(cfn-output $EKS_STACK_NAME ClusterName) HP_CLUSTER_ROLE=$(cfn-output $SAGEMAKER_STACK_NAME ClusterRole) -
Laden Sie das Knoteninitialisierungsskript in Ihren Amazon S3 S3-Bucket hoch.
aws s3 cp lifecyclescripts/on_create_noop.sh s3://$BUCKET_NAME -
Erstellen Sie eine Cluster-Konfigurationsdatei mit Ihren Umgebungsvariablen.
cat > cluster_config.json << EOF { "ClusterName": "$HP_CLUSTER_NAME", "InstanceGroups": [ { "InstanceCount": 1, "InstanceGroupName": "system", "InstanceType": "ml.c5.xlarge", "LifeCycleConfig": { "SourceS3Uri": "s3://$BUCKET_NAME", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "$EXECUTION_ROLE" }, { "InstanceCount": 0, "InstanceGroupName": "auto-c5-az1", "InstanceType": "ml.c5.xlarge", "LifeCycleConfig": { "SourceS3Uri": "s3://$BUCKET_NAME", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "$EXECUTION_ROLE" }, { "InstanceCount": 0, "InstanceGroupName": "auto-c5-4xaz2", "InstanceType": "ml.c5.4xlarge", "LifeCycleConfig": { "SourceS3Uri": "s3://$BUCKET_NAME", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "$EXECUTION_ROLE", "OverrideVpcConfig": { "SecurityGroupIds": [ "$SECURITY_GROUP" ], "Subnets": [ "$SUBNET2" ] } }, { "InstanceCount": 0, "InstanceGroupName": "auto-g5-az3", "InstanceType": "ml.g5.xlarge", "LifeCycleConfig": { "SourceS3Uri": "s3://$BUCKET_NAME", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "$EXECUTION_ROLE", "OverrideVpcConfig": { "SecurityGroupIds": [ "$SECURITY_GROUP" ], "Subnets": [ "$SUBNET3" ] } } ], "VpcConfig": { "SecurityGroupIds": [ "$SECURITY_GROUP" ], "Subnets": [ "$SUBNET1" ] }, "Orchestrator": { "Eks": { "ClusterArn": "$EKS_CLUSTER_ARN" } }, "ClusterRole": "$HP_CLUSTER_ROLE", "AutoScaling": { "Mode": "Enable", "AutoScalerType": "Karpenter" }, "NodeProvisioningMode": "Continuous" } EOF -
Führen Sie den folgenden Befehl aus, um Ihren HyperPod Cluster zu erstellen.
aws sagemaker create-cluster --cli-input-json file://./cluster_config.json -
Der Prozess der Clustererstellung dauert ungefähr 20 Minuten. Überwachen Sie den Clusterstatus, bis ClusterStatus sowohl als auch AutoScaling .Status angezeigt InService werden.
-
Speichern Sie den Cluster-ARN für nachfolgende Operationen.
HP_CLUSTER_ARN=$(aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME \ --output text --query ClusterArn)
Aktivieren von Carpenter Autoscaling
-
Führen Sie den folgenden Befehl aus, um die Karpenter-basierte Autoskalierung auf jedem bereits vorhandenen Cluster zu aktivieren, der über den kontinuierlichen Knotenbereitstellungsmodus verfügt.
aws sagemaker update-cluster \ --cluster-name $HP_CLUSTER_NAME \ --auto-scaling Mode=Enable,AutoScalerType=Karpenter \ --cluster-role $HP_CLUSTER_ROLE -
Stellen Sie sicher, dass Karpenter erfolgreich aktiviert wurde:
aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --query 'AutoScaling' -
Erwartete Ausgabe:
{ "Mode": "Enable", "AutoScalerType": "Karpenter", "Status": "InService" }
Warten SieStatus, bis das angezeigt wird, InService bevor Sie mit der Konfiguration von NodeClass und NodePool fortfahren.