Risoluzione dei problemi di distribuzione dei cluster - AWS ParallelCluster

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à.

Risoluzione dei problemi di distribuzione dei cluster

Se il cluster non viene creato e ripristina la creazione dello stack, puoi esaminare i file di registro per diagnosticare il problema. Il messaggio di errore è probabilmente simile al seguente output:

$ pcluster create-cluster --cluster-name mycluster --region eu-west-1 \ --cluster-configuration cluster-config.yaml { "cluster": { "clusterName": "mycluster", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f01-11ec-a3b9-024fcc6f3387", "region": "eu-west-1", "version": "3.7.0", "clusterStatus": "CREATE_IN_PROGRESS" } } $ pcluster describe-cluster --cluster-name mycluster --region eu-west-1 { "creationTime": "2021-09-06T11:03:47.696Z", ... "cloudFormationStackStatus": "ROLLBACK_IN_PROGRESS", "clusterName": "mycluster", "computeFleetStatus": "UNKNOWN", "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f01-11ec-a3b9-024fcc6f3387", "lastUpdatedTime": "2021-09-06T11:03:47.696Z", "region": "eu-west-1", "clusterStatus": "CREATE_FAILED" }

Visualizza AWS CloudFormation gli eventi su CREATE_FAILED

È possibile utilizzare la console o la AWS ParallelCluster CLI per visualizzare CloudFormation gli eventi CREATE_FAILED relativi agli errori per individuare la causa principale.

Visualizza gli eventi nella console CloudFormation

Per visualizzare ulteriori informazioni sulla causa dello "CREATE_FAILED" stato, puoi utilizzare la CloudFormation console.

Visualizza i messaggi di CloudFormation errore dalla console.
  1. Accedi a AWS Management Console e vai a https://console.aws.amazon.com/cloudformation.

  2. Seleziona lo stack denominato cluster_name.

  3. Scegli la scheda Eventi.

  4. Controlla lo stato della risorsa che non è stata creata scorrendo l'elenco degli eventi delle risorse per ID logico. Se la creazione di una sottoattività non è riuscita, procedi a ritroso per trovare l'evento relativo alla risorsa non riuscita.

  5. Ad esempio, se viene visualizzato il seguente messaggio di stato, è necessario utilizzare tipi di istanza che non superino il limite di vCPU corrente o che non richiedano una maggiore capacità di vCPU.

    2022-02-04 16:09:44 UTC-0800 HeadNode CREATE_FAILED You have requested more vCPU capacity than your current vCPU limit of 0 allows for the instance bucket that the specified instance type belongs to. Please visit http://aws.amazon.com/contact-us/ec2-request to request an adjustment to this limit. (Service: AmazonEC2; Status Code: 400; Error Code: VcpuLimitExceeded; Request ID: a9876543-b321-c765-d432-dcba98766789; Proxy: null).

Usa la CLI per visualizzare e CloudFormation filtrare gli eventi su CREATE_FAILED

Per diagnosticare il problema di creazione del cluster, puoi utilizzare il pcluster get-cluster-stack-events comando filtrando in base allo stato. CREATE_FAILED Per ulteriori informazioni, consulta Filtraggio dell' AWS CLI output nella Guida per l'AWS Command Line Interface utente.

$ pcluster get-cluster-stack-events --cluster-name mycluster --region eu-west-1 \ --query 'events[?resourceStatus==`CREATE_FAILED`]' [ { "eventId": "3ccdedd0-0f03-11ec-8c06-02c352fe2ef9", "physicalResourceId": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f02-11ec-a3b9-024fcc6f3387", "resourceStatus": "CREATE_FAILED", "resourceStatusReason": "The following resource(s) failed to create: [HeadNode]. ", "stackId": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f02-11ec-a3b9-024fcc6f3387", "stackName": "mycluster", "logicalResourceId": "mycluster", "resourceType": "AWS::CloudFormation::Stack", "timestamp": "2021-09-06T11:11:51.780Z" }, { "eventId": "HeadNode-CREATE_FAILED-2021-09-06T11:11:50.127Z", "physicalResourceId": "i-04e91cc1f4ea796fe", "resourceStatus": "CREATE_FAILED", "resourceStatusReason": "Received FAILURE signal with UniqueId i-04e91cc1f4ea796fe", "resourceProperties": "{\"LaunchTemplate\":{\"Version\":\"1\",\"LaunchTemplateId\":\"lt-057d2b1e687f05a62\"}}", "stackId": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f02-11ec-a3b9-024fcc6f3387", "stackName": "mycluster", "logicalResourceId": "HeadNode", "resourceType": "AWS::EC2::Instance", "timestamp": "2021-09-06T11:11:50.127Z" } ]

Nell'esempio precedente, l'errore riguardava la configurazione del nodo principale.

Usa la CLI per visualizzare i flussi di log

Per eseguire il debug di questo tipo di problema, puoi elencare i flussi di log disponibili dal nodo principale filtrando node-type e quindi pcluster list-cluster-log-streams analizzando il contenuto dei flussi di log.

$ pcluster list-cluster-log-streams --cluster-name mycluster --region eu-west-1 \ --filters 'Name=node-type,Values=HeadNode' { "logStreams": [ { "logStreamArn": "arn:aws:logs:eu-west-1:xxx:log-group:/aws/parallelcluster/mycluster-202109061103:log-stream:ip-10-0-0-13.i-04e91cc1f4ea796fe.cfn-init", "logStreamName": "ip-10-0-0-13.i-04e91cc1f4ea796fe.cfn-init", ... }, { "logStreamArn": "arn:aws:logs:eu-west-1:xxx:log-group:/aws/parallelcluster/mycluster-202109061103:log-stream:ip-10-0-0-13.i-04e91cc1f4ea796fe.chef-client", "logStreamName": "ip-10-0-0-13.i-04e91cc1f4ea796fe.chef-client", ... }, { "logStreamArn": "arn:aws:logs:eu-west-1:xxx:log-group:/aws/parallelcluster/mycluster-202109061103:log-stream:ip-10-0-0-13.i-04e91cc1f4ea796fe.cloud-init", "logStreamName": "ip-10-0-0-13.i-04e91cc1f4ea796fe.cloud-init", ... }, ... ] }

I due flussi di log principali che è possibile utilizzare per trovare gli errori di inizializzazione sono i seguenti:

  • cfn-initè il registro dello script. cfn-init Per prima cosa controlla questo flusso di log. È probabile che tu veda l'Command chef failederrore in questo registro. Guarda le righe immediatamente precedenti a questa riga per ulteriori dettagli relativi al messaggio di errore. Per ulteriori informazioni, vedere cfn-init.

  • cloud-initè il log per cloud-init. Se non vedi nullacfn-init, prova a controllare successivamente questo registro.

Puoi recuperare il contenuto del flusso di log utilizzando pcluster get-cluster-log-events (nota l'--limit 5opzione per limitare il numero di eventi recuperati):

$ pcluster get-cluster-log-events --cluster-name mycluster \ --region eu-west-1 --log-stream-name ip-10-0-0-13.i-04e91cc1f4ea796fe.cfn-init \ --limit 5 { "nextToken": "f/36370880979637159565202782352491087067973952362220945409/s", "prevToken": "b/36370880752972385367337528725601470541902663176996585497/s", "events": [ { "message": "2021-09-06 11:11:39,049 [ERROR] Unhandled exception during build: Command runpostinstall failed", "timestamp": "2021-09-06T11:11:39.049Z" }, { "message": "Traceback (most recent call last):\n File \"/opt/aws/bin/cfn-init\", line 176, in <module>\n worklog.build(metadata, configSets)\n File \"/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py\", line 135, in build\n Contractor(metadata).build(configSets, self)\n File \"/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py\", line 561, in build\n self.run_config(config, worklog)\n File \"/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py\", line 573, in run_config\n CloudFormationCarpenter(config, self._auth_config).build(worklog)\n File \"/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py\", line 273, in build\n self._config.commands)\n File \"/usr/lib/python3.7/site-packages/cfnbootstrap/command_tool.py\", line 127, in apply\n raise ToolError(u\"Command %s failed\" % name)", "timestamp": "2021-09-06T11:11:39.049Z" }, { "message": "cfnbootstrap.construction_errors.ToolError: Command runpostinstall failed", "timestamp": "2021-09-06T11:11:39.049Z" }, { "message": "2021-09-06 11:11:49,212 [DEBUG] CloudFormation client initialized with endpoint https://cloudformation.eu-west-1.amazonaws.com", "timestamp": "2021-09-06T11:11:49.212Z" }, { "message": "2021-09-06 11:11:49,213 [DEBUG] Signaling resource HeadNode in stack mycluster with unique ID i-04e91cc1f4ea796fe and status FAILURE", "timestamp": "2021-09-06T11:11:49.213Z" } ] }

Nell'esempio precedente, l'errore è causato da un runpostinstall errore, quindi è strettamente correlato al contenuto dello script di bootstrap personalizzato utilizzato nel parametro di OnNodeConfigured configurazione di. CustomActions

Ricrea il cluster fallito con rollback-on-failure

AWS ParallelCluster crea flussi di CloudWatch log del cluster in gruppi di log. È possibile visualizzare questi registri nei dashboard personalizzati o nei CloudWatch gruppi di log della console. Per ulteriori informazioni, consulta Integrazione con Amazon CloudWatch Logs e CloudWatch Pannello di controllo Amazon. Se non sono disponibili flussi di log, l'errore potrebbe essere causato dallo script di bootstrap CustomActions personalizzato o da un problema relativo all'AMI. Per diagnosticare il problema di creazione in questo caso, crea nuovamente il cluster utilizzandopcluster create-cluster, incluso il parametro impostato su. --rollback-on-failure false Quindi, utilizzate SSH per visualizzare il cluster, come illustrato di seguito:

$ pcluster create-cluster --cluster-name mycluster --region eu-west-1 \ --cluster-configuration cluster-config.yaml --rollback-on-failure false { "cluster": { "clusterName": "mycluster", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f01-11ec-a3b9-024fcc6f3387", "region": "eu-west-1", "version": "3.7.0", "clusterStatus": "CREATE_IN_PROGRESS" } } $ pcluster ssh --cluster-name mycluster

Dopo aver effettuato l'accesso al nodo principale, dovresti trovare tre file di log principali che puoi usare per trovare l'errore.

  • /var/log/cfn-init.logè il registro dello cfn-init script. Per prima cosa controlla questo registro. È probabile che venga visualizzato un errore come Command chef failed in questo registro. Guarda le righe immediatamente precedenti a questa riga per ulteriori dettagli relativi al messaggio di errore. Per ulteriori informazioni, vedere cfn-init.

  • /var/log/cloud-init.logè il log per cloud-init. Se non vedi nullacfn-init.log, prova a controllare successivamente questo registro.

  • /var/log/cloud-init-output.logè l'output dei comandi eseguiti da cloud-init. Questo include l'output di. cfn-init Nella maggior parte dei casi, non è necessario consultare questo registro per risolvere questo tipo di problema.