Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Résolution des problèmes de déploiement de clusters
Si votre cluster ne parvient pas à être créé et annule la création de la pile, vous pouvez consulter les fichiers journaux pour diagnostiquer le problème. Le message d'échec ressemble probablement au résultat suivant :
$pcluster create-cluster --cluster-namemycluster--regioneu-west-1\ --cluster-configurationcluster-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.14.0", "clusterStatus": "CREATE_IN_PROGRESS" } }$pcluster describe-cluster --cluster-namemycluster--regioneu-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" }
Rubriques
Afficher CloudFormation les événements sur CREATE_FAILED
Vous pouvez utiliser la console ou la AWS ParallelCluster CLI pour afficher les CloudFormation événements relatifs aux CREATE_FAILED erreurs afin d'en trouver la cause première.
Rubriques
Afficher les événements dans la CloudFormation console
Pour obtenir plus d'informations sur la cause de ce "CREATE_FAILED" statut, vous pouvez utiliser la CloudFormation console.
Afficher les messages CloudFormation d'erreur depuis la console.
-
Connectez-vous au AWS Management Console et naviguez vers https://console.aws.amazon.com/cloudformation.
-
Sélectionnez la pile nommée
cluster_name. -
Choisissez l'onglet Événements.
-
Vérifiez l'état de la ressource dont la création a échoué en faisant défiler la liste des événements de ressource par ID logique. Si la création d'une sous-tâche a échoué, revenez en arrière pour trouver l'événement de ressource ayant échoué.
-
Par exemple, si le message d'état suivant s'affiche, vous devez utiliser des types d'instances qui ne dépasseront pas votre limite de vCPU actuelle ou qui ne demanderont pas une capacité de vCPU accrue.
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).
Utilisez la CLI pour afficher et filtrer CloudFormation les événements sur CREATE_FAILED
Pour diagnostiquer le problème de création de clusters, vous pouvez utiliser la pcluster get-cluster-stack-events commande en filtrant par CREATE_FAILED état. Pour plus d'informations, consultez la section Filtrage AWS CLI de la sortie dans le guide de AWS Command Line Interface l'utilisateur.
$pcluster get-cluster-stack-events --cluster-namemycluster--regioneu-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" } ]
Dans l'exemple précédent, l'échec était lié à la configuration du nœud principal.
Utiliser la CLI pour afficher les flux de journaux
Pour résoudre ce type de problème, vous pouvez répertorier les flux de journaux disponibles depuis le nœud principal pcluster list-cluster-log-streams en filtrant node-type puis en analysant le contenu des flux de journaux.
$pcluster list-cluster-log-streams --cluster-namemycluster--regioneu-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", ... }, ... ] }
Les deux principaux flux de log que vous pouvez utiliser pour détecter les erreurs d'initialisation sont les suivants :
-
cfn-initest le journal ducfn-initscript. Vérifiez d'abord ce flux de journal. Vous verrez probablement l'Command chef failederreur dans ce journal. Regardez les lignes juste avant cette ligne pour plus de détails liés au message d'erreur. Pour plus d'informations, consultez cfn-init. -
cloud-initest le journal de cloud-init. Si rien ne s'y trouve cfn-init, essayez ensuite de consulter ce journal.
Vous pouvez récupérer le contenu du flux de log à l'aide de l'option pcluster get-cluster-log-events (notez l'--limit 5option permettant de limiter le nombre d'événements récupérés) :
$pcluster get-cluster-log-events --cluster-namemycluster\ --regioneu-west-1--log-stream-nameip-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" } ] }
Dans l'exemple précédent, l'échec est dû à un runpostinstall échec. Il est donc strictement lié au contenu du script bootstrap personnalisé utilisé dans le paramètre de OnNodeConfigured configuration duCustomActions.
Recréez le cluster défaillant avec rollback-on-failure
AWS ParallelCluster crée des flux de CloudWatch journaux de cluster dans des groupes de journaux. Vous pouvez consulter ces journaux dans les tableaux de bord personnalisés ou les groupes de journaux de la CloudWatch console. Pour plus d’informations, consultez Intégration à Amazon CloudWatch Logs et Tableau de CloudWatch bord Amazon. Si aucun flux de journal n'est disponible, l'échec peut être dû au script de démarrage CustomActions personnalisé ou à un problème lié à l'AMI. Pour diagnostiquer le problème de création dans ce cas, créez à nouveau le cluster en utilisantpcluster create-cluster, y compris le --rollback-on-failure paramètre défini surfalse. Utilisez ensuite SSH pour afficher le cluster, comme indiqué ci-dessous :
$pcluster create-cluster --cluster-namemycluster--regioneu-west-1\ --cluster-configurationcluster-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.14.0", "clusterStatus": "CREATE_IN_PROGRESS" } }$pcluster ssh --cluster-namemycluster
Une fois connecté au nœud principal, vous devriez trouver trois fichiers journaux principaux que vous pouvez utiliser pour trouver l'erreur.
-
/var/log/cfn-init.logest le journal ducfn-initscript. Vérifiez d'abord ce journal. Vous êtes susceptible de voir une erreur commeCommand chef faileddans ce journal. Regardez les lignes juste avant cette ligne pour plus de détails liés au message d'erreur. Pour plus d'informations, consultez cfn-init. -
/var/log/cloud-init.logest le journal de cloud-init. Si rien ne s'y trouve cfn-init.log, essayez ensuite de consulter ce journal. -
/var/log/cloud-init-output.logest le résultat des commandes exécutées par cloud-init. Cela inclut la sortie de cfn-init. Dans la plupart des cas, il n'est pas nécessaire de consulter ce journal pour résoudre ce type de problème.