Uso de instancias independientes como nodos de inicio de AWS PCS sesión - AWS PCS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de instancias independientes como nodos de inicio de AWS PCS sesión

Puede configurar EC2 instancias independientes para que interactúen con el programador AWS PCS Slurm de un clúster. Esto resulta útil para crear nodos de inicio de sesión, estaciones de trabajo o hosts de administración de flujos de trabajo dedicados que funcionen con AWS PCS clústeres pero que operen fuera de la administración. AWS PCS Para ello, cada instancia independiente debe:

  1. Tener instalada una versión de software Slurm compatible.

  2. Poder conectarse al punto final AWS PCS Slurmctld del clúster.

  3. Configure correctamente el Slurm Auth and Cred Kiosk Daemon (sackd) con el punto final y el secreto del clúster. AWS PCS Para obtener más información, consulte sackd en la documentación de Slurm.

Este tutorial le ayuda a configurar una instancia independiente que se conecta a un clúster. AWS PCS

Paso 1: Recuperar la dirección y el secreto del AWS PCS clúster de destino

Recupere los detalles sobre el AWS PCS clúster de destino AWS CLI mediante el comando siguiente. Antes de ejecutar el comando, realice los siguientes reemplazos:

  • Reemplazar region-code con el Región de AWS lugar en el que se ejecuta el clúster de destino.

  • Reemplazar cluster-ident con el nombre o identificador del clúster de destino

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

El comando devolverá un resultado similar al de este ejemplo.

{ "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" } ] } }

En este ejemplo, el punto final del controlador Slurm del clúster tiene una dirección IP de 10.3.149.220 y se ejecuta en el puerto. 6817 Se secretArn usará en pasos posteriores para recuperar el secreto del clúster. La dirección IP y el puerto se utilizarán en pasos posteriores para configurar el sackd servicio.

Paso 2: lanzar una EC2 instancia

Para lanzar una instancia EC2
  1. Abre la EC2consola de Amazon.

  2. En el panel de navegación, elija Instancias y, a continuación, Iniciar instancias para abrir el nuevo asistente de inicialización de instancias.

  3. (Opcional) En la sección Nombre y etiquetas, proporciona un nombre para la instancia, comoPCS-LoginNode. El nombre se asigna a la instancia como etiqueta de recurso (Name=PCS-LoginNode).

  4. En la sección Imágenes de aplicaciones y sistemas operativos, seleccione uno AMI para uno de los sistemas operativos compatibles con AWS PCS. Para obtener más información, consulte Sistemas operativos compatibles.

  5. En la sección Tipo de instancia, seleccione un tipo de instancia compatible. Para obtener más información, consulte Tipos de instancias admitidas.

  6. En la sección Par de claves, selecciona el par de SSH claves que quieres usar para la instancia.

  7. En la sección Configuración de red:

    1. Elija Editar.

      1. Seleccione el VPC de su AWS PCS clúster.

      2. En Firewall (grupos de seguridad), elija Seleccionar un grupo de seguridad existente.

        1. Seleccione un grupo de seguridad que permita el tráfico entre la instancia y el controlador Slurm del AWS PCS clúster de destino. Para obtener más información, consulte Requisitos y consideraciones sobre los grupos de seguridad.

        2. (Opcional) Seleccione un grupo de seguridad que permita el SSH acceso entrante a la instancia.

  8. En la sección Almacenamiento, configure los volúmenes de almacenamiento según sea necesario. Asegúrese de configurar suficiente espacio para instalar aplicaciones y bibliotecas a fin de habilitar su caso de uso.

  9. En Avanzado, elija un IAM rol que permita acceder al secreto del clúster. Para obtener más información, consulte Obtén el secreto del cúmulo de Slurm.

  10. En el panel de resumen, selecciona Lanzar instancia.

Paso 3: Instala Slurm en la instancia

Cuando la instancia se haya lanzado y se active, conéctese a ella mediante el mecanismo que prefiera. Use el instalador de Slurm proporcionado por AWS para instalar Slurm en la instancia. Para obtener más información, consulte Instalador Slurm.

Descarga el instalador de Slurm, descomprímelo y usa el script para instalar Slurm. installer.sh Para obtener más información, consulte Paso 3: Instalar Slurm.

Paso 4: Recupere y almacene el secreto del clúster

Estas instrucciones requieren la AWS CLI. Para obtener más información, consulte Instalar o actualizar a la última versión de AWS CLI en la Guía del AWS Command Line Interface usuario de la versión 2.

Guarde el secreto del clúster con los siguientes comandos.

  • Cree el directorio de configuración de Slurm.

    sudo mkdir -p /etc/slurm
  • Recupere, decodifique y almacene el secreto del clúster. Antes de ejecutar este comando, sustituya region-code por la región en la que se ejecuta el clúster de destino y reemplace secret-arn por el valor secretArn obtenido en el paso 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
    aviso

    En un entorno multiusuario, cualquier usuario con acceso a la instancia podría obtener el secreto del clúster si puede acceder al servicio de metadatos de la instancia ()IMDS. Esto, a su vez, podría permitirles hacerse pasar por otros usuarios. Considere la posibilidad de restringir el acceso IMDS únicamente a los usuarios raíz o administrativos. Como alternativa, puedes usar un mecanismo diferente que no dependa del perfil de la instancia para obtener y configurar el secreto.

  • Configura la propiedad y los permisos en el archivo de claves de Slurm.

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

    La clave Slurm debe ser propiedad del usuario y del grupo en los que se ejecuta el sackd servicio.

Paso 5: Configurar la conexión al clúster AWS PCS

Para establecer una conexión con el AWS PCS clúster, ejecútelo sackd como un servicio del sistema siguiendo estos pasos.

  1. Configure el archivo de entorno del sackd servicio con el siguiente comando. Antes de ejecutar el comando, sustituya ip-address y port por los valores recuperados de los puntos finales del paso 1.

    sudo echo "SACKD_OPTIONS='--conf-server=ip-address:port'" > /etc/sysconfig/sackd
  2. Cree un archivo systemd de servicio para gestionar el sackd proceso.

    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. Establezca la propiedad del archivo sackd de servicio.

    sudo chown root:root /etc/systemd/system/sackd.service && \ sudo chmod 0644 /etc/systemd/system/sackd.service
  4. Habilite el sackd servicio.

    sudo systemctl daemon-reload && sudo systemctl enable sackd
  5. Inicie el servicio sackd.

    sudo systemctl start sackd

Paso 6: (opcional) Pruebe la conexión

Confirme que el sackd servicio se esté ejecutando. A continuación, se muestra un resultado de ejemplo. Si hay errores, suelen aparecer aquí.

[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

Confirme que las conexiones al clúster funcionan mediante comandos del cliente de Slurm como sinfo y. squeue Este es un ejemplo de salida de. 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]

También deberías poder enviar trabajos. Por ejemplo, un comando similar a este ejemplo lanzaría un trabajo interactivo en un nodo del clúster.

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