Utilizzo di istanze autonome come AWS PCS nodi di accesso - AWS PCS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di istanze autonome come AWS PCS nodi di accesso

Puoi configurare EC2 istanze indipendenti per interagire con lo scheduler Slurm di un AWS PCS cluster. Ciò è utile per creare nodi di accesso, workstation o host dedicati alla gestione del flusso di lavoro che funzionano con AWS PCS i cluster ma operano al di fuori della gestione. AWS PCS A tale scopo, ogni istanza autonoma deve:

  1. Avere installata una versione del software Slurm compatibile.

  2. Essere in grado di connettersi all'endpoint AWS PCS Slurmctld del cluster.

  3. Configurate correttamente Slurm Auth e Cred Kiosk Daemon () con l'endpoint e il segreto del cluster. sackd AWS PCS Per ulteriori informazioni, consulta sackd nella documentazione di Slurm.

Questo tutorial ti aiuta a configurare un'istanza indipendente che si connette a un cluster. AWS PCS

Passaggio 1: recuperare l'indirizzo e il segreto per il cluster di destinazione AWS PCS

Recupera i dettagli sul AWS PCS cluster di destinazione utilizzando AWS CLI il comando che segue. Prima di eseguire il comando, apporta le modifiche seguenti:

  • Replace (Sostituisci) region-code con il Regione AWS luogo in cui è in esecuzione il cluster di destinazione.

  • Replace (Sostituisci) cluster-ident con il nome o l'identificatore del cluster di destinazione

aws pcs get-cluster --region region-code --cluster-identifier cluster-ident

Il comando restituirà un output simile a questo esempio.

{ "cluster": { "name": "get-started", "id": "pcs_123456abcd", "arn": "arn:aws:pcs:us-east-1:111122223333:cluster/pcs_123456abcd", "status": "ACTIVE", "createdAt": "2024-09-23T21:03:52+00:00", "modifiedAt": "2024-09-23T21:03:52+00:00", "scheduler": { "type": "SLURM", "version": "23.11" }, "size": "SMALL", "slurmConfiguration": { "authKey": { "secretArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:pcs!slurm-secret-pcs_123456abcd-a12ABC", "secretVersion": "ef232370-d3e7-434c-9a87-ec35c1987f75" } }, "networking": { "subnetIds": [ "subnet-0123456789abcdef0" ], "securityGroupIds": [ "sg-0123456789abcdef0" ] }, "endpoints": [ { "type": "SLURMCTLD", "privateIpAddress": "10.3.149.220", "port": "6817" } ] } }

In questo esempio, l'endpoint del controller Slurm del cluster ha un indirizzo IP di 10.3.149.220 ed è in esecuzione sulla porta. 6817 secretArnVerrà utilizzato nei passaggi successivi per recuperare il segreto del cluster. L'indirizzo IP e la porta verranno utilizzati nei passaggi successivi per configurare il sackd servizio.

Passaggio 2: avviare un'EC2istanza

Per avviare un'istanza EC2
  1. Apri la EC2console Amazon.

  2. Nel pannello di navigazione, scegli Instances (Istanze) e quindi scegli Launch instances (Avvia istanze) per aprire la nuova procedura guidata di avvio dell'istanza.

  3. (Facoltativo) Nella sezione Nome e tag, fornisci un nome per l'istanza, ad esempioPCS-LoginNode. Il nome viene assegnato all'istanza come tag di risorsa (Name=PCS-LoginNode).

  4. Nella sezione Immagini dell'applicazione e del sistema operativo, selezionate uno AMI per uno dei sistemi operativi supportati da AWS PCS. Per ulteriori informazioni, consulta Sistemi operativi supportati.

  5. Nella sezione Tipo di istanza, seleziona un tipo di istanza supportato. Per ulteriori informazioni, consulta Tipi di istanze supportati.

  6. Nella sezione Key pair, seleziona la coppia di SSH chiavi da usare per l'istanza.

  7. Nella sezione Impostazioni di rete:

    1. Scegli Modifica.

      1. Seleziona il VPC tipo del tuo AWS PCS cluster.

      2. Per Firewall (gruppi di sicurezza), scegli Seleziona gruppo di sicurezza esistente.

        1. Seleziona un gruppo di sicurezza che consenta il traffico tra l'istanza e il controller AWS PCS Slurm del cluster di destinazione. Per ulteriori informazioni, consulta Requisiti e considerazioni sui gruppi di sicurezza.

        2. (Facoltativo) Seleziona un gruppo di sicurezza che consenta l'SSHaccesso in entrata alla tua istanza.

  8. Nella sezione Archiviazione, configura i volumi di archiviazione in base alle esigenze. Assicurati di configurare uno spazio sufficiente per installare applicazioni e librerie adatte al tuo caso d'uso.

  9. In Avanzato, scegli un IAM ruolo che consenta l'accesso al segreto del cluster. Per ulteriori informazioni, consulta Ottieni il segreto del cluster Slurm.

  10. Nel riquadro Riepilogo, scegli Launch instance.

Passaggio 3: installa Slurm sull'istanza

Quando l'istanza è stata lanciata e diventa attiva, connettiti ad essa utilizzando il tuo meccanismo preferito. Utilizza il programma di installazione Slurm fornito da AWS per installare Slurm sull'istanza. Per ulteriori informazioni, consulta Programma di installazione Slurm.

Scarica il programma di installazione di Slurm, decomprimilo e usa lo script per installare Slurm. installer.sh Per ulteriori informazioni, consulta Passaggio 3: installa Slurm.

Fase 4 — Recuperare e archiviare il segreto del cluster

Queste istruzioni richiedono il. AWS CLI Per ulteriori informazioni, vedere Installazione o aggiornamento alla versione più recente di AWS CLI nella Guida per l'AWS Command Line Interface utente della versione 2.

Memorizza il segreto del cluster con i seguenti comandi.

  • Crea la directory di configurazione per Slurm.

    sudo mkdir -p /etc/slurm
  • Recupera, decodifica e archivia il segreto del cluster. Prima di eseguire questo comando, sostituisci region-code con la regione in cui è in esecuzione il cluster di destinazione e sostituisci secret-arn con il valore secretArn recuperato nel passaggio 1.

    sudo aws secretsmanager get-secret-value \ --region region-code \ --secret-id 'secret-arn' \ --version-stage AWSCURRENT \ --query 'SecretString' \ --output text | base64 -d > /etc/slurm/slurm.key
    avvertimento

    In un ambiente multiutente, qualsiasi utente con accesso all'istanza potrebbe essere in grado di recuperare il segreto del cluster se può accedere al servizio di metadati dell'istanza (). IMDS Questo, a sua volta, potrebbe consentire loro di impersonare altri utenti. Valuta la possibilità di limitare l'accesso solo IMDS agli utenti root o amministrativi. In alternativa, prendi in considerazione l'utilizzo di un meccanismo diverso che non si basi sul profilo dell'istanza per recuperare e configurare il segreto.

  • Imposta proprietà e autorizzazioni sul file chiave Slurm.

    sudo chmod 0600 /etc/slurm/slurm.key sudo chown slurm:slurm /etc/slurm/slurm.key
    Nota

    La chiave Slurm deve essere di proprietà dell'utente e del gruppo con cui viene eseguito il servizio. sackd

Fase 5 — Configurare la connessione al cluster AWS PCS

Per stabilire una connessione al AWS PCS cluster, sackd avvialo come servizio di sistema seguendo questi passaggi.

  1. Imposta il file di ambiente per il sackd servizio con il comando che segue. Prima di eseguire il comando, sostituisci ip-address e port con i valori recuperati dagli endpoint nel passaggio 1.

    sudo echo "SACKD_OPTIONS='--conf-server=ip-address:port'" > /etc/sysconfig/sackd
  2. Crea un file systemd di servizio per la gestione del sackd processo.

    sudo cat << EOF > /etc/systemd/system/sackd.service [Unit] Description=Slurm auth and cred kiosk daemon After=network-online.target remote-fs.target Wants=network-online.target ConditionPathExists=/etc/sysconfig/sackd [Service] Type=notify EnvironmentFile=/etc/sysconfig/sackd User=slurm Group=slurm RuntimeDirectory=slurm RuntimeDirectoryMode=0755 ExecStart=/opt/aws/pcs/scheduler/slurm-23.11/sbin/sackd --systemd \$SACKD_OPTIONS ExecReload=/bin/kill -HUP \$MAINPID KillMode=process LimitNOFILE=131072 LimitMEMLOCK=infinity LimitSTACK=infinity [Install] WantedBy=multi-user.target EOF
  3. Imposta la proprietà del file sackd di servizio.

    sudo chown root:root /etc/systemd/system/sackd.service && \ sudo chmod 0644 /etc/systemd/system/sackd.service
  4. Abilita il sackd servizio.

    sudo systemctl daemon-reload && sudo systemctl enable sackd
  5. Avviare il servizio sackd.

    sudo systemctl start sackd

Fase 6 — (Facoltativo) Verifica della connessione

Verificare che il sackd servizio sia in esecuzione. Di seguito è riportato un output di esempio. Se ci sono errori, di solito vengono visualizzati qui.

[root@ip-10-3-27-112 ~]# systemctl status sackd [x] sackd.service - Slurm auth and cred kiosk daemon Loaded: loaded (/etc/systemd/system/sackd.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2024-07-16 16:34:55 UTC; 8s ago Main PID: 9985 (sackd) CGroup: /system.slice/sackd.service └─9985 /opt/aws/pcs/scheduler/slurm-23.11/sbin/sackd --systemd --conf-server=10.3.149.220:6817 Jul 16 16:34:55 ip-10-3-27-112.ec2.internal systemd[1]: Starting Slurm auth and cred kiosk daemon... Jul 16 16:34:55 ip-10-3-27-112.ec2.internal systemd[1]: Started Slurm auth and cred kiosk daemon. Jul 16 16:34:55 ip-10-3-27-112.ec2.internal sackd[9985]: sackd: running

Conferma che le connessioni al cluster funzionino utilizzando i comandi del client Slurm come esinfo. squeue Ecco un esempio di output da. sinfo

[root@ip-10-3-27-112 ~]# /opt/aws/pcs/scheduler/slurm-23.11/bin/sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST all up infinite 4 idle~ compute-[1-4]

Dovresti anche essere in grado di inviare offerte di lavoro. Ad esempio, un comando simile a questo esempio avvierebbe un processo interattivo su 1 nodo del cluster.

/opt/aws/pcs/scheduler/slurm-23.11/bin/srun --nodes=1 -p all --pty bash -i