Usando instâncias autônomas como nós de AWS PCS login - AWS PCS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando instâncias autônomas como nós de AWS PCS login

Você pode configurar EC2 instâncias independentes para interagir com o agendador Slurm de um AWS PCS cluster. Isso é útil para criar nós de login, estações de trabalho ou hosts dedicados de gerenciamento de fluxo de trabalho que funcionam com AWS PCS clusters, mas operam fora do AWS PCS gerenciamento. Para fazer isso, cada instância autônoma deve:

  1. Tenha uma versão compatível do software Slurm instalada.

  2. Ser capaz de se conectar ao endpoint Slurmctld do AWS PCS cluster.

  3. Configure adequadamente o Slurm Auth e o Cred Kiosk Daemon (sackd) com o endpoint e o segredo do cluster. AWS PCS Para obter mais informações, consulte sackd na documentação do Slurm.

Este tutorial ajuda você a configurar uma instância independente que se conecta a um AWS PCS cluster.

Etapa 1 — Recupere o endereço e o segredo do cluster de destino AWS PCS

Recupere detalhes sobre o AWS PCS cluster de destino usando AWS CLI o comando a seguir. Antes da execução do comando, realize as seguintes substituições:

  • Substituir region-code com o Região da AWS local em que o cluster de destino está sendo executado.

  • Substituir cluster-ident com o nome ou identificador do cluster de destino

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

O comando retornará uma saída semelhante a este exemplo.

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

Neste exemplo, o endpoint do controlador Slurm do cluster tem um endereço IP de 10.3.149.220 e está sendo executado na porta. 6817 O secretArn será usado em etapas posteriores para recuperar o segredo do cluster. O endereço IP e a porta serão usados em etapas posteriores para configurar o sackd serviço.

Etapa 2 — Executar uma EC2 instância

Para iniciar uma instância do EC2
  1. Abra o EC2console da Amazon.

  2. No painel de navegação, selecione Instances (Instâncias) e, depois, escolha Launch Instances (Iniciar instâncias) para abrir o novo assistente de inicialização de instância.

  3. (Opcional) Na seção Nome e tags, forneça um nome para a instância, comoPCS-LoginNode. O nome é atribuído à instância como uma etiqueta de recurso (Name=PCS-LoginNode).

  4. Na seção Imagens do aplicativo e do sistema operacional, selecione um AMI para um dos sistemas operacionais suportados pelo AWS PCS. Para obter mais informações, consulte Sistemas operacionais compatíveis.

  5. Na seção Tipo de instância, selecione um tipo de instância compatível. Para obter mais informações, consulte Tipos de instâncias compatíveis.

  6. Na seção Par de chaves, selecione o par de SSH chaves a ser usado para a instância.

  7. Na seção Configurações de rede:

    1. Selecione a opção Editar.

      1. Selecione o VPC do seu AWS PCS cluster.

      2. Em Firewall (grupos de segurança), escolha Selecionar grupo de segurança existente.

        1. Selecione um grupo de segurança que permita o tráfego entre a instância e o controlador Slurm do AWS PCS cluster de destino. Para obter mais informações, consulte Requisitos e considerações do grupo de segurança.

        2. (Opcional) Selecione um grupo de segurança que permita SSH acesso de entrada à sua instância.

  8. Na seção Armazenamento, configure os volumes de armazenamento conforme necessário. Certifique-se de configurar espaço suficiente para instalar aplicativos e bibliotecas para habilitar seu caso de uso.

  9. Em Avançado, escolha uma IAM função que permita acesso ao segredo do cluster. Para obter mais informações, consulte Obtenha o segredo do cluster Slurm.

  10. No painel Resumo, escolha Launch instance.

Etapa 3 — Instale o Slurm na instância

Quando a instância for iniciada e ficar ativa, conecte-se a ela usando seu mecanismo preferido. Use o instalador do Slurm fornecido por AWS para instalar o Slurm na instância. Para obter mais informações, consulte Instalador do Slurm.

Baixe o instalador do Slurm, descompacte-o e use o installer.sh script para instalar o Slurm. Para obter mais informações, consulte Etapa 3 — Instalar o Slurm.

Etapa 4 — Recuperar e armazenar o segredo do cluster

Essas instruções exigem AWS CLI o. Para obter mais informações, consulte Instalar ou atualizar para a versão mais recente do AWS CLI no Guia AWS Command Line Interface do Usuário da Versão 2.

Armazene o segredo do cluster com os comandos a seguir.

  • Crie o diretório de configuração para o Slurm.

    sudo mkdir -p /etc/slurm
  • Recupere, decodifique e armazene o segredo do cluster. Antes de executar esse comando, substitua region-code com a região em que o cluster de destino está sendo executado e substitua secret-arn com o valor a ser secretArn recuperado na Etapa 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
    Atenção

    Em um ambiente multiusuário, qualquer usuário com acesso à instância poderá obter o segredo do cluster se puder acessar o serviço de metadados da instância (). IMDS Isso, por sua vez, poderia permitir que eles se passassem por outros usuários. Considere restringir o acesso somente IMDS aos usuários root ou administrativos. Como alternativa, considere usar um mecanismo diferente que não dependa do perfil da instância para buscar e configurar o segredo.

  • Defina a propriedade e as permissões no arquivo de chave do Slurm.

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

    A chave Slurm deve pertencer ao usuário e ao grupo em que o sackd serviço é executado.

Etapa 5 — Configurar a conexão com o AWS PCS cluster

Para estabelecer uma conexão com o AWS PCS cluster, execute sackd como um serviço do sistema seguindo estas etapas.

  1. Configure o arquivo de ambiente para o sackd serviço com o comando a seguir. Antes de executar o comando, substitua ip-address e port com os valores recuperados dos endpoints na Etapa 1.

    sudo echo "SACKD_OPTIONS='--conf-server=ip-address:port'" > /etc/sysconfig/sackd
  2. Crie um arquivo systemd de serviço para gerenciar o 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. Defina a propriedade do arquivo sackd de serviço.

    sudo chown root:root /etc/systemd/system/sackd.service && \ sudo chmod 0644 /etc/systemd/system/sackd.service
  4. Ative o sackd serviço.

    sudo systemctl daemon-reload && sudo systemctl enable sackd
  5. Inicie o serviço sackd.

    sudo systemctl start sackd

Etapa 6 — (Opcional) Teste a conexão

Confirme se o sackd serviço está em execução. Segue um exemplo de saída. Se houver erros, eles geralmente aparecerão aqui.

[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 se as conexões com o cluster estão funcionando usando os comandos do cliente Slurm, como e. sinfo squeue Aqui está um exemplo de saída desinfo.

[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]

Você também deve ser capaz de enviar trabalhos. Por exemplo, um comando semelhante a esse exemplo iniciaria um trabalho interativo em 1 nó no cluster.

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