View a markdown version of this page

Behebung von Problemen bei der Cluster-Bereitstellung - AWS ParallelCluster

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Behebung von Problemen bei der Cluster-Bereitstellung

Wenn Ihr Cluster nicht erstellt werden kann und die Stack-Erstellung rückgängig gemacht wird, können Sie die Protokolldateien durchsehen, um das Problem zu diagnostizieren. Die Fehlermeldung sieht wahrscheinlich wie die folgende Ausgabe aus:

$ 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.16.1", "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" }

Anzeigen CloudFormation Ereignisse auf CREATE_FAILED

Sie können die Konsole oder die AWS ParallelCluster CLI verwenden, um CloudFormation Ereignisse im CREATE_FAILED Zusammenhang mit Fehlern anzuzeigen und so die Ursache zu ermitteln.

Ereignisse in der CloudFormation Konsole anzeigen

Um weitere Informationen darüber zu erhalten, was den "CREATE_FAILED" Status verursacht hat, können Sie die CloudFormation Konsole verwenden.

Zeigen Sie CloudFormation Fehlermeldungen von der Konsole aus an.
  1. Melden Sie sich bei der an AWS-Managementkonsole und navigieren Sie zu https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie den Stack mit dem Namen cluster_name aus.

  3. Wählen Sie die Registerkarte Ereignisse .

  4. Überprüfen Sie den Status der Ressource, die nicht erstellt werden konnte, indem Sie die Liste der Ressourcenereignisse nach logischer ID durchsuchen. Wenn eine Unteraufgabe nicht erstellt werden konnte, arbeiten Sie rückwärts, um das fehlgeschlagene Ressourcenereignis zu finden.

  5. Wenn Sie beispielsweise die folgende Statusmeldung sehen, müssen Sie Instanztypen verwenden, die Ihr aktuelles vCPU-Limit nicht überschreiten oder mehr vCPU-Kapazität anfordern.

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

Verwenden Sie die CLI, um CloudFormation Ereignisse auf CREATE_FAILED anzuzeigen und zu filtern

Um das Problem bei der Clustererstellung zu diagnostizieren, können Sie den pcluster get-cluster-stack-events Befehl verwenden, indem Sie nach CREATE_FAILED Status filtern. Weitere Informationen finden Sie im AWS Command Line Interface Benutzerhandbuch unter Filtern der AWS CLI Ausgabe.

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

Im vorherigen Beispiel lag der Fehler in der Einrichtung des Kopfknotens.

Verwenden Sie die CLI, um Log-Streams anzuzeigen

Um diese Art von Problem zu debuggen, können Sie die auf dem Hauptknoten verfügbaren Protokollstreams mit dem auflisten, pcluster list-cluster-log-streams indem Sie nach dem Inhalt der Protokollstreams filtern node-type und ihn dann analysieren.

$ 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", ... }, ... ] }

Die beiden wichtigsten Logstreams, die Sie verwenden können, um Initialisierungsfehler zu finden, sind die folgenden:

Sie können den Inhalt des Log-Streams abrufen, indem Sie die pcluster get-cluster-log-events (beachten Sie die --limit 5 Option zur Begrenzung der Anzahl der abgerufenen Ereignisse) verwenden:

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

Im vorherigen Beispiel wird der Fehler durch einen runpostinstall Fehler verursacht, sodass er eng mit dem Inhalt des benutzerdefinierten Bootstrap-Skripts zusammenhängt, das im OnNodeConfigured Konfigurationsparameter von verwendet wird. CustomActions

Re-create der ausgefallene Cluster mit Rollback-on-Failure

AWS ParallelCluster erstellt CloudWatch Cluster-Protokollstreams in Protokollgruppen. Sie können diese Protokolle in der CloudWatch Konsole „Benutzerdefinierte Dashboards“ oder „Protokollgruppen“ einsehen. Weitere Informationen erhalten Sie unter Integration mit Amazon CloudWatch Logs und CloudWatch Amazon-Dashboard. Wenn keine Log-Streams verfügbar sind, kann der Fehler durch das CustomActions benutzerdefinierte Bootstrap-Skript oder ein AMI-related Problem verursacht werden. Um das Erstellungsproblem in diesem Fall zu diagnostizieren, erstellen Sie den Cluster erneutpcluster create-cluster, einschließlich des --rollback-on-failure Parameters, der auf false gesetzt ist. Verwenden Sie dann SSH, um den Cluster anzuzeigen, wie im Folgenden gezeigt:

$ 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.16.1", "clusterStatus": "CREATE_IN_PROGRESS" } } $ pcluster ssh --cluster-name mycluster

Nachdem Sie sich am Hauptknoten angemeldet haben, sollten Sie drei primäre Protokolldateien finden, anhand derer Sie den Fehler finden können.

  • /var/log/cfn-init.logist das Protokoll für das cfn-init Skript. Überprüfe zuerst dieses Protokoll. Sie werden wahrscheinlich einen Fehler wie Command chef failed in diesem Protokoll sehen. Sehen Sie sich die Zeilen unmittelbar vor dieser Zeile an, um weitere Informationen zur Fehlermeldung zu erhalten. Weitere Informationen finden Sie unter https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html cfn-init.

  • /var/log/cloud-init.logist das Protokoll für Cloud-Init. https://cloudinit.readthedocs.io/ Wenn Sie nichts darin sehencfn-init.log, überprüfen Sie als Nächstes dieses Protokoll.

  • /var/log/cloud-init-output.logist die Ausgabe von Befehlen, die von https://cloudinit.readthedocs.io/ Cloud-Init ausgeführt wurden. Dies beinhaltet die Ausgabe von. cfn-init In den meisten Fällen müssen Sie sich dieses Protokoll nicht ansehen, um diese Art von Problem zu beheben.