View a markdown version of this page

Buat dan konfigurasikan HyperPod cluster dengan autoscaling Karpenter - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat dan konfigurasikan HyperPod cluster dengan autoscaling Karpenter

Dalam langkah-langkah berikut, Anda akan membuat SageMaker HyperPod klaster dengan penyediaan berkelanjutan diaktifkan dan mengonfigurasinya untuk menggunakan Karpenter-based penskalaan otomatis.

Buat HyperPod cluster
  1. Muat konfigurasi lingkungan Anda dan ekstrak nilai dari CloudFormation tumpukan.

    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)
  2. Unggah skrip inisialisasi node ke bucket Amazon S3 Anda.

    aws s3 cp lifecyclescripts/on_create_noop.sh s3://$BUCKET_NAME
  3. Buat file konfigurasi cluster dengan variabel lingkungan Anda.

    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
  4. Jalankan perintah berikut untuk membuat HyperPod cluster Anda.

    aws sagemaker create-cluster --cli-input-json file://./cluster_config.json
  5. Proses pembuatan cluster memakan waktu sekitar 20 menit. Pantau status cluster hingga keduanya ClusterStatus dan AutoScaling.Status tampilkan InService.

  6. Simpan ARN cluster untuk operasi selanjutnya.

    HP_CLUSTER_ARN=$(aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME \ --output text --query ClusterArn)
Aktifkan penskalaan otomatis Karpenter
  1. Jalankan perintah berikut untuk mengaktifkan Karpenter-based penskalaan otomatis pada klaster yang sudah ada sebelumnya yang memiliki mode penyediaan node berkelanjutan.

    aws sagemaker update-cluster \ --cluster-name $HP_CLUSTER_NAME \ --auto-scaling Mode=Enable,AutoScalerType=Karpenter \ --cluster-role $HP_CLUSTER_ROLE
  2. Verifikasi bahwa Karpenter telah berhasil diaktifkan:

    aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --query 'AutoScaling'
  3. Keluaran yang diharapkan

    { "Mode": "Enable", "AutoScalerType": "Karpenter", "Status": "InService" }

Tunggu Status hingga ditampilkan InService sebelum melanjutkan untuk mengkonfigurasi NodeClass dan NodePool.