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:
-
Tenha uma versão compatível do software Slurm instalada.
-
Ser capaz de se conectar ao endpoint Slurmctld do AWS PCS cluster.
-
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 sackdna documentação do Slurm.
Este tutorial ajuda você a configurar uma instância independente que se conecta a um AWS PCS cluster.
Sumário
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-identifiercluster-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
-
Abra o EC2console da Amazon
. -
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.
-
(Opcional) Na seção Nome e tags, forneça um nome para a instância, como
PCS-LoginNode
. O nome é atribuído à instância como uma etiqueta de recurso (Name=PCS-LoginNode
). -
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.
-
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.
-
Na seção Par de chaves, selecione o par de SSH chaves a ser usado para a instância.
-
Na seção Configurações de rede:
-
Selecione a opção Editar.
-
Selecione o VPC do seu AWS PCS cluster.
-
Em Firewall (grupos de segurança), escolha Selecionar grupo de segurança existente.
-
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.
-
(Opcional) Selecione um grupo de segurança que permita SSH acesso de entrada à sua instância.
-
-
-
-
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.
-
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.
-
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 substituasecret-arn
com o valor a sersecretArn
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.keyAtençã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.
-
Configure o arquivo de ambiente para o
sackd
serviço com o comando a seguir. Antes de executar o comando, substituaip-address
eport
com os valores recuperados dos endpoints na Etapa 1.sudo echo "SACKD_OPTIONS='--conf-server=
ip-address
:port
'" > /etc/sysconfig/sackd -
Crie um arquivo
systemd
de serviço para gerenciar osackd
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
-
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
-
Ative o
sackd
serviço.sudo systemctl daemon-reload && sudo systemctl enable sackd
-
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