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 cluster dengan penyediaan berkelanjutan diaktifkan dan mengonfigurasinya untuk menggunakan penskalaan otomatis berbasis Karpenter.

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 ditampilkan 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 penskalaan otomatis berbasis Karpenter pada cluster 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.